mirror of
https://gitlab.kube.huskypup.net/Scooby/Homelabv4.git
synced 2026-08-20 23:16:49 +00:00
Postgres refuses to replay WAL past a checkpoint recorded with higher max_connections/max_wal_senders/etc than the recovering instance's own settings: 'recovery aborted because of insufficient parameter settings: max_connections = 100 is a lower setting than on the primary server, where its value was 200' - confirmed live on all 3 VPS clusters (they had no postgresql.parameters block at all, defaulting to CNPG's 100). Copied home's full postgresql.parameters block to remove any other potential mismatch (max_wal_senders, max_worker_processes are subject to the same check). Bumped memory requests/limits to match home too - shared_buffers: 512MB needs headroom the previous 256Mi/1Gi didn't have.
79 lines
2.3 KiB
YAML
79 lines
2.3 KiB
YAML
---
|
|
# CNPG replica cluster continuously replaying WAL from home's pg-nextcloud
|
|
# (apps/nextcloud/manifests/cnpg-cluster.yaml) via VPS MinIO's
|
|
# cnpg-backups/pg-nextcloud bucket path. Same pattern as the authentik/n8n
|
|
# VPS replica clusters - see infrastructure/vps-standby/authentik/
|
|
# manifests/cnpg-cluster.yaml for the full rationale.
|
|
#
|
|
# vps-minio-secret is a plain Secret copied here manually (kubectl, not
|
|
# git):
|
|
# kubectl -n nextcloud create secret generic vps-minio-secret \
|
|
# --from-literal=accesskey=<vps minio root user> \
|
|
# --from-literal=secretkey=<vps minio root password>
|
|
apiVersion: postgresql.cnpg.io/v1
|
|
kind: Cluster
|
|
metadata:
|
|
name: pg-nextcloud
|
|
namespace: nextcloud
|
|
spec:
|
|
imageName: ghcr.io/cloudnative-pg/postgresql:16
|
|
instances: 1
|
|
|
|
# shared_buffers: 512MB above needs headroom - matches home's requests/limits.
|
|
resources:
|
|
requests:
|
|
memory: "512Mi"
|
|
cpu: "25m"
|
|
limits:
|
|
memory: "2Gi"
|
|
cpu: "250m"
|
|
|
|
storage:
|
|
size: 20Gi
|
|
storageClass: local-path
|
|
|
|
# See infrastructure/vps-standby/authentik/manifests/cnpg-cluster.yaml
|
|
# for why this must match home's settings (recovery aborts otherwise).
|
|
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: "2621kB"
|
|
min_wal_size: "1GB"
|
|
max_wal_size: "4GB"
|
|
|
|
bootstrap:
|
|
recovery:
|
|
source: home-backup
|
|
|
|
externalClusters:
|
|
- name: home-backup
|
|
barmanObjectStore:
|
|
# See infrastructure/vps-standby/authentik/manifests/cnpg-cluster.yaml
|
|
# for why this override is required (serverName defaults to the
|
|
# externalClusters[].name, not the source cluster's real name).
|
|
serverName: pg-nextcloud
|
|
destinationPath: s3://cnpg-backups/pg-nextcloud
|
|
endpointURL: http://vps-minio.minio.svc.cluster.local:9000
|
|
s3Credentials:
|
|
accessKeyId:
|
|
name: vps-minio-secret
|
|
key: accesskey
|
|
secretAccessKey:
|
|
name: vps-minio-secret
|
|
key: secretkey
|
|
|
|
replica:
|
|
enabled: true
|
|
source: home-backup
|
|
|
|
monitoring:
|
|
enablePodMonitor: false
|