Run it on your laptop
In the GitOps repository:
devbox run cluster-up # about 2 minutes the first timedevbox run cluster-ui # opens k9s on the cluster (namespace <app>-dev)devbox run cluster-down # removes the cluster and its registryWhat cluster-up does
Section titled “What cluster-up does”- Creates (or reuses) a k3d cluster named
<app>-localon a pinned k3s image, mapping port8088to the Gateway, or the next free port when 8088 is taken (it says which;LOCAL_HTTP_PORT=<port>forces one). - Enables the Gateway API on k3s’ built-in Traefik, so
HTTPRoutes work and*.localhosthost names resolve without any DNS setup. - Installs ArgoCD, hands it read access to your private GitOps repository, pre-creates the
<app>-dev,-stagingand-prodnamespaces with an image pull secret for GHCR, and applies the root Application. - Installs only what your declarations need: External Secrets Operator, CloudNativePG (if the system declares the postgres resource), Kyverno (if an environment has a
policy), a Grafana dev stack (if an environment setsobservability: {ui: lgtm}). - Prints the URLs of exposed components and of Grafana.
Then watch it converge:
kubectl --context k3d-<app>-local -n argocd get applicationskubectl --context k3d-<app>-local -n <app>-dev get podsor use /system:status for one table.
Credentials
Section titled “Credentials”By default cluster-up uses your gh login for ArgoCD and for the image pull secret and says so. For least privilege set REPO_TOKEN (a fine-grained token with contents:read on the GitOps repo) and PULL_TOKEN (read:packages only).
Options
Section titled “Options”All environment variables (versions, WITH_* switches, ports, registry) are listed in the configuration reference. Examples:
LOCAL_HTTP_PORT=9090 devbox run cluster-up # different host portWITH_KYVERNO=0 devbox run cluster-up # skip an operatorReal clusters
Section titled “Real clusters”The platform never applies manifests to a real cluster by itself. A human bootstraps it once with KUBE_CONTEXT=<context> devbox run bootstrap; from then on every change arrives through merged pull requests and ArgoCD. Operators for the features you use (External Secrets, CloudNativePG, Kyverno) must be installed there by the cluster’s owner.