---
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
  name: default-cluster
  namespace: postgres
spec:
  postgresVersion: 15
  users:
    - name: postgres
    - name: coder
      databases:
        - coder
    - name: ente
      databases:
        - ente
    - name: fider
      databases:
        - fider
    - name: forgejo
      databases:
        - forgejo
    - name: hedgedoc
      databases:
        - hedgedoc
    - name: linkwarden
      databases:
        - linkwarden
    - name: nextcloud
      databases:
        - nextcloud
    - name: noco
      databases:
        - noco
    - name: umami
      databases:
        - umami
    - name: vaultwarden
      databases:
        - vaultwarden
    - name: vikunja
      databases:
        - vikunja
    - name: zipline
      databases:
        - zipline
  instances:
    - name: instance1
      replicas: 2
      resources:
        requests:
          cpu: 500m
          memory: 800Mi
        limits:
          cpu: 500m
          memory: 800Mi
      dataVolumeClaimSpec:
        storageClassName: hcloud-volumes
        accessModes:
        - "ReadWriteOnce"
        resources:
          requests:
            storage: 10Gi
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            podAffinityTerm:
              topologyKey: kubernetes.io/hostname
              labelSelector:
                matchLabels:
                  postgres-operator.crunchydata.com/cluster: default-cluster
                  postgres-operator.crunchydata.com/instance-set: instance1

  backups:
    pgbackrest:
      manual:
        repoName: repo1
        options:
          - --type=full
      configuration:
      - secret:
          name: pgo-s3-creds
      global:
        repo1-retention-full: "14"
        repo1-retention-full-type: time
        repo1-retention-diff: "6"
        repo1-path: /pgbackrest/default-cluster/repo1
        repo1-s3-uri-style: path
      repos:
      - name: repo1
        schedules:
          full: "0 1 * * 0"
          differential: "0 1 * * 1-6"
        s3:
          bucket: backup
          endpoint: s3.icb4dc0.de
          region: hel1