# data — a cluster with the cabinets an environment asks for. # # A cabinet is a public service dropped in as-is — the upstream image, # unmodified, reachable at a known address. It is declared once and installs on # either target: a `service.yml` composes it for a laptop, and the addons below # install the same one here. The names match deliberately — each cabinet.json # carries a `rig_addon` field pointing at ctrl/addons/.sh. # # Everything lands in the `data` namespace (DATA_NAMESPACE to move it), so # `make cluster reset` on the app namespace leaves the databases alone. # # Costs roughly 2-3 GB with airflow, under 1 without. Airflow's first boot runs # the whole metadata migration, so expect a few minutes before it is ready. PROFILE_NAME=data K8S_VERSION=v1_36 KIND_CONFIG=kind-config.yaml.tpl # Order matters: addons.sh installs in the order listed, and airflow refuses to # start without a metadata database, so postgres comes first. ADDONS="metallb postgres redis airflow" # local, not none — see minimal.env: `none` has no outward-push guard. REGISTRY_MODE=local INGRESS_MODE=hostport DNS_MODE=hosts # Namespace for the dependency containers. DATA_NAMESPACE=data # Postgres identity. The password is not here: postgres.sh generates one on # first install and keeps it across re-runs, so re-running the addon never # rotates the credential out from under whatever is already connected. POSTGRES_DB=app POSTGRES_USER=app POSTGRES_STORAGE=2Gi AIRFLOW_ADMIN_USER=admin # Ports derive from the directory name by default — see ctrl/ports.sh. Reach # the databases with port-forward rather than binding more host ports: # kubectl -n data port-forward svc/postgres 5432:5432 # kubectl -n data port-forward svc/airflow 8080:8080