Skip to content

justfile

All recipes run from the repo root. Values such as the VIP and node IPs are read from config/config.yml with yq. Source: justfile.

RecipeArgsWhat it does
corestack actionRuns pulumi <action> on a stack (talos, platform, hetzner, authentik, cloudflare) inside sops exec-env of the bootstrap secrets. Adds --yes except for preview
synth—CDK8s synthesis (go run . in workloads/) into app/
ping_scan—nmap -sn over the cluster subnet
RecipeArgsWhat it does
talos-upgradenode [schematic=base] [drain=true]Upgrades one node to the pinned Talos with the Image Factory installer. Refuses the wrong schematic, asks before rebooting, waits for health, then runs longhorn-repair-iscsi
talos-upgrade-k8s*flagstalosctl upgrade-k8s to the pinned Kubernetes; pass --dry-run first
talos-health—Cluster health; must be clean before the next node
talos-versions—Talos version on every node
RecipeArgsWhat it does
create-secrets—Creates the bootstrap Kubernetes Secrets from SOPS (scripts/create-bootstrap-secrets.sh)
openbao-init—One-time: initialises and unseals OpenBao, writes the unseal key to ~/openbao-unseal-key (mode 600), revokes the init root token, prints next steps
openbao-setup—Kubernetes auth, policies, roles and seeded app secrets (scripts/openbao-setup.sh). Idempotent; never overwrites values
openbao-token—Root token via generate-root over the in-pod socket. Refuses a terminal: export ROOT_TOKEN=$(just openbao-token)
openbao-revoke[token]Revokes the token, or $ROOT_TOKEN
openbao-getpath [field]Reads a KV path with a throwaway root token
openbao-sa-tokensa ns roleShort-lived OpenBao token via Kubernetes auth for a service account
openbao-sa-getsa ns role path [field]Reads a KV path as that service account
sops-viewfileOpens a SOPS file decrypted in $EDITOR
sops-decryptfilePrints a SOPS file decrypted to stdout
hooks—Enables the gitleaks + trufflehog pre-commit and pre-push hooks (core.hooksPath .githooks)
secret-scan-history—Scans the whole git history with both scanners, findings redacted
RecipeArgsWhat it does
gateway-repair-l2—Re-elects the Gateway’s L2 announcement when its LB IP is dark — see Repairs
longhorn-repair-iscsi—Strips iSCSI node-record parameters the current open-iscsi rejects
comfyuion|offSets the ComfyUI replica literal, synths, commits and pushes
argocd-syncappTriggers a sync of one Argo CD Application
grafana-init—One-time: creates Grafana org “Public” (must be id 2)
headlamp-token[duration=24h]Cluster-admin login token for Headlamp
RecipeArgsWhat it does
build-pushimage tagBuilds images/<image> for linux/amd64 and pushes to harbor.madhan.app/library/<image>:<tag>
RecipeArgsWhat it does
docs-serve—npm run dev in docs/, at http://localhost:4321
docs-check—Version and link guard (scripts/docs-version-check.sh); also runs in CI