Full provision
Cloud, cluster, IAM, GitOps, CRDs, operator, and optional portal — all from an
empty AWS account. It builds the whole stack rather than attaching to one, though
it will join a VPC someone else owns via cluster.network.mode: adopt.
One command takes an empty AWS account to a running, self-reconciling nanohype platform — then hands off to the portal for day-2.
$ curl -fsSL rackctl.sh/install | shrackctl is the OSS bootstrapper for nanohype — the
agent-native platform. It automates the entire first-deploy-aws runbook: cloud
substrate, EKS cluster, GitOps, controllers, and the operator portal, provisioned
from zero and left reconciling on its own.
# read-only — prints every command a provision would runrackctl plan -c rackctl.yaml
# provision for realrackctl apply -c rackctl.yamlFull provision
Cloud, cluster, IAM, GitOps, CRDs, operator, and optional portal — all from an
empty AWS account. It builds the whole stack rather than attaching to one, though
it will join a VPC someone else owns via cluster.network.mode: adopt.
The verb is the intent
rackctl plan prints every command a provision would run and creates nothing;
rackctl apply provisions. No mode flag — the dangerous invocation does not
differ from the safe one by four characters at the end of a line.
Orchestrates, doesn't rewrite
A thin engine over tofu, terragrunt, kubectl, helm, aws, git, and
gh. It drives the real nanohype repos — landing-zone, eks-gitops,
eks-agent-platform — it doesn’t reimplement them.
Reversible
A phase that fails while this run was building the platform rolls back in reverse.
A re-apply against a cluster that was already standing does not — that platform
is not this run’s to destroy. rackctl destroy tears the whole thing down in the
opposite order it was built.
rackctl plan and rackctl apply walk the same ordered pipeline. Phases 0–6 are the
core 0→running path; 7–9 are opt-in layers you enable in rackctl.yaml.
| # | Phase | What happens |
|---|---|---|
| 0 | Preflight | Tools, AWS identity, and service quotas |
| 1 | Acquire | Clone + fork the platform repos |
| 2 | Identity | AWS identity and the S3 Terraform state backend |
| 3 | Cluster | Network and the EKS cluster |
| 4 | Substrate | IAM, Pod Identity, buckets, monitoring, and the IRSA account-id writeback |
| 5 | GitOps | The ArgoCD bootstrap and addon convergence |
| 6 | Platform | Agent-platform substrate, CRDs, and the operator |
| 7 | Fleet (opt-in) | Crossplane cluster control plane |
| 8 | Portal (opt-in) | The day-2 operator UI |
| 9 | Smoke (opt-in) | A first-tenant smoke test |
See the pipeline for the full detail, or jump to the quickstart.
Install
Get the binary via curl, Homebrew, or from source.
Quickstart
Write a rackctl.yaml and take an account to running.
Configuration
Every field in the rackctl.yaml schema.
Footguns
Read these first — the sharp edges of a real provision.
Built on nanohype. Apache-2.0.