This is a new major release. Please, read the instructions how to migrate to v2.0. Thanks to everyone who contributed with PRs, feedback, raising issues or providing ideas.
New features
- Support for Postgres 18 (#3035)
- Support for NodePort service type (#2968, #994)
- TopologySpreadConstraint support (#2530)
- ARM-compatible pooler image is now part of the repo (#3077)
- Configurable LivenessProbe (#3089, #1972)
- Added support for IRSA for running the operator on EKS (#3128, #3135)
- Maintenance windows can be globally configured and also disabled (#3038, #3040, #3074)
- Support for EnvFrom section in cluster manifest (#3118)
- New annotation to ignore globally configured resource thresholds (#3030)
- New primary slot name option in standby section (#3033)
- New wasm build target (#3068)
- [logical-backup] Configurable job history limits and TTL for logical backups (#3091, #3111)
Enhancements
- CRDs manifests are now generated from Go structs (#3004, #3007, #3031, #3102, #3117)
- Modernized code generation and updated Makefile (#3003, #3130)
- Options
standby_hostcan be combined withs3_wal_pathto help with cross infra migrations (#3033) - Preserve sync quorum in primary PDB without master selector (#3119)
- Pooler users are sourced from a new secret (#3077, #3093)
- Avoid rotating pods for PGVERSION change outside of maintenance window (#3065)
- Extend validation pattern of allowedSourceRanges to allow for IPv6 ranges (#2985, #3082)
- Use UpdateStatus instead of patch to make the status sub resource easier to extend in the future (#3005)
- Remove hardcoded Postgres version map from go code for more flexible use with newer releases (#3043)
- Switch to client-go informers for pod and node events (#3080)
- Add unit tests for validate() and NewFromMap() functions (#3068)
- Pass pod security context,
cluster_labelsand annotations also passed to logical backup CronJob and Jobs (#2117 ,#3085) - Update to Go 1.26.4 and bump dependencies, lib/pq, aws-sdk-go-v2 etc. (#3108)
- Use docker buildx commands in Makefiles (#3137)
- Update versions of GitHub action runners (#3108, #3134)
- [UI] honor AWS_ENDPOINT in read_basebackups S3 list/get (#3079)
- [helm] Extra CLI args such as kubeqps or kubeburst can passed via values of helm chart (#2892)
- [helm] Removed cpu limit config (#2893)
- [helm] Publish helm charts to ghcr.io (#2853)
Bugfixes
- Fix rolling update deadlock when single pods are stuck in non-running state (#3051)
- Use maxUnavailable for the critical-op PDB to stop idle alert noise (#3141)
- Avoid switchover scheduling when default maintenance windows is nil (#3058)
- Fix deletion timestamp setting when finalizers are used (#3015)
- Do not update secrets of standby clusters (#3044, #3088)
- Set infrastructure roles also if one fails (#3045)
- Detect platform in Dockerfile to avoid build issues on ARM (#3108)
- Removed e2e test image fallback and make sure to always test against the PR build (#3037)
- [logical-backup] Wait for PG connectivity before running backup (#3069)
- [UI] Fix JSON value of OPERATOR_UI_CONFIG (#3070)
Breaking changes
- Dropped support for Postgres 13 and helm chart 1.10.1 (#3035, #3134)
kubernetes_use_configmapsis now true by default because endpoints will disappear (#3102, #3116)- Password encryptions defaults to scram-sha-256 (forces a rolling update) (#2962)
- Do not set
aws-load-balancer-connection-idle-timeoutby default (#3054) - Dropped GP2->GP3 volume migration (options
enable_ebs_gp3_migrationandenable_ebs_gp3_migration_max_size) (#3142) - Dropped deprecated manifest fields
useLoadBalancer,replicaLoadBalancerandpod_priority_class_nameandinit_containers(#3106) - Dropped kubectl-pg plugin (#3107)
- Removed all references to registry.opensource.zalan.do (#3092)
Postgres Operator: ghcr.io/zalando/postgres-operator:v2.0.0
Pooler: UI: ghcr.io/zalando/postgres-operator/pgbouncer:v2.0.0
UI: ghcr.io/zalando/postgres-operator-ui:v2.0.0
Logical Backup: ghcr.io/zalando/postgres-operator/logical-backup:v2.0.0
Default Spilo image: ghcr.io/zalando/spilo-17:4.1-p2
Thanks to our contributors: @FxKu, @mikkeloscar, @idanovinda, @hughcapet, @tcondeixa, @jopadi,
@raphaeltorquat0, @lucasl0st, @laiminhtrung1997, @thoro, @annielzy, @unkhz @jorsol, @pierreozoux,
@kadaffy, @k0da, @chobostar, @a1994sc, @aslafy-z, @zak905, @addreas, @SAY-5, @alimelgohary,
@dandeandean, @exciler, @bramhanandlingala, @yajo, @davidspek, @sdudoladov, @nctram