# 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: 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: 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