v1.18.7
Release date: Oct 18, 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 ismax(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)
Security:
- Add a default
seccompProfile
to the operator deployment (#2926)
Enhancements:
- Introduce the
k8s.enterprisedb.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
andjdbc-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
k8s.enterprisedb.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) -
Reconcile PodMonitor
labels
andannotations
(#2583) -
Fix backup failure due to missing RBAC
resourceNames
on theRole
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 ofalertName
in the provided Grafana dashboard - Enforce
standard_conforming_strings
in metric collection (#2888)
- Add TCP port label to default
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 k8s.enterprisedb.io group (#2851)
- Add the
k8s.enterprisedb.io/instanceRole
label while deprecating the existingrole
label (#2915)
Technical enhancements:
- Replace
k8s-api-docgen
withgen-crd-api-reference-docs
to automatically build the API reference documentation (#2606)