github zalando/postgres-operator v1.9.0
Comely Mantella

latest releases: v1.13.0, v1.12.2, v1.12.1...
20 months ago

We are excited to announce a new release of the Postgres Operator. Thanks to everyone who contributed with PRs, feedback, raising issues or providing ideas. Expect another minor release soon with Patroni 3.0 support.

New features

  • Spilo image supports Postgres 15 and can run on arm (#2139, #2140)
  • PostgreSQL socket can be shared with the sidecar containers (#962, #2155)
  • Annotations for master and replica service specifically (#2161)
  • Annotation to bypass globally configured instance limits (#1943)
  • New options to configure max cpu and memory requests (#1959)
  • Configurable resources for logical backup pod template (#710)
  • Support for Patroni's upcoming failsafe mode (#2076)
  • Logical backup support for Azure (#2052)
  • [UI] Adding support for specifying storageClass (#1835)
  • [UI] Add custom annotations to postgres-operator-ui helm chart (#1748)

Enhancements

  • TeamID as part of cluster name not mandatory anymore (#2001, #2011, #2015, #2171)
  • PodAntiAffinity can now use preferredDuringSchedulingIgnoredDuringExecution (#2048, #2156)
  • Password rotation users will receive the rolconfig of the original application user (#2183)
  • Add support for custom TLS certificates in Connection Pooler (#2146, #2165)
  • Use SyncStandby as switchover candidate on node drain events (#1984)
  • Operator will remove replication slots when they are removed from the manifest (#2089)
  • Create publications and slots only after Postgres restart with wal_level: logical (#2034, #2109, #2187)
  • Improve sync of publications and logical replication slots (#2085, #2091, #2187, #2189)
  • Shorten name of stream CRDs to avoid too labels with more than 63 charaters (#2137, #2149, #2152)
  • Add operator deployment readiness probe (#1874)
  • Bump policy API for PDB and batch API for CronJob to v1 to support K8s 1.25+ (#2008, #2066)
  • Bump operator base image to Alpine 3.15 (#2017)
  • Allow to use placeholders in values.yaml of helm chart (#1986, #2115, #2166)
  • Update dependencies and bump to golang 1.18 (#1854, #2158, #2164)
  • [UI] using relative paths (#1835)
  • [UI] allow enabling pooler load balancers + minor re-design (#1977)
  • [UI] include load balancer in the monthly cost calculation (#1977)
  • [UI] updated Python and JS libraries (#2191)

Fixes

  • Password rotation was updating the wrong database roles (#2043)
  • Working password rotation of standy and pooler users (#1953, #2009, #2010, #2015, #2029)
  • Do not update secrets on password rotation for standby clusters (#2175)
  • Changes on Spec.Env are now propagated to the stateful set (#2045)
  • Pooler LoadBalancer services now receive DNS entries when other LBs are disabled (#2188)
  • Abort cluster sync when stateful set env variables cannot be fetched when API server is down (#2064)
  • mixed storage resize mode was missing in CRD schema (#1947)
  • Use currect return code from major version upgrade script (#2056, #2075)
  • Prevent operator crash when disabling connection pooler (#2110, #2123)
  • Fix errors when importing acid.zalan.do API in Kubebuilder (#2148)
  • [UI] show configured default memory and CPU requests, not internal (#2178)
  • [UI] only call pooler endpoint when enabled (#1977)

Breaking changes

  • Dropped support for 9.5 and 9.6 (#2140)
  • Dropping helm charts packages for v1.6.x (#2177)
  • With PDB on policy/v1 and CronJob on batch/v1 dropped support for K8s 1.20 and lower (#2008, #2066)
  • Option to enable readiness probe for database pods (disabled by default, previously enabled by default!) (#2004)
    • We recommend enable_readiness_probe: true with pod_management_policy: parallel
  • Local environment variables can now override global variables generated by clone / standby section (was other way around before) (#2159)
  • [master|replica]_dns_name_format now defaults to new template with namespace instead of team: "{cluster}.{namespace}.{hostedzone}" (#2011)
    • For backwards compatibility to not break connections we append a second entry in the DNS annotation following the old format
  • Old DNS name format must be configured with [master|replica]_legacy_dns_name_format when differing from the legacy "{cluster}.{team}.{hostedzone}" default (#2171)
  • Pooler LoadBalancers now use a -pooler suffix in their DNS entries like "{cluster}-pooler.{team}.{hostedzone}" (#2188)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.9.0
UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.9.0
Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:v1.9.0
Default Spilo image: ghcr.io/zalando/spilo-15:2.1-p9

Thanks to our contributors: @FxKu, @idanovinda, @jopadi, @hughcapet, @sdudoladov, @Jan-M
@dmvolod, @owenthereal, @francoispqt, @frittentheke, @orangetcy, @stgrace, @rocket357
@JBWatenbergScality, @machine424, @jeremie-seguin, @farodin91, @godzilla-s, @flyingcamilo,
@tamcore, @yoshihikoueno, @alfsch, @alexey-gavrilov-flant, @Pluggi, @thedatabaseme
@soluri, @Jaxwood, @dogaakcinar, @yajo, @stephan2012, @adriannieto-attechnest

Don't miss a new postgres-operator release

NewReleases is sending notifications on new releases.