apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: gitea-db
  namespace: gitea

spec:
  imageName: ghcr.io/cloudnative-pg/postgresql:15.3
  instances: 3

  storage:
    size: 1Gi
    storageClass: local-path

  bootstrap:
    initdb:
      database: gitea
      owner: gitea
      secret:
        name: gitea-db

  postgresql:
    pg_hba:
      - host all all all md5

  backup:
    retentionPolicy: "30d"
    barmanObjectStore:
      destinationPath: "s3://halis/cloudnativepg"
      endpointURL: https://s3.halia.dev
      s3Credentials:
        accessKeyId:
          name: s3-secret
          key: AWS_ACCESS_KEY_ID
        secretAccessKey:
          name: s3-secret
          key: AWS_SECRET_ACCESS_KEY
        region:
          name: s3-secret
          key: AWS_REGION
      wal:
        compression: gzip
        maxParallel: 8

  resources:
    requests:
      cpu: 100m
      memory: 100Mi
    limits:
      cpu: 500m
      memory: 500Mi

  monitoring:
    enablePodMonitor: true

  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: zone
      whenUnsatisfiable: DoNotSchedule
      labelSelector:
        matchLabels:
          cnpg.io/cluster: gitea-db