infra: add kustomize HA deployment tree #11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "kubernetes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Full HA kustomize composition for Kubernetes:
topology-spread, anti-affinity, hardened securityContext;
Postgres via CloudNativePG (3 instances, sync-replication quorum,
fencing, S3 WAL backups); Redis HA via Sentinel (3 redis + 3
sentinels, AOF everysec) with a kustomize-native failover
controller; External Secrets Operator wiring for MASTER_KEY /
JWT_SECRET / SECRET_KEY / DB / Redis / backup credentials;
cert-manager Ingress + ClusterIssuer; default-deny NetworkPolicy
with per-component allow-lists; Pod Security Standards
'restricted' namespace label.
SSD storage, ResourceQuota + LimitRange, Let's Encrypt,
pinned image tags).
TLS, dev-mode Vault.
README documents operator prerequisites, Vault policy/KV layout,
build/apply/dry-run commands, admin promotion, MASTER_KEY rotation,
pg failover + PITR, redis failover verification, upgrade procedure,
and monitoring alerts.
kustomize build verified clean on base, prod, and staging.
This application IS the external secrets store for other systems, so its own bootstrap credentials do not need to be fetched from one. Removed: - deploy/base/external-secrets/ — ClusterSecretStore + 6 ExternalSecrets - deploy/base/rbac/{external-secrets-reader SA, Role, RoleBinding} - overlays/{prod,staging}/vault-server-patch.yaml Replaced with: - deploy/base/secrets/ — README + secrets.example.yaml (structural templates with empty stringData; commit-safe reference only) - scripts/bootstrap-secrets.sh — generates random passwords for each required Secret and kubectl applies them (chmod 600 env dump with 60s auto-delete; MASTER_KEY reminder) Updated: - base/kustomization.yaml — drop external-secrets, add secrets - overlays/{prod,staging}/kustomization.yaml — drop vault-server-patch - deploy/README.md — rewrite: remove Vault prerequisites + KV layout, add 'Secrets bootstrap' section, document rotation procedures against kubectl patch + kubectl rollout instead of ESO annotations Required Secret names: secretserver-app-secrets, secretserver-postgrest-secrets, secretserver-postgres-superuser, secretserver-postgres-authenticator, secretserver-redis-secrets, secretserver-postgres-backup (opt). kustomize build verified clean on base, prod, staging.