homelab/kubernetes: cloudnative-pg how to copy existing db

- add documentation regarding how to copy existing DB using
  cloudnative-pg
This commit is contained in:
2025-06-21 19:07:42 +03:00
parent 53978199a6
commit 28c23821ec
4 changed files with 84 additions and 2 deletions

View File

@ -0,0 +1,49 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: master-postgres
spec:
instances: 1
bootstrap:
initdb:
import:
type: monolith
databases:
- giteadb
- reservemaster
roles:
- gitea
- postgres
- taqi
source:
externalCluster: pg-main
storage:
size: 5Gi
storageClass: longhorn-2x
externalClusters:
- name: pg-main
connectionParameters:
host: 192.168.1.142
user: postgres
dbname: postgres
password:
name: my-postgres-postgresql
key: postgres-password
# Backup properties for MinIO
backup:
barmanObjectStore:
destinationPath: s3://pgmain
endpointURL: ${MINIO_ENDPOINT_URL}
s3Credentials:
accessKeyId:
name: minio-creds
key: ACCESS_KEY_ID
secretAccessKey:
name: minio-creds
key: ACCESS_SECRET_KEY
wal:
compression: gzip
data:
compression: gzip
retentionPolicy: "15d"

View File

@ -0,0 +1,10 @@
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: pg-main-backup
spec:
immediate: true
schedule: "0 0 0 * * *" # At midnight every day
backupOwnerReference: self
cluster:
name: master-postgres

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: pgmain-svc
spec:
type: LoadBalancer
ports:
- port: 5432
targetPort: 5432
selector:
cnpg.io/cluster: master-postgres