--- # pgbouncer in front of the primary. Gitea opens a connection per request and # benefits from pooling under multiple app replicas. Session mode keeps Gitea's # occasional session-scoped state (advisory locks, LISTEN/NOTIFY) working. apiVersion: postgresql.cnpg.io/v1 kind: Pooler metadata: name: gitea-postgres-pooler-rw namespace: gitea spec: cluster: name: gitea-postgres instances: 2 pgbouncer: parameters: default_pool_size: "50" max_client_conn: "200" paused: false poolMode: session template: metadata: labels: app: pooler-rw spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - pooler-rw topologyKey: kubernetes.io/hostname containers: [] type: rw