Files
storage/postgresql/manifests/cluster.yaml
Mayne0213 613ef5984e REFACTOR(repo): standardize taint to control-plane
- Change node-role.kubernetes.io/master to control-plane
- Update velero, zot, postgresql, minio tolerations
- Change effect from NoExecute to NoSchedule (K3s standard)
2026-01-09 21:46:40 +09:00

82 lines
2.1 KiB
YAML

apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: postgresql
namespace: postgresql
spec:
# PostgreSQL version
imageName: ghcr.io/cloudnative-pg/postgresql:16.6
# Number of instances
instances: 3 # 1 primary + 2 replicas for HA
# Storage configuration - using local-path-retain for data protection
storage:
storageClass: local-path-retain
size: 10Gi
# Resource requests and limits
resources:
requests:
memory: "256Mi"
cpu: "30m"
limits:
memory: "384Mi"
# PostgreSQL configuration
postgresql:
parameters:
max_connections: "200"
shared_buffers: "128MB"
effective_cache_size: "384MB"
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 configuration
bootstrap:
initdb:
database: app
owner: app
secret:
name: postgresql-app-user
# Monitoring
monitoring:
enablePodMonitor: true
customQueriesConfigMap:
- name: cnpg-default-monitoring
key: queries
# Add pod labels to metrics for Grafana dashboard compatibility
podMonitorRelabelings:
# Add cluster label from pod label
- sourceLabels: [__meta_kubernetes_pod_label_cnpg_io_cluster]
targetLabel: cluster
# Add instance role label
- sourceLabels: [__meta_kubernetes_pod_label_cnpg_io_instanceRole]
targetLabel: role
# Backup disabled - using Velero for backups instead
# Affinity to spread replicas across nodes (soft - prefer different nodes)
affinity:
podAntiAffinityType: preferred
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
# Enable superuser access
enableSuperuserAccess: true
superuserSecret:
name: postgresql-superuser
# Note: databases created manually (CNPG managed databases not supported in this version)
# - authelia