--- # GitLab cross-site replication Phase 1c (see # /home/scooby/.claude/plans/jiggly-snacking-iverson.md) - the VPS never # had a pg-praefect cluster before (VPS ran Gitaly without Praefect, # global.praefect.enabled: false). This is new, matching home's # apps/gitlab/manifests/praefect-cnpg-cluster.yaml as a real replica. # # Same two-stage deployment as cnpg-cluster.yaml in this directory: this # commit is bootstrap.recovery only, streaming config added once this # cluster's own certs exist to copy cross-cluster. apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: pg-praefect namespace: gitlab spec: imageName: ghcr.io/cloudnative-pg/postgresql:16 instances: 1 resources: requests: memory: "512Mi" cpu: "50m" limits: memory: "2Gi" storage: size: 10Gi # matches home's size storageClass: local-path primaryUpdateStrategy: unsupervised # Must match-or-exceed home's - copied verbatim from # apps/gitlab/manifests/praefect-cnpg-cluster.yaml. postgresql: parameters: max_connections: "200" shared_buffers: "512MB" effective_cache_size: "1536MB" maintenance_work_mem: "128MB" checkpoint_completion_target: "0.9" wal_buffers: "16MB" default_statistics_target: "100" random_page_cost: "1.1" effective_io_concurrency: "200" work_mem: "4MB" min_wal_size: "1GB" max_wal_size: "4GB" max_worker_processes: "4" bootstrap: recovery: source: home externalClusters: - name: home barmanObjectStore: serverName: pg-praefect destinationPath: s3://cnpg-backups/pg-praefect endpointURL: http://vps-minio.minio.svc.cluster.local:9000 s3Credentials: accessKeyId: name: vps-minio-secret key: accesskey secretAccessKey: name: vps-minio-secret key: secretkey monitoring: enablePodMonitor: false # no Prometheus on the VPS cluster