1.8 KiB
1.8 KiB
Haven project context
Purpose
haven is the public GitOps specification repository for the Haven Kubernetes cluster. Argo CD continuously reconciles the manifests on main into the cluster.
Repository organization
apps/<namespace>/*.yaml— one application or infrastructure specification per file. The directory name selects its target namespace through the root ApplicationSet.apps/root/applicationset.yaml— discoversapps/*/*.yamland creates Argo CD Applications that automatically prune and self-heal.bootstrap/— cluster bootstrap manifests such as namespaces, Argo CD configuration, and address pools.secrets/— Kubernetes secret specifications referenced by applications..gitea/workflows/trigger-renovate.yaml— manually triggered Gitea Actions workflow that creates an immediate one-off Job from the livecronjobs/renovateCronJob.
Build and deploy
- Commit manifest changes to
main; the root ApplicationSet reconciles them automatically. - The
Trigger RenovateGitea workflow is manual-only (workflow_dispatch). It downloadskubectl, writes${{ secrets.KUBE_CONFIG }}to an ephemeral kubeconfig, verifies the live CronJob, then creates a uniquely named Job in thecronjobsnamespace fromcronjob/renovate. - The kubeconfig is supplied at execution time as the repository or organization
KUBE_CONFIGsecret. No credentials are stored in this repository.
Conventions
- Keep Kubernetes manifest and workflow YAML LF-terminated;
.gitattributesenforces this for.yamland.ymlfiles. - Do not commit plaintext credentials. Kubernetes resources should continue to reference the existing secret mechanisms.
- A manual Renovate dispatch starts an additional run; the weekly CronJob schedule remains unchanged.