--- # yaml-language-server: $schema=https://ks.hsn.dev/postgres-operator.crunchydata.com/postgrescluster_v1beta1.json apiVersion: postgres-operator.crunchydata.com/v1beta1 kind: PostgresCluster metadata: name: &name "${APP}" spec: postgresVersion: 16 dataSource: pgbackrest: stanza: db configuration: - secret: name: pgo-s3-creds global: repo1-path: "/${APP}/repo1" repo1-s3-uri-style: path repo: name: repo1 s3: bucket: "crunchy-postgres" endpoint: "s3.hsn.dev" region: "us-east-1" patroni: dynamicConfiguration: synchronous_mode: true postgresql: synchronous_commit: "on" pg_hba: - hostnossl all all 10.244.0.0/16 md5 - hostssl all all all md5 databaseInitSQL: name: immich-databse-init-sql key: init.sql instances: - name: postgres metadata: labels: app.kubernetes.io/name: pgo-${APP} replicas: 2 dataVolumeClaimSpec: storageClassName: openebs-hostpath accessModes: - ReadWriteOnce resources: requests: storage: 5Gi topologySpreadConstraints: - maxSkew: 1 topologyKey: "kubernetes.io/hostname" whenUnsatisfiable: "DoNotSchedule" labelSelector: matchLabels: postgres-operator.crunchydata.com/cluster: ${APP} postgres-operator.crunchydata.com/data: postgres users: - name: "immich" databases: - "immich" options: "SUPERUSER" password: type: AlphaNumeric backups: pgbackrest: configuration: - secret: name: pgo-s3-creds global: archive-push-queue-max: 4GiB repo1-retention-full: "14" repo1-retention-full-type: time repo1-path: "/${APP}/repo1" repo1-s3-uri-style: path manual: repoName: repo1 options: - --type=full metadata: labels: app.kubernetes.io/name: pgo-${APP}-backup repos: - name: repo1 schedules: full: "0 1 * * 0" differential: "0 1 * * 1-6" s3: bucket: "crunchy-postgres" endpoint: "s3.hsn.dev" region: "us-east-1"