This path is for teams comfortable with Kubernetes who want to install Cake Agents directly with Helm into an existing cluster.Documentation Index
Fetch the complete documentation index at: https://docs.cake.ai/llms.txt
Use this file to discover all available pages before exploring further.
End State
At the end of this guide you will have:- a
cake-agentsHelm release deployed to your cluster - a reachable control plane UI/API
- a database connection (embedded Postgres for development or an external database)
- session pods launching successfully in the expected namespace
Architecture Summary
Cake Agents has two runtime layers:- The control plane is a web application deployed as a standard Kubernetes workload.
- Each user session launches a data plane pod that runs OpenCode inside the cluster.
Prerequisites
- A working Kubernetes cluster
kubectlconfigured for the target clusterhelm3+- A registry path and image tags for the Cake Agents images
- A DNS name for the control plane if exposing it externally
- Kubernetes secrets or secret-management flow for integration credentials
What the Helm Chart Configures
The Helm install configures these main concerns:- Control plane deployment, service account, probes, and service
- Session namespace selection through
sessionNamespace.name - RBAC for creating and managing session workloads
- Embedded PostgreSQL for development, or an external database via
externalDatabase.existingSecret - Optional External Secrets generation for PostgreSQL credentials
- Secret wiring for integrations and auth
- Optional Istio gateway and routing resources
Choose a Database Strategy
For development, the chart defaults to embedded PostgreSQL. For shared or production-like environments, use an external database and provide a secret instead:externalDatabase.existingSecretEnv.
Create Required Secrets
At minimum, decide how you will supply integration and auth material for the release. In Cake Agents, sensitive values generally live in one of two places:- Kubernetes secrets, when the control plane or session runtime needs a secret mounted or injected at runtime
- The database, when the system stores linked account credentials, auth state, provider configuration, or brokered tokens on behalf of the user
linear.secretlitellm.secretslack.secretbetterAuth.secret
create: false and provision those secrets ahead of the Helm install.
For Slack credentials specifically, see Configure Slack credentials.
Header Auth
Header auth lets Cake Agents trust a fronting authentication proxy for user identity instead of handling the primary login challenge itself. WhenheaderAuth.enabled=true, Cake Agents trusts an upstream proxy or gateway to authenticate the user and forward identity headers to the control plane. In this model:
- your ingress layer performs the real user authentication
- Cake Agents reads trusted identity headers from the request
- the control plane maps those headers into the application user context
oauth2-proxy, an API gateway, or another trusted SSO layer.
Typical headers include email, user display name, and an access token or JWT header. A minimal example:
Choose How Sessions Are Namespaced
Session workloads run insessionNamespace.name, which defaults to the Helm release namespace.
If you want session pods in a separate namespace:
Minimal Values File
Start from a small values file and expand from there:Install with Helm
Verify the Deployment
Check the release and workloads:- the control plane pod is healthy
- the configured host resolves to the ingress or gateway
- the app can reach the database
- creating a session produces a data plane pod in the expected namespace
Istio and Ingress Notes
The chart supports Istio resources behindistio.enabled. If you already have a shared gateway, set istio.gateway.name to that gateway rather than creating a new one.
If you are not using Istio, keep it disabled and expose the control plane with your cluster’s standard ingress pattern.
Operational Notes
- Embedded PostgreSQL is intended for development.
- Session pods run OpenCode on port
4096inside each pod. - The control plane needs RBAC to manage session workloads.
- If a release is left in
pending-installorpending-upgrade, recover it with normal Helm troubleshooting and rollback practices.