129 lines
4.2 KiB
YAML
129 lines
4.2 KiB
YAML
# 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
|
|
- name: traefik-config
|
|
path: k8s-ng/core/traefik-config
|
|
namespace: kube-system
|
|
wave: 1
|
|
- name: coredns-config
|
|
path: k8s-ng/core/coredns-config
|
|
namespace: kube-system
|
|
wave: 1
|
|
validate: false # partial Deployment: only the fields we manage
|
|
- name: reloader
|
|
path: k8s-ng/core/reloader
|
|
namespace: reloader
|
|
wave: 1
|
|
- name: gpu-system
|
|
path: k8s-ng/core/gpu
|
|
namespace: gpu-system
|
|
wave: 1
|
|
- 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
|
|
- name: keycloak
|
|
path: k8s-ng/core/keycloak
|
|
namespace: keycloak
|
|
wave: 3
|
|
skipDryRunOnMissingResource: true # ExternalSecret/Certificate CRDs come from earlier waves
|
|
# Not a core service: lives in k8s-ng/apps and belongs to the "apps" project.
|
|
- name: furumi
|
|
project: apps
|
|
path: k8s-ng/apps/furumi
|
|
namespace: furumi
|
|
wave: 6 # after prom-stack installs the ServiceMonitor CRD
|
|
skipDryRunOnMissingResource: true
|
|
- name: web-petting
|
|
project: apps
|
|
path: k8s-ng/apps/web-petting
|
|
namespace: web-petting
|
|
wave: 5
|
|
skipDryRunOnMissingResource: true
|
|
- name: k8s-secrets
|
|
project: apps
|
|
path: k8s/apps/k8s-secrets
|
|
namespace: k8s-secret
|
|
wave: 6 # after secret-stores and auth-proxy
|
|
skipDryRunOnMissingResource: true
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- name: shadowsocks
|
|
project: apps
|
|
path: k8s-ng/apps/shadowsocks
|
|
namespace: shadowsocks
|
|
wave: 6
|
|
skipDryRunOnMissingResource: true
|