apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: postgresql
  namespace: drawings
spec:
  interval: 5m
  timeout: 2h
  chart:
    spec:
      chart: postgresql-contour
      version: "13.0.15"
      sourceRef:
        kind: HelmRepository
        name: yc-oci-charts
        namespace: flux-system

  install:
    timeout: 2h
    remediation:
      retries: 3

  upgrade:
    timeout: 2h
    remediation:
      retries: 3

  values:
    global:
      security:
        allowInsecureImages: true
      defaultStorageClass: local-path
      postgresql:
        auth:
          username: ""
          database: ""
          secretKeys:
            userPasswordKey: "postgres-password"
    auth:
      username: ""
      database: ""
      secretKeys:
        userPasswordKey: "postgres-password"
    image:
      registry: cr.yandex/crp3ccidau046kdj8g9q
      repository: contour/postgresql
      tag: 13.0.15
      pullPolicy: Always
    metrics:
      enabled: false
      prometheusRule:
        enabled: false
    primary:
      containerSecurityContext:
        readOnlyRootFilesystem: false
      persistence:
        storageClass: local-path
        size: 20Gi
      customLivenessProbe:
        exec:
          command:
            - /bin/sh
            - -c
            - exec pg_isready -U "postgres" -d postgres -h 127.0.0.1 -p 5432
        initialDelaySeconds: 30
        periodSeconds: 10
        timeoutSeconds: 5
        successThreshold: 1
        failureThreshold: 6
      customReadinessProbe:
        exec:
          command:
            - /bin/sh
            - -c
            - exec pg_isready -U "postgres" -d postgres -h 127.0.0.1 -p 5432
        initialDelaySeconds: 5
        periodSeconds: 10
        timeoutSeconds: 5
        successThreshold: 1
        failureThreshold: 6
      customStartupProbe:
        exec:
          command:
            - /bin/sh
            - -c
            - exec pg_isready -U "postgres" -d postgres -h 127.0.0.1 -p 5432
        initialDelaySeconds: 30
        periodSeconds: 10
        timeoutSeconds: 5
        successThreshold: 1
        failureThreshold: 6
      resources:
        requests:
          cpu: 50m
          memory: 128Mi
      nodeSelector:
        dedicated: db
      tolerations:
        - key: dedicated
          operator: Equal
          value: db
          effect: NoSchedule
    contour:
      enabled: true
      adminUser: "postgres"
      sharedPreloadLibraries: ""
      vault:
        enabled: true
        role: postgresql
        authPath: auth/kubernetes
        secretPath: secrets/data/postgresql/admin
        secretKey: postgres-password
        usersSecretPath: secrets/data/postgresql/users
      databases:
        - name: drawings_db
          user: drawings
          passwordKey: drawings
          extensions:
            - pg_stat_statements
            - uuid-ossp
          restoreFromDump: true
          dumpKey: "sanitized_dumps_multi/drawings/288/drawings_company288_20260626T202844Z.tar.gz"
      s3-proxy:
        endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
