Postgres Operator Versions Save

Postgres operator creates and manages PostgreSQL clusters running in Kubernetes

v1.6.2

3 years ago

This is a new minor release to the 1.6 version of the Postrges Operator. Thanks to everyone who gave feedback, raised issues or fixed bugs.

New features

  • Support major version upgrade via manifest (#1372)
  • Control global upgrades via min major version (#1372, #1386)
  • Add option to configure AllowPrivilegeEscalation for pods (true by default) (#1412, #1433)

Enhancements and bugfixes

  • Moved rolling update flag from statefulset to pods (#1341)
  • Prevent rolling updates on empty additional_pod_capabilities (#1380)
  • Create global default privileges in the appropriate prepared databases (#1421)
  • Not logging failed queries for CREATE / ALTER USER commands (#1433)
  • [UI] parameterize team settings (#1375)
  • [Pooler] improve monitoring capabilities of pgbouncer

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.6.2 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.6.2 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:v1.6.2 Default Spilo image: registry.opensource.zalan.do/acid/spilo-13:2.0-p6

Thanks to our contributors: @Jan-M, @FxKu, @erthalion, @sdudoladov, @CyberDem0n, @machine424, @neelasha-09, @caiconkhicon, @holyhope, @ssinger

v1.6.1

3 years ago

This is a new minor release to the 1.6 version of the Postrges Operator. Thanks to everyone who gave feedback, raised issues or fixed bugs.

:warning: Note, this release contains a bug which leads to rolling updates on each SYNC event. You have to either configure additional_pod_capabilities (e.g. SYS_NICE what is beneficial for Spilo) to something what is allowed in your environment or keep on using the v1.6.0.

New features

  • New options to define additional container capabilities for database pods (#1336)
  • Configurable prefix and name trimming for logical backup cron job name (#1287, #1208)
  • Enable AWS gp3 support in manifest, allowing configuration of IOPS and throughput (#1261, #1340)

Enhancements

  • Use defaulting in CRD validation (#1283)
  • Retry logic for fetching Patroni state (#1293)
  • Sync volumes on update (#1330)
  • Sync connection pooler only when configuration changed (#1274)
  • Improved docs on physical vs. logical backups (#1367)
  • Updated to trusted Docker base images (#1302)
  • Updated dependencies of operator, UI and logical backup (#1302, #1329, #1264, #1357)
  • Updated default Spilo docker image to latest 2.0-p4 release (#1367)

Fixes

  • [UI] Fix reading correct number of master pods when connection pooler is enabled (#1297)
  • PostgresTeam CRD: New additional teams and users will not be ignored on sync (#1349, #1314)
  • Fix typos and add missing options in helm charts (#1333, #1282, #1305)
  • Fix configured spilo_runasuser and spilo_runasgroup being ignored (#1361)
  • Fix compiler errors in kubectl pg plugin due to outdated Go version (#1264)
  • Fix typo in environment variable for connection pooler (#1294)
  • Fix CRD validation for nodeAffintiy (#1368)

Breaking Change

  • Removed PodSecurityPolicy privilege from RBAC and set AllowPrivilegeEscalation based on spilo_privileged setting (#1326, #1328)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.6.1 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.6.1 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:v1.6.1 Default Spilo image: registry.opensource.zalan.do/acid/spilo-13:2.0-p4

Thanks to our contributors: @Jan-M, @FxKu, @sdudoladov, @RafiaSabih, @erthalion, @CyberDem0n, @tommasopozzetti, @batazor, @mseiwald, @apeschel, @georgebarbarosie @zvier, @balibebas, @dervoeti, @sagor999, @polarclair

v1.6.0

3 years ago

We are very excited to announce a new release of the Postgres Operator in 2020! :christmas_tree: :elephant: This is the first release using the Spilo 13 image, incl. Patroni v2.0 and the newest PostgreSQL. Please, read about the breaking changes when switching to PG13. Update your CRDs to have manifest validation and field presevation up-to-date for newer Kubernetes versions (1.19+).

New features

  • In-place major version upgrade (#1160, https://github.com/zalando/spilo/pull/488)
  • NodeAffinity support (#1166, #1263)
  • pgBouncer support for replicas (#1159)
  • PostgresTeam CRD to define custom team mappings (#1165)
  • Specify alternative scheduler (#1226)
  • Inherited annotations for all major objects (#1236)
  • Delete protection for Postgres manifests via annotations (#1069)
  • Allow pod environment variables to be sourced from a secret (#946, #1177)
  • Support wal-e backups to GCS (#620)
  • Support migration to AWS gp3 volumes (#1242)
  • Enable JSON logging (#1158)

Enhancements and fixes

  • New storage_resize_mode option to resize volumes via updating PVCs (#958)
  • ExternalTrafficPolicy of services can now be configured (#1136)
  • Extend logical backup support to GCS (#1173)
  • Set search_path for default roles in PreparedDatabases (#1065)
  • Support scram-sha-256 hash for password encryption (#995)
  • Include diffs on securityContext when clusters are synced (#1007, #1255)
  • Deletion of secrets on cluster deletion (#974, #1054, #1091)
  • More flexibility when referencing an existing infrastructure roles secret (#1064, #1090)
  • Improved visibility of events on failed cluster setups (#1013)
  • Fixes and improvements on pgBouncer support (#960, #1169, #1171, #1213)
  • Fixed configuring CRD via go-client (#1020, #1223)
  • Fixed case where no NodeReadinessLabel is defined, but node is unscheduable (#1162)
  • Fixed changing order of sidecar env variables (#980)
  • Fixed syncing PreparedSchemas (#1139)
  • Fixed cloning from GCS (#1176)
  • Make setup on OpenShift easier when using helm charts (#1037)
  • Increase speed of e2e test and update kind version (#1180, #1185, #1121, #1156)
  • UI: Now display cluster status if setup failed (#1260)
  • UI: Add support for custom S3 endpoints (#1152)
  • UI: Add imagePullSecret to deployment in helm chart (#1211)
  • UI: Add Kustomization manifest (#1086)

Breaking changes

  • Manifest entries for pg_hba will overwrite the configuration and not append to it!
  • Variables in pod environment config map / secret will overwrite AWS/GCP setting in operator config (#1177)
  • Enable PGVERSION env variable for Postgres 13 image (#1172, #1160, #1254, #1260)
  • Change default volume resize strategy to update PVCs instead of AWS API call (#1257)
  • Migrate CRDs to apiVersion v1 (#746, #1212, #1228, #1248)
  • Make volume section in Postgres manifest a required field (#1016)
  • Update to Go 1.15 (#1122, #1242)
  • Switch public builds from Travis to GitHub Actions (#1215)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.6.0 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.6.0 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:v1.6.0

Many thanks to the committers @Jan-M, @FxKu, @erthalion, @RafiaSabih, @sdudoladov special thanks to @CyberDem0n for his continuous work on Patroni and Spilo, and a loud applause to our external contributors @yanchenko-igor, @sagor999 @Frittentheke, @Thunderbolt32, @spohner, @neelasha-09, @hlihhovac, @alfredw33, @arminfelder, @bbsbb, @lxgege, @preved911, @dajudge, @lalbers, @hoangelos, @programmer04, @Gottox, @mcoletti, @arichardet, @sonaysevik, @dalbani, @abh, @SanjeevChoubey, @toonsevrin, @kupson

v1.5.0

4 years ago

We are excited to announce yet another release of the Postgres Operator. It's a big one! :elephant:

New features

  • Database-side connection pooling with pgBouncer (#799, #883, #906)
  • Global sidecars supporting full container spec (#890)
  • Specify additional volumes per Postgres cluster manifest (#736, #933)
  • Support for custom TLS certificates (#798, #920)
  • Let operator create databases with pre-defined roles and privileges (#843)
  • Add database schemas and extensions via manifest (#843)
  • Additional synchronous replication modes available via Patroni (#869)
  • Optional lazy update of spilo image to save up rolling updates for node rotations (#859)
  • New option to propagate annotations from CRD to statefulset / deployment (#932)
  • New ownership annotation to run multiple operators next to each other (#802)
  • UI: Add toggle for connection pooler (#953)
  • UI: Add option for NodePort services (#928)

Enhancements and fixes

  • New Spilo image can run with a rootless user
  • Better compatibility with OpenShift (#885, #887, #921)
  • Emit K8s events to the Postgresql CR for better user feedback (#896, #952)
  • Recreate pods only if all replicas are running (#903)
  • Allow custom pod environment configmap in separate namespaces (#870)
  • Use cryptographically secure password generation (#854)
  • Changing the PostgreSQL version in the manifest is simply omitted (#860)
  • Clearer logging when exceeding MasterPodMoveTimeout (#846)
  • Make postgres-pod cluster role dynamic in helm chart (#802)
  • UI: List individual S3 wal files in backups view (#880)

Breaking changes

  • Update your postgres-operator cluster role (deployments and events added) (#799, #952)
  • Passing ClusterLabels as JSON to Spilo (#877)
  • Switching to Go 1.14 (#882)
  • Scalyr sidecar deprecated (#945, #890)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.5.0 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.5.0-dirty Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:master-58 Connection pooler image: registry.opensource.zalan.do/acid/pgbouncer:master-7

Shipped with latest Patroni v1.6.5 and Spilo 12:1.6-p3 releases

Many thanks to the committers @erthalion, @FxKu, @sdudoladov, @RafiaSabih, @Jan-M, special thanks to @CyberDem0n for his continuous work on Patroni and Spilo, and kudos to our external contributors @ReSearchITEng, @seuf, @zimbatm, @fischerman, @frittentheke, @lalbers, @Prototik, @siku4, @f2cognite, @PetrBarborka, @marcusportmann, @hengchu, @grantlanglois, @hzliangbin, Jonher937, @boopathykpm

v1.4.0

4 years ago

We are happy to announce yet another release of the Postgres Operator :elephant: We have also updated the UI and improved its setup and documentation to make local testing easier:

New features

  • New cluster manifest option to specify custom service annotations (#803)
  • New options to configure minimum CPU and memory limits (#808)
  • Added service example for exposing operator REST API (#794)
  • Logical Backup: New option logical_backup_s3_region (#813)
  • UI: New column to show monthly cloud costs per cluster (can be configured) (#796)
  • UI: Cluster name label is now configurable (cluster-name by default) (#796)
  • UI: Added helm chart for the Postgres Operator UI (special thanks to @siku4) (#795)

Enhancements and fixes

  • Bump Spilo version with latest minors of all supported PostgreSQL versions (#836)
  • Update services when their annotations have changed (#818)
  • Toggling load balancer services now only patches/updates the resource (#818)
  • Standby clusters can have one instance (recommended) even if min_instances is set higher (#797, #842)
  • Fixed unmarshalling of MasterPodMoveTimeout (#816)
  • Change error computation on JSON unmarshal accross different Go versions (#801)
  • Logical Backup: Reduce tracing of dumps and include postgresql-client-12 (#813)
  • UI: Now works with stateful sets from K8s 1.16+ (#675)
  • UI: Reordered columns and additional status step for cluster manifest (#796)
  • UI: Updated dependencies (#796, #835)
  • UI: Align build tag with operator (#844)
  • UI: Improved documentation (#796)

Breaking changes

  • The operator will now enforce minimum CPU and memory limits if specified below configured minimum (#808)
  • New default cluster role postgres-pod dedicated for database pods and Patroni (#832)
  • Switch rbac.authorization.k8s.io to v1. Update pod_service_account_role_binding_definition configuration if you are using it. (#829)
  • Use cluster-name as default for cluster name label everywhere (#782)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.4.0 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.4.0 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup

Shipped with Patroni v1.6.4 and Spilo 1.6-p2

Many thanks to the committers @FxKu, @Jan-M, @erthalion, @RafiaSabih, @sdudoladov, @hjacobs, special thanks to @CyberDem0n for his continuous work on Patroni and Spilo, and applause to our contributors @jonathanbeber, @siku4, @vitobotta, @f2cognite

v1.3.1

4 years ago

This is new minor release which simply bumps the version, as the v1.3.0 did not reflect the latest state from master. Copyright and licence are updated to 2020.

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.3.1 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup:master-57 The Postgres Operator UI image remains unchanged.

v1.3.0

4 years ago

Ho Ho Ho. We are happy to announce a new release of the Postgres Operator :christmas_tree: :elephant:

New features

  • Added validation and additionalPrinterColumns for CRDs (#599, #653)
  • IPv6 support for Patroni URLs in database pods (#671)
  • New option to define custom annotations for database pods (helps when running Istio) (#657)
  • Additional options for logical backups to better support S3-compatible endpoints (#628)
  • Creation of InitContainers and Sidecars can be disabled (#478)

Enhancements and fixes

  • Move to StatefulSet api version apps/v1 (#675)
  • Avoid orphaned objects when deleting cluster during creation (#654)
  • Avoid errors when changing the service type (#716)
  • Avoid stale cache when checking RBAC in namespaces (#685)
  • Support any cluster name label in logical backup pod/dump script (#725)
  • Improve documentation (#762)
  • Compatibility with Helm v3 (#738)
  • Switched dependency management from glide to go modules (#544)

Breaking changes

  • Enforce minimum CPU and memory limits (#731)
  • Remove clusterrole privilege from RBAC manifest (#765)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.3.0-dirty Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup The Postgres Operator UI image remains unchanged.

Many thanks to the committers @FxKu, @sdudoladov, @erthalion, @RafiaSabih, @Jan-M special thanks to @CyberDem0n for his continuous work on Patroni and Spilo. and our contributors @optix2000, @ermajn, @runyontr, @zimbatm, @hasegeli, @brunsgaard, @rektide, @deitmerit, @fwagner-smf, @IlyaSemenov, @bchrobot, @OlleLarsson @knan-nrk, @anikin-aa, @haf-afa, @phobot, @AmirAliSobhGol, @yujunz, @EricLemieux, @CarlQLange

v1.2.0

4 years ago

We are happy to annouce a new release of the Postgres Operator:

New features:

  • New browser-based UI to manage Postgres clusters (special thanks to @mgomezch) (#613)
  • Operator can create cron jobs for logical backups (#442)
  • Initialize standby cluster from WAL archive in S3 bucket (#562)
  • Provide manifests for user-facing clusterroles (#585)
  • New end-2-end test suite using kind (#548)
  • New deployment options: Helm chart (#434), Kustomization (#608) and OLM

Enhancements and fixes:

  • Added non-privileged option for Spilo (#525)
  • Run operator pod as non-root (#582)
  • New SpiloFSGroup parameter to allow non-root Spilo (#531)
  • Support Pod Anti Affinity (#489)
  • Support podManagementPolicy in Spilo StatefulSets (#515)
  • Fix updating initContainers (#518)
  • Cloning cluster from an arbitraty bucket (#487)
  • Additional S3 settings to support cloning in non AWS environments (#497)
  • Additional secret mount to support credentials provisioning in non-cloud K8s environments (#535)
  • Support SubPath for Postgres container volumes (#452)
  • Config option to relax PodDisruptionBudget (#384, #583)
  • Allow non-default cluster domains (#561)
  • Align ConfigMap and CRD-based configuration (#595)
  • Extended and improved documentation (#609)

Breaking changes:

  • CRD's /status subresource is now a struct instead of string field (#534)
  • camelCasing manifest parameters initContainers and podPriorityClassName (#602)
  • Changed repo org from github.com/zalando-incubator to github.com/zalando (#495, #496)

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.2.0 UI Docker image: registry.opensource.zalan.do/acid/postgres-operator-ui:v1.2.0 Sample logical backup image: registry.opensource.zalan.do/acid/logical-backup

Many thanks to the committers @sdudoladov, @FxKu, @erthalion, @RafiaSabih, @Jan-M and our contributors @mgomezch, @knan-nrk, @stang, @redbaron, @aaroniscode, @TeutoNet, @yujunz, @kimxogus, @Shinzu, @kupson, @coderanger, @jakub-roman, @VineethReddy02, @hjacobs

v1.1.0

5 years ago

Newest release of the postgres operator, includes among other things:

  • support for setting shmem for better parallel query support
  • fix issue surrounding delete cluster
  • fix reporting .status
  • support init containers
  • improved logging in rolling upgrade
  • added superuser team support (additional team to be created as superuser)
  • support setting additional replication slots via Patroni

Thanks to everyone involved for reporting problems and contributing to the operator!

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.1.0

v1.0.0

5 years ago

Initial release after a year in development.

The operator manages creation and deletion of PostgreSQL clusters based on the Spilo docker image and updates the running clusters based on the changes in the Postgres cluster manifest. It supports Kubernetes 1.5+, and Kubernetes 1.9 is recommended to take advantage of all features (namely, pod priorities).

New versions will follow the semantic version, with the major part changing because of incompatible changes or if we drop support for older Kubernetes cluster versions.

Docker image: registry.opensource.zalan.do/acid/postgres-operator:v1.0.0