feat(nci-11): add Kubernetes manifests for nowchess-analysis service (#381)

Add Argo Rollout (blueGreen), active/preview Services, and HPA for the
new analysis service (port 8087). Wire image pins into all three overlay
kustomizations and register the analysis Warehouse and freight entries in
all three Kargo Stages (staging -> eu-central-1-prod / htwg-1-prod).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Janis Eccarius <eccariusjanis@gmail.com>
Reviewed-on: #381
This commit was merged in pull request #381.
This commit is contained in:
2026-06-15 22:17:45 +02:00
parent b546313e79
commit 0373f61ef7
8 changed files with 167 additions and 0 deletions
+20
View File
@@ -14,6 +14,12 @@ spec:
- name: tagSuffix - name: tagSuffix
value: "" value: ""
requestedFreight: requestedFreight:
- origin:
kind: Warehouse
name: analysis
sources:
direct: true
requiredSoakTime: 5m0s
- origin: - origin:
kind: Warehouse kind: Warehouse
name: account name: account
@@ -105,6 +111,13 @@ spec:
- name: tagSuffix - name: tagSuffix
value: "" value: ""
requestedFreight: requestedFreight:
- origin:
kind: Warehouse
name: analysis
sources:
direct: false
stages:
- staging
- origin: - origin:
kind: Warehouse kind: Warehouse
name: account name: account
@@ -204,6 +217,13 @@ spec:
- name: tagSuffix - name: tagSuffix
value: "-x86_v2" value: "-x86_v2"
requestedFreight: requestedFreight:
- origin:
kind: Warehouse
name: analysis
sources:
direct: false
stages:
- staging
- origin: - origin:
kind: Warehouse kind: Warehouse
name: account name: account
@@ -1,5 +1,20 @@
apiVersion: kargo.akuity.io/v1alpha1 apiVersion: kargo.akuity.io/v1alpha1
kind: Warehouse kind: Warehouse
metadata:
name: analysis
namespace: nowchess-kargo
spec:
freightCreationPolicy: Automatic
interval: 5m0s
subscriptions:
- image:
discoveryLimit: 20
imageSelectionStrategy: SemVer
repoURL: ghcr.io/now-chess/now-chess-systems/analysis
strictSemvers: true
---
apiVersion: kargo.akuity.io/v1alpha1
kind: Warehouse
metadata: metadata:
name: account name: account
namespace: nowchess-kargo namespace: nowchess-kargo
+22
View File
@@ -1,5 +1,27 @@
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
metadata:
name: nowchess-analysis
labels:
app.kubernetes.io/name: nowchess-analysis
app.kubernetes.io/part-of: nowchess
spec:
scaleTargetRef:
apiVersion: argoproj.io/v1alpha1
kind: Rollout
name: nowchess-analysis
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 90
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata: metadata:
name: nowchess-account name: nowchess-account
spec: spec:
+67
View File
@@ -755,6 +755,73 @@ spec:
--- ---
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Rollout kind: Rollout
metadata:
name: nowchess-analysis
labels:
app: nowchess-analysis
app.kubernetes.io/name: nowchess-analysis
app.kubernetes.io/part-of: nowchess
spec:
selector:
matchLabels:
app: nowchess-analysis
template:
metadata:
labels:
app: nowchess-analysis
annotations:
k8s.grafana.com/scrape: "true"
k8s.grafana.com/metrics_path: "/q/metrics"
k8s.grafana.com/metrics_portNumber: "8087"
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: nowchess-analysis
image: ghcr.io/now-chess/now-chess-systems/analysis:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: nowchess-env-config
env:
- name: INTERNAL_SECRET
valueFrom:
secretKeyRef:
name: ncs-internal-secret
key: INTERNAL_SECRET
ports:
- containerPort: 8087
protocol: TCP
livenessProbe:
httpGet:
path: /q/health/live
port: 8087
initialDelaySeconds: 0
periodSeconds: 10
readinessProbe:
httpGet:
path: /q/health/ready
port: 8087
initialDelaySeconds: 0
periodSeconds: 5
resources:
requests:
cpu: "5m"
memory: "96Mi"
limits:
cpu: "500m"
memory: "256Mi"
rollbackWindow:
revisions: 3
strategy:
blueGreen:
activeService: nowchess-analysis-active
previewService: nowchess-analysis-preview
autoPromotionEnabled: true
previewReplicaCount: 1
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata: metadata:
name: nowchess-tournament name: nowchess-tournament
labels: labels:
+30
View File
@@ -1,5 +1,35 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata:
name: nowchess-analysis-active
labels:
app.kubernetes.io/name: nowchess-analysis
app.kubernetes.io/part-of: nowchess
spec:
selector:
app: nowchess-analysis
ports:
- protocol: TCP
port: 8087
targetPort: 8087
---
apiVersion: v1
kind: Service
metadata:
name: nowchess-analysis-preview
labels:
app.kubernetes.io/name: nowchess-analysis
app.kubernetes.io/part-of: nowchess
spec:
selector:
app: nowchess-analysis
ports:
- protocol: TCP
port: 8087
targetPort: 8087
---
apiVersion: v1
kind: Service
metadata: metadata:
name: nowchess-account-active name: nowchess-account-active
spec: spec:
@@ -32,6 +32,8 @@ patches:
kind: ConfigMap kind: ConfigMap
name: nowchess-frontend-env-config name: nowchess-frontend-env-config
images: images:
- name: ghcr.io/now-chess/now-chess-systems/analysis
newTag: 0.1.0
- name: ghcr.io/now-chess/now-chess-systems/account - name: ghcr.io/now-chess/now-chess-systems/account
newTag: 0.24.0 newTag: 0.24.0
- name: ghcr.io/now-chess/now-chess-systems/bot-platform - name: ghcr.io/now-chess/now-chess-systems/bot-platform
@@ -21,6 +21,13 @@ patches:
target: target:
kind: ConfigMap kind: ConfigMap
name: nowchess-env-config name: nowchess-env-config
- patch: |-
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nowchess-analysis
spec:
maxReplicas: 1
- patch: |- - patch: |-
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
@@ -87,6 +94,8 @@ patches:
spec: spec:
replicas: 1 replicas: 1
images: images:
- name: ghcr.io/now-chess/now-chess-systems/analysis
newTag: 0.1.0
- name: ghcr.io/now-chess/now-chess-systems/account - name: ghcr.io/now-chess/now-chess-systems/account
newTag: 0.24.0 newTag: 0.24.0
- name: ghcr.io/now-chess/now-chess-systems/bot-platform - name: ghcr.io/now-chess/now-chess-systems/bot-platform
+2
View File
@@ -31,6 +31,8 @@ patches:
kind: ConfigMap kind: ConfigMap
name: nowchess-frontend-env-config name: nowchess-frontend-env-config
images: images:
- name: ghcr.io/now-chess/now-chess-systems/analysis
newTag: 0.1.0-x86_v2
- name: ghcr.io/now-chess/now-chess-systems/account - name: ghcr.io/now-chess/now-chess-systems/account
newTag: 0.24.0-x86_v2 newTag: 0.24.0-x86_v2
- name: ghcr.io/now-chess/now-chess-systems/bot-platform - name: ghcr.io/now-chess/now-chess-systems/bot-platform