§02 — Exo Control Plane

Install with exo-install

The recommended path. One self-contained binary applies the CRDs, the operator, and the platform — driven through your own kubectl, with sensible defaults and generated secrets.

5 min read·Set by Exo Editorial·v0.3.0 Beta

exo-install is the installer for the whole platform. It ships the manifests embedded in the binary and applies them through your existing kubectl, so your kubeconfig auth — exec plugins, OIDC, cloud IAM — works unchanged. It installs three things: the five agentkube.io CRDs, the agentkube-manager operator (Deployment, RBAC, admission webhook), and the platform (backend/UI Deployment, Service, Secret, ConfigMap, and an optional in-cluster Postgres).

What exo-install does

The embedded manifests are pinned copies derived from the operator config (agentkube/config/*) and the repo-root deploy.yaml. Defaults point at the published images — docker.io/adaptivelive/agentkube-manager for the operator and docker.io/adaptivelive/exo:latest for the platform. Secrets you don't supply are generated: the JWT secret, the encryption key, and (with the bundled Postgres) the database password.

Interactive mode

Run it with no arguments for a guided, full-terminal installer — arrow-key menus, inline validation, masked secret entry. It walks configuration → component selection → pre-flight → plan → apply.

terminal· bash
1exo-install

Scripted install

For CI or a repeatable runbook, drive it by subcommand and flags:

terminal· bash
1# 1. Verify toolchain + cluster (binaries, reachability, RBAC)
2exo-install precheck
3 
4# 2. Install everything: CRDs → operator → platform, with defaults
5exo-install install
6 
7# Validate against a live API server without persisting anything
8exo-install install --dry-run

Installing individual pieces

Each component has its own subcommand, useful for split-cluster topologies:

terminal· bash
1# Just the CRDs
2exo-install crds
3 
4# Just the operator, in managed mode pointed at your platform
5exo-install operator --managed --base-url https://exo.example.com
6 
7# Just the platform, pinned to a specific image + namespace
8exo-install platform --namespace exo --image adaptivelive/exo:v0.2.146
9 
10# See exactly what would be applied (no cluster needed)
11exo-install render crds | kubectl apply -f -

Bring your own database

Skip the bundled Postgres and point the platform at a managed instance:

terminal· bash
1exo-install install --postgres=false \
2 --db-dsn "host=db.example.com user=exo dbname=exo sslmode=require"

Config files

Capture every knob in a JSON file and reuse it; flags still override the file.

terminal· bash
1exo-install config -o exo-install.json # interactive wizard writes the file
2exo-install install --config exo-install.json --namespace staging

Uninstall

terminal· bash
1exo-install uninstall