Skip to main content
Version: main 🚧

Helm

Deploy AI Platform Engineering on any Kubernetes cluster using the official Helm chart published to GitHub Container Registry.

Prerequisites

Chart registry

The chart is published as an OCI artifact:

oci://ghcr.io/cnoe-io/charts/ai-platform-engineering

Browse available versions (stable releases only, no RCs): 👉 ghcr.io/cnoe-io/charts/ai-platform-engineering

Chart structure

ai-platform-engineering/        # Parent chart
├── README.md # Full parameter reference
└── charts/
├── supervisor-agent/ # Orchestrator / LangGraph supervisor
│ └── README.md
├── agent/ # Generic agent subchart (aliased per integration)
├── langgraph-redis/ # Redis Stack for persistence (optional)
│ └── README.md
├── caipe-ui/ # CAIPE web UI (optional)
├── rag-stack/ # RAG pipeline (optional)
└── slim/ slim-control-plane/ # AGNTCY SLIM dataplane (optional)

Full parameter tables for each chart (auto-generated — regenerate with make docs-helm-charts):

Step 1 — Get example values files

Pull the chart locally to access the bundled example values files:

helm pull oci://ghcr.io/cnoe-io/charts/ai-platform-engineering --version <VERSION> --untar

Replace <VERSION> with the latest stable version from the registry page.

Step 2 — Configure secrets

Choose one of three approaches to provide API keys and agent credentials.

Option A — Direct values file (development)

cp ai-platform-engineering/values-secrets.yaml.example values-secrets.yaml
# Edit values-secrets.yaml with your LLM keys and agent credentials

Never commit values-secrets.yaml.

Option B — Existing Kubernetes Secrets

If your secrets are already in the cluster:

# values.yaml
agent-argocd:
secrets:
secretName: "my-existing-secret"
cp ai-platform-engineering/values-external-secrets.yaml.example values-external-secrets.yaml
# Edit to point at your Vault / AWS Secrets Manager / GCP Secret Manager store

Step 3 — Choose agents

Agents are enabled via Helm tags. Common profiles:

TagAgents included
basicargocd, backstage, github
completeall agents
Individualagent-argocd, agent-github, agent-jira, agent-slack, …

Step 4 — Install

# Minimal (in-memory, no persistence)
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml

# With basic agents
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml \
--set tags.basic=true

# With External Secrets Operator
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-external-secrets.yaml

Step 5 — Verify

kubectl get pods
kubectl get services

Wait for pods to reach Running / 1/1 Ready.

Step 6 — Access

Port-forward (quickest)

kubectl port-forward service/ai-platform-engineering-supervisor-agent 8000:8000

Then connect with the agent chat CLI:

uvx --no-cache git+https://github.com/cnoe-io/agent-chat-cli.git a2a --host localhost --port 8000

Ingress (domain access)

# Enable ingress on Minikube
minikube addons enable ingress

# Deploy with ingress
helm upgrade ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml \
--values ai-platform-engineering/values-ingress.yaml.example

# Add Minikube IP to /etc/hosts
echo "$(minikube ip) supervisor-agent.local" | sudo tee -a /etc/hosts

Upgrade and uninstall

# Upgrade to a new version
helm upgrade ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <NEW_VERSION> \
--values values-secrets.yaml

# Uninstall
helm uninstall ai-platform-engineering

Prompt configuration

ValueDescription
promptConfigType: defaultBalanced orchestrator, general use (default)
promptConfigType: deep_agentStrict zero-hallucination mode for production
promptConfig: |Provide a fully custom prompt config inline
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml \
--set promptConfigType=deep_agent

Persistence

See the Persistence page for full options (in-memory default, Redis, Postgres, MongoDB, fact extraction).

Quick start — Redis persistence

# values-persistence.yaml
global:
langgraphRedis:
enabled: true

supervisor-agent:
checkpointPersistence:
type: redis
redis:
autoDiscoverService: langgraph-redis

memoryPersistence:
type: redis
redis:
autoDiscoverService: langgraph-redis
enableFactExtraction: true
maxMemories: 50
maxSummaries: 10
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml \
--values values-persistence.yaml

Or as --set flags:

helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml \
--set global.langgraphRedis.enabled=true \
--set supervisor-agent.checkpointPersistence.type=redis \
--set supervisor-agent.checkpointPersistence.redis.autoDiscoverService=langgraph-redis \
--set supervisor-agent.memoryPersistence.type=redis \
--set supervisor-agent.memoryPersistence.redis.autoDiscoverService=langgraph-redis \
--set supervisor-agent.memoryPersistence.enableFactExtraction=true

Optional components

ComponentHelm flagNotes
RAG stack--set tags.rag-stack=trueMilvus, Langfuse, embedding server
CAIPE UI--set tags.caipe-ui=trueWeb chat UI
SLIM dataplane--set global.slim.enabled=trueAGNTCY SLIM transport
Redis persistence--set global.langgraphRedis.enabled=trueSee Persistence
Slack bot--set tags.slack-bot=trueSlack client (not an agent)

Security notes

  • Use Kubernetes Secrets or the External Secrets Operator for credentials — never inline plaintext in committed files.
  • Rotate LLM API keys regularly.
  • Use HTTPS in production (configure TLS in ingress.tls).