Files
Scooby Husky 7990f1fa47 Add VPS warm-standby/backup site (Phase 0-1b)
Foundation for a DR/backup path using an always-on VPS as a second
ArgoCD-managed cluster, plus DB/backup standardization work that fell
out of it:

- vps-standby ArgoCD cluster destination + AppProject, MinIO backup
  receiver, VPS bootstrap script (k3s, Netbird, cert-manager)
- Dual-site DNS failover watcher + home-IP DDNS CronJob, Cloudflare
  token moved out of git into Vault+ExternalSecret
- Nextcloud migrated from ad-hoc MariaDB to CNPG + redis-operator
  (matches n8n/Authentik/GitLab's backup-native pattern)
- Authentik's CNPG manifests moved into the actual ArgoCD-synced
  manifests/ path (were present but never wired into the sync path)
- Vault raft-snapshot CronJob, CNPG barmanObjectStore backups
  (Authentik/n8n/Nextcloud), Nextcloud file-PVC restic sync - all
  targeting the new VPS MinIO receiver

See VPS Warm-Standby plan doc for full design rationale.
2026-08-17 14:59:26 -05:00

83 lines
2.2 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: infrastructure
namespace: argocd
spec:
description: Infrastructure and platform services
sourceRepos:
- '*'
destinations:
- namespace: '*'
server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: '*'
kind: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: applications
namespace: argocd
spec:
description: User-facing applications
sourceRepos:
- '*'
destinations:
- namespace: gitlab
server: https://kubernetes.default.svc
- namespace: argocd
server: https://kubernetes.default.svc
- namespace: n8n
server: https://kubernetes.default.svc
- namespace: nextcloud
server: https://kubernetes.default.svc
- namespace: teslamate
server: https://kubernetes.default.svc
- namespace: home-assistant
server: https://kubernetes.default.svc
- namespace: frigate
server: https://kubernetes.default.svc
- namespace: guacamole
server: https://kubernetes.default.svc
- namespace: cattle-system
server: https://kubernetes.default.svc
- namespace: gateway
server: https://kubernetes.default.svc
- namespace: istio-system
server: https://kubernetes.default.svc
- namespace: authentik
server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: '*'
kind: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: vps-standby
namespace: argocd
spec:
# VPS warm-standby / backup-site services. Deployed to the "vps-standby" cluster
# registered via `argocd cluster add ... --name vps-standby` (see
# scripts/vps-bootstrap.sh). Scoped to that cluster only — nothing in this
# project should ever target the home cluster.
description: VPS warm-standby / backup-site services
sourceRepos:
- '*'
destinations:
- namespace: '*'
name: vps-standby
clusterResourceWhitelist:
- group: '*'
kind: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'