controller 0.59.0

Tembo Operator for Postgres
Documentation
apiVersion: coredb.io/v1alpha1
kind: CoreDB
metadata:
  name: sample-message-queue
spec:
  image: "quay.io/tembo/standard-cnpg:15-389a437"
  stop: false
  stack:
    name: MessageQueue
    postgres_config:
      - name: shared_preload_libraries
        value: pg_stat_statements,pg_partman_bgw
      - name: pg_partman_bgw.dbname
        value: postgres
      - name: pg_partman_bgw.interval
        value: "60"
      - name: pg_partman_bgw.role
        value: postgres
      - name: random_page_cost
        value: "1.1"
      - name: autovacuum_naptime
        value: "20s"
      - name: autovacuum_vacuum_cost_limit
        value: "10000"
      - name: autovacuum_vacuum_scale_factor
        value: "0.05"
      - name: autovacuum_vacuum_insert_scale_factor
        value: "0.05"
      - name: autovacuum_analyze_scale_factor
        value: "0.05"
      - name: track_io_timing
        value: "on"
      - name: checkpoint_timeout
        value: "10min"
      - name: pg_stat_statements.track
        value: all
  trunk_installs:
    - name: pgmq
      version: 1.1.0
    - name: pg_partman
      version: 4.7.3
  extensions:
    - name: pgmq
      locations:
        - database: postgres
          enabled: true
          version: 0.32.1
    - name: pg_partman
      locations:
        - database: postgres
          enabled: true
          version: 4.7.3
  metrics:
    enabled: true
    image: quay.io/prometheuscommunity/postgres-exporter:v0.12.0
    queries:
      pgmq:
        query: select queue_name, queue_length, oldest_msg_age_sec, newest_msg_age_sec, total_messages from pgmq.metrics_all()
        master: true
        metrics:
          - queue_name:
              description: Name of the queue
              usage: LABEL
          - queue_length:
              description: Number of messages in the queue
              usage: GAUGE
          - oldest_msg_age_sec:
              description: Age of the oldest message in the queue, in seconds.
              usage: GAUGE
          - newest_msg_age_sec:
              description: Age of the newest message in the queue, in seconds.
              usage: GAUGE
          - total_messages:
              description: Total number of messages that have passed into the queue.
              usage: GAUGE
        target_databases:
          - "postgres"
  runtime_config:
    - name: shared_buffers
      value: "256MB"
    - name: max_connections
      value: "431"
    - name: work_mem
      value: "5MB"
    - name: bgwriter_delay
      value: "200ms"
    - name: effective_cache_size
      value: "267MB"
    - name: maintenance_work_mem
      value: "204MB"
    - name: max_wal_size
      value: "2GB"
  appServices:
    - name: postgrest
      image: postgrest/postgrest:latest
      routing:
        - port: 3000
          ingressPath: /pgmq/v1
          middlewares:
            - map-pgmq
            - strip-prefix
            - headers
      middlewares:
        - customRequestHeaders:
            name: headers
            config:
              Authorization: ""
              Content-Profile: pgmq
              Accept-Profile: pgmq
        - stripPrefix:
            name: strip-prefix
            config:
              - /rest/v1
        - replacePathRegex:
            name: map-pgmq
            config:
              regex: \/pgmq\/v1\/?
              replacement: /rpc/
      env:
        - name: PGRST_DB_URI
          valueFromPlatform: ReadWriteConnection
        - name: PGRST_DB_SCHEMA
          value: "public, pgmq"
        - name: PGRST_DB_ANON_ROLE
          value: postgres
        - name: PGRST_LOG_LEVEL
          value: info