Installing Astrolift¶
This page summarizes the install paths and points at the canonical
runbooks. The runbooks live in
astrolift-opscode
because they walk Terraform + Helm files in that repo step-by-step.
At a glance¶
┌─ AWS → INSTALL-aws.md (recommended for production)
Pick your cloud ─────────┼─ GCP → STATUS.md (runbook TODO; dev tree ready)
├─ Azure → STATUS.md (runbook TODO; dev tree ready)
└─ vanilla k8s → INSTALL-k8s-native.md (kind dev or bare-metal)
Prerequisites (all paths)¶
| Tool | Min version |
|---|---|
| Terraform | 1.5 (1.9 used in CI) |
| Helm | 3.16 |
kubectl |
1.28 |
astro CLI |
latest |
Cloud paths additionally need the cloud's CLI (aws / gcloud / az)
and an account with provisioning permissions. See each runbook's
prerequisites section.
Install flow (every path)¶
- Configure the cloud's
config.envwith your project slug + region - Bootstrap state — one-time backend (S3 + DynamoDB / GCS bucket / Azure Storage Account)
- Plan + review —
./run.sh plan <cloud> <env>. Read the plan; never apply blind - Apply — provisions VPC, cluster, datastores, identity, registry, observability + backup wiring
- Verify —
./<cloud>/scripts/cold-boot.sh <env>(AWS) or the matching script per cloud - Build the env file —
./<cloud>/scripts/build-env.sh <env>pulls Terraform outputs + live secret values into a.envfile the Helm install reads - Helm install the control plane —
helm install astrolift ./helm/astrolift -f ./helm/astrolift/values.<cloud>.yaml - Register the cluster —
astro cluster register --plugin <cloud> --config <cloud>-prd.yaml - Deploy a first app —
astro app new+astro app register+astro app deploy
The runbooks in astrolift-opscode walk each step concretely with
copy-pasteable commands.
Multi-environment¶
Each cloud's <cloud>/environments/{dev,stg,prd}/ is independent — no
cross-env state. Defaults follow a dev=light / stg=most / prd=full
ladder for optional components. The toggle reference is in each cloud's
variables.tf and summarized in INSTALL-aws.md § Toggle reference.
Multi-install (multi-region or multi-cloud)¶
A single Astrolift install owns one DNS zone + one database. To run in multiple regions or clouds, create independent installs — one per region/cloud — each with its own Terraform state, control plane, and cluster set. There is no master above them; cross-install coordination is per-flow.
What happens after install¶
- The platform exposes the dashboard at
https://<base-zone>(or the ingress hostname you configured) - App developers register apps via the
astroCLI or the dashboard; see Getting Started for the dev side - Tenant deploys land in
<org>-<app>namespaces on the registered tenant cluster(s) - Logs / metrics / traces flow to whichever observability backend the install was configured for (per-tenant routing supported)
Status¶
See astrolift-opscode/STATUS.md for the canonical state map — what's complete, what's partial, what's stub. Read this before reporting "X is broken" — it might be a tracked TODO.