ai-code-battle/manifests/acb-evolver-deployment.yml
jedarden 978bcffc91 fix(manifests): pin all ronaldraygun images to SHA digests, add image-updater annotations
Replace :latest with @sha256: digest for acb-api, acb-evolver, acb-index-builder,
acb-matchmaker, and acb-worker. Add argocd-image-updater annotations to all five
deployments to auto-track future sha-* tag builds. Add missing deployment manifests
for index-builder, matchmaker, and worker.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 23:07:29 -04:00

115 lines
3.6 KiB
YAML

# acb-evolver: LLM-driven bot evolution pipeline
# Reads match data from PostgreSQL, generates candidates via LLM, validates,
# evaluates in arena, promotes winners to the live bot fleet.
#
# Staging file — sync to declarative-config/k8s/apexalgo-iad/ai-code-battle/
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: acb-evolver
namespace: ai-code-battle
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: acb-evolver
namespace: ai-code-battle
labels:
app.kubernetes.io/name: acb-evolver
app.kubernetes.io/part-of: ai-code-battle
annotations:
argocd-image-updater.argoproj.io/image-list: app=ronaldraygun/acb-evolver
argocd-image-updater.argoproj.io/app.update-strategy: name
argocd-image-updater.argoproj.io/app.allow-tags: 'regexp:^sha-[0-9a-f]+$'
argocd-image-updater.argoproj.io/write-back-method: argocd
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: acb-evolver
template:
metadata:
labels:
app.kubernetes.io/name: acb-evolver
app.kubernetes.io/part-of: ai-code-battle
spec:
serviceAccountName: acb-evolver
restartPolicy: Always
containers:
- name: evolver
image: ronaldraygun/acb-evolver@sha256:15f72e07037585734a4417f5d7402463ed846c6fc73e55e4e58bc71787c6465d
imagePullPolicy: Always
args: ["run", "-continuous"]
ports:
- containerPort: 9090
protocol: TCP
name: metrics
env:
- name: ACB_DATABASE_URL
valueFrom:
secretKeyRef:
name: acb-app-credentials-acb-app
key: uri
- name: ACB_ENCRYPTION_KEY
valueFrom:
secretKeyRef:
name: acb-evolver-secrets
key: encryption-key
- name: ACB_LLM_URL
valueFrom:
secretKeyRef:
name: openai-secret
key: url
optional: true
- name: ACB_LLM_API_KEY
valueFrom:
secretKeyRef:
name: openai-secret
key: api-key
optional: true
- name: ACB_KUBECTL_SERVER
value: "http://traefik-apexalgo-iad:8001"
- name: ACB_REGISTRY
value: "ronaldraygun"
- name: ACB_REPO_DIR
value: "/repo"
- name: ACB_R2_ENDPOINT
valueFrom:
secretKeyRef:
name: cloudflare-pages-secret
key: r2-endpoint
optional: true
- name: ACB_R2_BUCKET
value: "acb-data"
- name: ACB_R2_ACCESS_KEY
valueFrom:
secretKeyRef:
name: cloudflare-pages-secret
key: r2-access-key
optional: true
- name: ACB_R2_SECRET_KEY
valueFrom:
secretKeyRef:
name: cloudflare-pages-secret
key: r2-secret-key
optional: true
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2"
memory: "4Gi"
# Evolver is a batch loop, not an HTTP server — use exec probe
livenessProbe:
exec:
command:
- pgrep
- -x
- acb-evolver
initialDelaySeconds: 30
periodSeconds: 60
failureThreshold: 3
imagePullSecrets:
- name: docker-hub-registry