Skip to main content
AcornOps deployment has two independent steps: deploy the central platform, then connect each Kubernetes cluster or Linux VM with an outbound agent. Starter automation is part of current-version control-plane workspace provisioning in every environment. It is independent of optional local target fixtures such as SEED_DEVELOPMENT_DATA; each new workspace receives the final starter bundle once, with no startup upgrade or repair pass.

Kubernetes

Use the acornops-platform Helm chart to deploy the central platform into a Kubernetes cluster. The chart deploys:
  • management console,
  • control plane,
  • execution engine,
  • LLM gateway,
  • optional platform admin console when explicitly enabled,
  • database migration Jobs.
Postgres and Redis are operator-provided. The chart references an existing Kubernetes Secret instead of templating secret values into Helm values.

Required platform inputs

Prepare these inputs before installing the chart: Review these value groups before installing or upgrading:

Internal service TLS

The chart can harden control-plane, execution-engine, and LLM gateway traffic with operator-supplied HTTPS/mTLS. It is disabled by default. AcornOps does not generate or chart-manage the CA or certificates. Create a CA Secret and one TLS Secret per service:
Then set:
Certificates should include SANs for the rendered service DNS names. For the default release name and namespace shown in this guide, the control-plane DNS name is acornops-platform-control-plane.acornops-platform.svc. If you use a different release name or namespace, render the chart and use the service DNS names from your deployment. Public ingress stays on the control-plane HTTP service port. Existing bearer tokens and run-scoped JWT checks remain required. cert-manager can create the same Secrets, but it is optional. A representative control-plane certificate looks like this:
Create equivalent certificates for execution-engine and llm-gateway with their rendered service DNS names. Restart affected pods after CA or leaf certificate rotation unless an operator-managed reloader handles restarts.

Workspace roles

Configure deployment-supported workspace roles with workspaceRoles in chart values:
If enabledBuiltIns is omitted, all built-ins are enabled. If it is provided, it must include owner. Custom roles may only use supported workspace capabilities and cannot include owner-only governance capabilities. Every workspace inherits the same catalog. Example install:
Resolve the version from the acornopsPlatform entry in the stack-versions.yaml release matrix.

Production exposure

Expose only the management console and control-plane public routes:
  • https://console.example.com/
  • https://api.example.com/api/v1
  • wss://api.example.com/api/v1/agent/connect
Keep execution engine and LLM gateway private to the platform network. Ingress ownership and NetworkPolicy authorization are independent. exposure.ingress.enabled controls whether the chart renders an Ingress; it does not authorize packets. When networkPolicies.enabled=true, configure networkPolicies.ingressController.from with the exact namespace and pod selectors allowed to reach the management console and control plane. An empty list fails closed and allows no ingress-controller source through the chart’s default-deny policy. This applies equally when an external controller or GitOps system owns the Ingress resource.

Replicas

The chart defaults to multiple replicas for stateless or Redis-coordinated services where supported: During a control-plane rollout, connected agents reconnect to an available pod. Commands that are active during the rollout can fail or time out and should be retried.

VM Compose

Use the VM Compose stack for a single-machine central platform installation. This path is useful for smaller environments and production-style testing with separate Kubernetes clusters and VM targets. Typical flow:
Before starting the stack:
  • Generate unique internal service tokens and encryption keys.
  • Set production hostnames and OIDC settings.
  • Keep TRUST_PROXY=1 when the edge proxy owns TLS and forwarded host headers.
  • Point database and Redis settings at durable services.
  • Review JWKS readiness, request-size, rate-limit, and MCP egress variables.
  • Pin all image references from the vm-prod-v1 release matrix instead of using mutable or independently selected tags.
  • Confirm the reverse proxy terminates TLS for the console and API hosts.
Database init jobs run before services start. Treat init failures as deployment blockers.

Greenfield database epoch

This version is not a rolling database upgrade. Back up if needed, then drop and recreate the external control-plane and gateway databases before installing the complete pinned stack matrix. Pre-release data is not preserved, and mixed gateway, control-plane, or execution-engine versions are unsupported.

Kubernetes clusters

Connecting a Kubernetes target is a workspace task performed after the central platform is ready. Follow Connect a Kubernetes cluster for registration, AgentK installation, scope, and verification.

VM targets

Connecting a Linux VM target is also a workspace task. Follow Connect a Linux VM for registration, AgentV installation, diagnostics, and bounded write behavior.

Validation

Complete the production readiness checklist before handing the deployment to workspace users.