Funk-lab/k8s/apps/openalice/deployment.yaml
ALI YESILKAYA cc6141f424
fix(openalice): embarque les shims CLI alice* (bug packaging Dockerfile amont) (#62)
Le Dockerfile amont v0.60.0-beta.1 copie src/workspaces/templates dans l'image
runtime mais oublie src/workspaces/cli, alors que cliBinPath()
(/app/src/workspaces/cli/bin) est requis au runtime pour poser les shims
alice/alice-uta/traderhub sur le PATH des agents. Sans eux, l'agent ne peut pas
joindre le moteur de trading ("alice-uta introuvable sur mon PATH").

- build-openalice.yml : patch du Dockerfile cloné (COPY src/workspaces/cli) + guard
- tag image suffixé via IMAGE_PATCH=p1 → nouveau tag immuable, ArgoCD redéploie
- deployment.yaml → :v0.60.0-beta.1-p1
- doc admin/ia/openalice.md (correctifs locaux)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:03:45 +02:00

82 lines
2.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

apiVersion: apps/v1
kind: Deployment
metadata:
name: openalice
namespace: ai
spec:
replicas: 1
# OpenAlice écrit dans un volume RWO (NFS) — pas de rolling avec 2 pods sur le même volume.
strategy:
type: Recreate
selector:
matchLabels:
app: openalice
template:
metadata:
labels:
app: openalice
spec:
# Image privée sur ghcr → secret de pull créé manuellement dans le ns ai
# (cf. README : kubectl create secret docker-registry ghcr-pull ...)
imagePullSecrets:
- name: ghcr-pull
# Conformité PodSecurity "restricted" (namespace ai). fsGroup 1000 → le volume NFS
# (HOME des CLIs + /data) est inscriptible par l'uid non-root de l'image.
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: openalice
# Tag = <ref amont>-<patch local>, géré par la CI (build-openalice.yml).
# -p1 : patch du Dockerfile amont qui oubliait src/workspaces/cli (shims alice*).
image: ghcr.io/alkatrazz24/funk-openalice:v0.60.0-beta.1-p1
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
ports:
- name: web
containerPort: 47331
# MCP Ask connector — consommé in-cluster par Asa (STT-server). À ACTIVER une fois
# au premier boot (Web UI Connectors) : { mcpAsk: { enabled: true, port: 3003 } }.
- name: mcpask
containerPort: 3003
env:
# OpenAlice stocke ses credentials (provider IA, clés vendor) SCELLÉS dans /data,
# configurés au premier boot via la Web UI — voir README. Rien de secret en env ici.
- name: TZ
value: "Europe/Paris"
# Derrière Traefik (entrypoint web) : on fait confiance au proxy in-cluster pour
# les en-têtes (IP réelle / host). LAN privé, HTTP.
- name: OPENALICE_TRUSTED_PROXIES
value: "10.42.0.0/16"
# Web UI Hono : le portail 47331 répond mais peut 401 derrière le gate admin →
# sonde TCP plutôt qu'HTTP. Démarrage lent (runtime Node + CLIs agent embarqués).
readinessProbe:
tcpSocket:
port: 47331
initialDelaySeconds: 20
periodSeconds: 15
livenessProbe:
tcpSocket:
port: 47331
initialDelaySeconds: 60
periodSeconds: 30
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
cpu: "1"
memory: 1536Mi
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: openalice-data