Skip to content

v1.20.3

Compare
Choose a tag to compare
@github-actions github-actions released this 11 Oct 20:49
· 972 commits to main since this release
22bbe06

Release date: Oct 11, 2023

Important Changes:

  • Change the default value of stopDelay to 1800 seconds instead of 30 seconds (#2848)
  • Introduce a new parameter, called smartShutdownTimeout, to control the window of time reserved for the smart shutdown of Postgres to complete; the general formula to compute the overall timeout to stop Postgres is max(stopDelay - smartShutdownTimeout, 30) (#2848)
  • Change the default value of startDelay to 3600, instead of 30 seconds (#2847)
  • Replace the livenessProbe initial delay with a more proper Kubernetes startup probe to deal with the start of a Postgres server (#2847)
  • Change the default value of switchoverDelay to 3600 seconds instead of 40000000 seconds (#2846)
  • Stop supporting the postgresql label - replaced by cnpg.io/cluster in 1.18 (#2744)

Security:

  • Add a default seccompProfile to the operator deployment (#2926)

Enhancements:

  • Introduce the cnpg.io/coredumpFilter annotation to control the content of a core dump generated in the unlikely event of a PostgreSQL crash, by default set to exclude shared memory segments from the dump (#2733)
  • Allow to configure ephemeral-storage limits for the shared memory and temporary data ephemeral volumes (#2830)
  • Validate resource limits and requests through the webhook (#2663)
  • Ensure that PostgreSQL's shared_buffers are coherent with the pods' allocated memory resources (#2840)
  • Add uri and jdbc-uri fields in the credential secrets to facilitate developers when connecting their applications to the database (#2186)
  • Add a new phase Waiting for the instances to become active for finer control of a cluster's state waiting for the replicas to be ready (#2612)
  • Improve detection of Pod rollout conditions through the podSpec annotation (#2243)
  • Add primary timestamp and uptime to the kubectl plugin’s status command (#2953)

Fixes:

  • Ensure that the primary instance is always recreated first by prioritizing ready PVCs with a primary role (#2544)

  • Honor the cnpg.io/skipEmptyWalArchiveCheck annotation during recovery to bypass the check for an empty WAL archive (#2731)

  • Prevent a cluster from being stuck when the PostgreSQL server is down but the pod is up on the primary (#2966)

  • Avoid treating the designated primary in a replica cluster as a regular HA replica when replication slots are enabled (#2960)

  • Reconcile services every time the selectors change or when labels/annotations need to be changed (#2918)

  • Defaults to app both the owner and database during recovery bootstrap (#2957)

  • Avoid write-read concurrency on cached cluster (#2884)

  • Remove empty items, make them unique and sort in the ResourceName sections of the generated roles (#2875)

  • Ensure that the ContinuousArchiving condition is properly set to 'failed' in case of errors (#2625)

  • Make the Backup resource reconciliation cycle more resilient on interruptions by stopping only if the backup is completed or failed (#2591)

  • Reconcile PodMonitor labels and annotations (#2583)

  • Fix backup failure due to missing RBAC resourceNames on the Role object (#2956)

  • Observability:

    • Add TCP port label to default pg_stat_replication metric (#2961)
    • Fix the pg_wal_stat default metric for Prometheus (#2569)
    • Improve the pg_replication default metric for Prometheus (#2744 and #2750)
    • Use alertInstanceLabelFilter instead of alertName in the provided Grafana dashboard
    • Enforce standard_conforming_strings in metric collection (#2888)

Changes:

  • Set the default operand image to PostgreSQL 16.0
  • Fencing now uses PostgreSQL’s fast shutdown instead of smart shutdown to halt an instance (#3051)
  • Rename webhooks from kb.io to cnpg.io group (#2851)
  • Replace the cnpg snapshot command with cnpg backup -m volumeSnapshot for the kubectl plugin
  • Let the cnpg hibernate plugin command use the ClusterManifestAnnotationName and PgControldataAnnotationName annotations on PVCs (#2657)
  • Add the cnpg.io/instanceRole label while deprecating the existing role label (#2915)

Technical enhancements:

  • Replace k8s-api-docgen with gen-crd-api-reference-docs to automatically build the API reference documentation (#2606)