Files
haven/project-context.md
T

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 — discovers apps/*/*.yaml and 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 live cronjobs/renovate CronJob.

Build and deploy

  • Commit manifest changes to main; the root ApplicationSet reconciles them automatically.
  • The Trigger Renovate Gitea workflow is manual-only (workflow_dispatch). It downloads kubectl, writes ${{ secrets.KUBE_CONFIG }} to an ephemeral kubeconfig, verifies the live CronJob, then creates a uniquely named Job in the cronjobs namespace from cronjob/renovate.
  • The kubeconfig is supplied at execution time as the repository or organization KUBE_CONFIG secret. No credentials are stored in this repository.

Conventions

  • Keep Kubernetes manifest and workflow YAML LF-terminated; .gitattributes enforces this for .yaml and .yml files.
  • 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.