mirror of
https://gitlab.kube.huskypup.net/Scooby/Homelabv4.git
synced 2026-08-21 05:26:49 +00:00
Replace DNS-flip failover watcher with static vps.huskypup.net subdomains
The DNS-flip watcher (scripts/vps-dns-failover/) was designed but never actually installed on the VPS despite being tracked as done - real gap, found when asked whether the standby services are actually reachable. New design: instead of dynamically flipping *.kube.huskypup.net between home and VPS IPs, give the VPS site its own permanent, always-resolving subdomain - vault/gitea/auth/n8n/nextcloud.vps.huskypup.net, each with real Ingress+TLS on the VPS's own Traefik+cert-manager (both already installed by Phase 0 bootstrap, just never wired up). No token-scoping decision needed since there's no dynamic flipping - reuses the same cert-manager token pattern as home. Also scales Authentik/n8n/Nextcloud from 0 to 1 replica on the VPS so the replicated data is actually browsable at all times, not just present-but-unreachable. Their CNPG clusters are still read-only replicas (spec.replica.enabled: true) - writes will error until a deliberate manual promotion, but reads/browsing work now. Vault and Gitea were already running continuously.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
---
|
||||
# cert-manager itself is installed directly by scripts/vps-bootstrap.sh
|
||||
# (Phase 0, out-of-band like k3s/Netbird) - not GitOps-managed here. This
|
||||
# ClusterIssuer just rides the same GitOps pipeline as everything else in
|
||||
# vps-standby, DNS-01 via Cloudflare (same pattern as home's
|
||||
# infrastructure/cert-manager/manifests/letsencrypt-issuer.yaml).
|
||||
#
|
||||
# cloudflare-token-secret is a plain Secret copied here manually
|
||||
# (kubectl, not git - same reasoning as every other VPS secret):
|
||||
# kubectl -n cert-manager create secret generic cloudflare-token-secret \
|
||||
# --from-literal=cloudflare-token=<same token as home's cert-manager>
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: letsencrypt-production
|
||||
spec:
|
||||
acme:
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: garrettstone499@gmail.com
|
||||
privateKeySecretRef:
|
||||
name: letsencrypt-production
|
||||
solvers:
|
||||
- dns01:
|
||||
cloudflare:
|
||||
email: garrettstone499@gmail.com
|
||||
apiTokenSecretRef:
|
||||
name: cloudflare-token-secret
|
||||
key: cloudflare-token
|
||||
Reference in New Issue
Block a user