Skip to content

Deploy AKKO — One Command

Prerequisites

  • kubectl (v1.28+)
  • helm (v3.12+)
  • A running Kubernetes cluster (k3d, k3s, kind, EKS, AKS, GKE, OpenShift, bare-metal)

Quick Start

git clone https://github.com/AKKO-p/AKKO.git
cd AKKO
AKKO_DOMAIN=my.example.com bash helm/scripts/deploy.sh

That's it. The script: 1. Detects your cluster type (k3d, k3s, kind, EKS, AKS, GKE, OpenShift) 2. Generates domain-specific values + Keycloak realm 3. Creates secrets (if first run) 4. Creates TLS certificate (self-signed) 5. Runs helm upgrade --install with all values files 6. Waits for all services to be ready

Environment Variables

Variable Default Description
AKKO_DOMAIN akko.local Target domain for all ingress URLs
AKKO_NAMESPACE akko Kubernetes namespace
AKKO_RELEASE akko Helm release name
AKKO_CLUSTER_TYPE auto-detected Force cluster type
AKKO_SKIP_BUILD false Skip image build (use registry images)
AKKO_SKIP_CLUSTER false Skip cluster creation (k3d only)
AKKO_HELM_TIMEOUT 20m Helm upgrade timeout
AKKO_PROTOCOL https Protocol for URLs

Per-Cluster Notes

k3d (local development)

bash helm/scripts/deploy.sh
# Default domain: akko.local, add to /etc/hosts

k3s (single-node production)

AKKO_DOMAIN=159.195.77.208.nip.io \
AKKO_SKIP_BUILD=true \
AKKO_SKIP_CLUSTER=true \
bash helm/scripts/deploy.sh

EKS / AKS / GKE

AKKO_DOMAIN=akko.company.com \
AKKO_SKIP_BUILD=true \
AKKO_SKIP_CLUSTER=true \
bash helm/scripts/deploy.sh

Custom images must be pushed to a registry accessible from the cluster. Set global.image.registry in your values override:

helm upgrade akko helm/akko/ -n akko \
  --set global.image.registry=ghcr.io/akko-p \
  -f helm/examples/values-domain.yaml \
  ...

OpenShift

Same as EKS/AKS/GKE. Ensure PodSecurityStandards restricted profile is compatible (all AKKO pods run as non-root).

Custom Images

AKKO uses 12 custom images. On k3d/k3s they are built locally. On cloud clusters, push them to your registry:

Image Purpose
akko-postgres:2026.03 PostgreSQL + PostGIS + pgvector + pgaudit
akko-spark:2026.03 Spark with Iceberg JARs
akko-notebook:2026.03 JupyterHub user notebook (Python, R, Julia, Scala/Almond, Quarto, Mermaid)
akko-cockpit:2026.03 Portal + health proxy (8 pages)
akko-trino:2026.03 Trino + AI Functions plugin
akko-mlflow:2026.03 MLflow tracking server
akko-ai-service:2026.03 AI Service (FastAPI)
akko-airflow:2026.03 Airflow + Python deps
akko-dbt:2026.03 dbt Core + dbt-trino (semantic layer)
akko-mcp-trino:2026.03 MCP Server for Trino (AI agent)
akko-mcp-openmetadata:2026.03 MCP Server for OpenMetadata (catalog discovery, lineage)

Verify

kubectl get pods -n akko          # All Running
helm list -n akko                  # STATUS: deployed
bash tests/smoke-trino-ai.sh      # 18 PASS

Upgrade

AKKO_DOMAIN=my.example.com bash helm/scripts/deploy.sh
# Same command — idempotent