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/
├── dynamic-agents/ # Dynamic-agent chat runtime
│ └── README.md
├── mcp-server/ # Generic MCP server subchart (aliased per integration)
│ └── README.md
├── caipe-ui/ # CAIPE web UI (optional)
└── rag-stack/ # RAG pipeline (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
mcp-argocd:
agentSecrets:
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

MCP integrations are enabled via Helm tags. Common profiles:

TagMCP integrations included
basicargocd, backstage, github
completebroad MCP set
Individualmcp-argocd, mcp-github, mcp-jira, mcp-slack, ...

Step 4 — Install

# Minimal chart install
helm install ai-platform-engineering \
oci://ghcr.io/cnoe-io/charts/ai-platform-engineering \
--version <VERSION> \
--values values-secrets.yaml

# With basic MCP integrations
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-dynamic-agents 8001:8001

Then access the runtime health endpoint:

curl http://localhost:8001/health

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) dynamic-agents.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 MongoDB-backed chat and dynamic-agent runtime state.

Quick start

# values-persistence.yaml
tags:
caipe-ui: true
dynamic-agents: true

caipe-ui:
mongodb:
enabled: true

dynamic-agents:
config:
MONGODB_DATABASE: caipe
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 tags.caipe-ui=true \
--set tags.dynamic-agents=true \
--set caipe-ui.mongodb.enabled=true \
--set dynamic-agents.config.MONGODB_DATABASE=caipe

Optional components

ComponentHelm flagNotes
RAG stack--set tags.rag-stack=trueMilvus, Langfuse, embedding server
CAIPE UI--set tags.caipe-ui=trueWeb chat UI
MongoDB persistence--set caipe-ui.mongodb.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).