2026-10-05 18:49:42 +01:00
|
|
|
# Per-cluster variables. Override them in k8s-ng/bootstrap/root.yaml
|
|
|
|
|
# (spec.source.helm.valuesObject) when the state is deployed to another cluster.
|
|
|
|
|
repoURL: https://gt.hexor.cy/ab/homelab.git
|
|
|
|
|
targetRevision: main
|
|
|
|
|
destinationServer: https://kubernetes.default.svc
|
|
|
|
|
project: core
|
|
|
|
|
|
|
|
|
|
# Core applications. Lower waves are synced first and must be Healthy before the
|
|
|
|
|
# next wave starts. Every path is a kustomize (or plain manifest) directory.
|
|
|
|
|
# wave 0: Argo CD itself and its projects
|
|
|
|
|
# wave 1: operators (their CRDs are used by the later waves)
|
|
|
|
|
# wave 2: the database cluster and its databases/users
|
|
|
|
|
# wave 3: services that need the database and secrets
|
|
|
|
|
apps:
|
|
|
|
|
- name: argocd
|
|
|
|
|
path: k8s-ng/core/argocd
|
|
|
|
|
namespace: argocd
|
|
|
|
|
wave: 0
|
|
|
|
|
- name: cnpg
|
|
|
|
|
path: k8s-ng/core/cnpg
|
|
|
|
|
namespace: cnpg-system
|
|
|
|
|
wave: 1
|
2026-10-05 19:00:28 +01:00
|
|
|
- name: traefik-config
|
|
|
|
|
path: k8s-ng/core/traefik-config
|
|
|
|
|
namespace: kube-system
|
|
|
|
|
wave: 1
|
2026-10-05 19:17:41 +01:00
|
|
|
- name: reloader
|
|
|
|
|
path: k8s-ng/core/reloader
|
|
|
|
|
namespace: reloader
|
|
|
|
|
wave: 1
|
2026-10-06 19:20:06 +01:00
|
|
|
- name: gpu-system
|
|
|
|
|
path: k8s-ng/core/gpu
|
|
|
|
|
namespace: gpu-system
|
|
|
|
|
wave: 1
|
2026-10-05 18:49:42 +01:00
|
|
|
- name: cert-manager
|
|
|
|
|
path: k8s-ng/core/cert-manager
|
|
|
|
|
namespace: cert-manager
|
|
|
|
|
wave: 1
|
|
|
|
|
skipDryRunOnMissingResource: true # ClusterIssuers need the cert-manager CRDs
|
|
|
|
|
- name: external-secrets
|
|
|
|
|
path: k8s-ng/core/external-secrets
|
|
|
|
|
namespace: external-secrets
|
|
|
|
|
wave: 1
|
|
|
|
|
- name: postgresql
|
|
|
|
|
path: k8s-ng/core/postgresql
|
|
|
|
|
namespace: psql
|
|
|
|
|
wave: 2
|
|
|
|
|
prune: false # never delete databases because of a manifest change
|
|
|
|
|
skipDryRunOnMissingResource: true # CRDs come from the cnpg and external-secrets apps
|
|
|
|
|
- name: vaultwarden
|
|
|
|
|
path: k8s-ng/core/vaultwarden
|
|
|
|
|
namespace: vaultwarden
|
|
|
|
|
wave: 3
|
|
|
|
|
skipDryRunOnMissingResource: true
|
2026-10-05 23:29:35 +01:00
|
|
|
- name: keycloak
|
|
|
|
|
path: k8s-ng/core/keycloak
|
|
|
|
|
namespace: keycloak
|
|
|
|
|
wave: 3
|
|
|
|
|
skipDryRunOnMissingResource: true # ExternalSecret/Certificate CRDs come from earlier waves
|
2026-10-06 16:30:44 +01:00
|
|
|
# Not a core service: lives in k8s-ng/apps and belongs to the "apps" project.
|
2026-10-06 16:18:36 +01:00
|
|
|
- name: furumi
|
2026-10-06 16:30:44 +01:00
|
|
|
project: apps
|
|
|
|
|
path: k8s-ng/apps/furumi
|
2026-10-06 16:18:36 +01:00
|
|
|
namespace: furumi
|
2026-10-07 18:35:17 +01:00
|
|
|
wave: 6 # after prom-stack installs the ServiceMonitor CRD
|
2026-10-06 16:18:36 +01:00
|
|
|
skipDryRunOnMissingResource: true
|
2026-10-06 17:42:49 +01:00
|
|
|
- name: web-petting
|
|
|
|
|
project: apps
|
|
|
|
|
path: k8s-ng/apps/web-petting
|
|
|
|
|
namespace: web-petting
|
|
|
|
|
wave: 5
|
|
|
|
|
skipDryRunOnMissingResource: true
|
2026-10-06 19:20:06 +01:00
|
|
|
- name: llamacpp
|
|
|
|
|
project: apps
|
|
|
|
|
path: k8s-ng/apps/llamacpp
|
|
|
|
|
namespace: llamacpp
|
|
|
|
|
wave: 5 # pinned to the ai node (GPU); must not hold back the other waves
|
|
|
|
|
skipDryRunOnMissingResource: true
|
2026-10-06 15:13:09 +01:00
|
|
|
- name: secret-stores
|
|
|
|
|
path: k8s-ng/core/secret-stores
|
|
|
|
|
namespace: external-secrets
|
|
|
|
|
wave: 4 # reads the Vaultwarden vault, so it comes after vaultwarden
|
|
|
|
|
skipDryRunOnMissingResource: true # ClusterSecretStore CRD comes from the external-secrets app
|
2026-10-06 20:20:49 +01:00
|
|
|
- name: gitea
|
|
|
|
|
path: k8s-ng/core/gitea
|
|
|
|
|
namespace: gitea
|
|
|
|
|
wave: 5 # after secret-stores (its secrets come from the vault); pinned to the music node; the runner to the ai node
|
|
|
|
|
prune: false # never delete the instance because of a manifest change
|
|
|
|
|
skipDryRunOnMissingResource: true
|
2026-10-07 18:35:17 +01:00
|
|
|
- name: prom-stack
|
|
|
|
|
path: k8s-ng/core/prom-stack
|
|
|
|
|
namespace: prometheus
|
|
|
|
|
wave: 5 # after secret-stores; installs monitoring before application workloads
|
|
|
|
|
skipDryRunOnMissingResource: true # monitoring, cert-manager and ExternalSecret CRDs
|
2026-10-12 11:45:52 +01:00
|
|
|
- name: immich-db
|
|
|
|
|
path: k8s-ng/core/immich-db
|
|
|
|
|
namespace: immich
|
|
|
|
|
wave: 2
|
|
|
|
|
prune: false
|
|
|
|
|
skipDryRunOnMissingResource: true
|
|
|
|
|
- name: minecraft
|
|
|
|
|
project: games
|
|
|
|
|
path: k8s-ng/apps/minecraft
|
|
|
|
|
namespace: minecraft
|
|
|
|
|
wave: 6
|
|
|
|
|
- name: rustdesk
|
|
|
|
|
project: apps
|
|
|
|
|
path: k8s-ng/apps/rustdesk
|
|
|
|
|
namespace: rustdesk
|
|
|
|
|
wave: 6
|
|
|
|
|
skipDryRunOnMissingResource: true
|