Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
A. Stoewer 695ad44caf
Logical backup retention time (#1337)
* Add optional logical backup retention time
* Set defaults for potentially unbound variables, so that the script will work with older operator versions
* Document retention time parameter for logical backups
* Add retention time parameter to resources and charts

Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
2022-03-02 17:39:33 +01:00
.github move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
charts Logical backup retention time (#1337) 2022-03-02 17:39:33 +01:00
cmd Introduce ENABLE_JSON_LOGGING env variable (#1158) 2020-10-08 15:32:15 +02:00
docker Logical backup retention time (#1337) 2022-03-02 17:39:33 +01:00
docs Logical backup retention time (#1337) 2022-03-02 17:39:33 +01:00
e2e minor fixes to password rotation (#1796) 2022-02-25 17:46:26 +01:00
hack create CDC event stream CRD (#1570) 2022-02-28 10:09:42 +01:00
kubectl-pg move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
manifests Logical backup retention time (#1337) 2022-03-02 17:39:33 +01:00
mocks Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +01:00
pkg Logical backup retention time (#1337) 2022-03-02 17:39:33 +01:00
ui fix(ui): uses correct default URL value for WALE_S3_ENDPOINT (#1793) 2022-02-23 15:30:23 +01:00
.flake8 Implement runner for e2e tests (#548) 2019-06-05 17:07:27 +02:00
.gitignore Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +01:00
.golangci.yml add .golangci.yml (#422) 2018-11-27 12:00:15 +01:00
.zappr.yaml Min 2 zalando approvers. (#1338) 2021-01-29 11:12:08 +01:00
CODEOWNERS Update codeowners and maintainers (#1773) 2022-02-08 17:08:26 +01:00
CONTRIBUTING.md Update docs for v1.2 (#609) 2019-07-11 17:19:27 +02:00
LICENSE update year in LICENSE file to 2022 (#1734) 2022-01-06 10:55:29 +01:00
MAINTAINERS Update codeowners and maintainers (#1773) 2022-02-08 17:08:26 +01:00
Makefile move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
README.md bump operator to v1.7.1 (#1670) 2021-11-03 16:55:01 +01:00
SECURITY.md docs(general): Adding Security.md (#88) 2017-09-04 14:33:30 +02:00
build-ci.sh reflect change in github url (#496) 2019-02-25 11:26:55 +01:00
delivery.yaml move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
go.mod move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
go.sum move to go 1.17.4 and update dependencies (#1717) 2021-12-16 15:13:30 +01:00
mkdocs.yml Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
run_operator_locally.sh Add CRD validation (#599) 2019-11-28 12:02:05 +01:00

README.md

Postgres Operator

Tests E2E Tests Coverage Status

The Postgres Operator delivers an easy to run highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni. It is configured only through Postgres manifests (CRDs) to ease integration into automated CI/CD pipelines with no access to Kubernetes API directly, promoting infrastructure as code vs manual operations.

Operator features

  • Rolling updates on Postgres cluster changes, incl. quick minor version updates
  • Live volume resize without pod restarts (AWS EBS, PVC)
  • Database connection pooling with PGBouncer
  • Support fast in place major version upgrade to PG13. Supports global upgrade of all clusters.
  • Restore and cloning Postgres clusters (incl. major version upgrade)
  • Additionally logical backups to S3 bucket can be configured
  • Standby cluster from S3 WAL archive
  • Configurable for non-cloud environments
  • Basic credential and user management on K8s, eases application deployments
  • Support for custom TLS certificates
  • UI to create and edit Postgres cluster manifests
  • Works well on Amazon AWS, Google Cloud, OpenShift and locally on Kind
  • Support for AWS EBS gp2 to gp3 migration, supporting iops and throughput configuration

PostgreSQL features

The Postgres Operator has been developed at Zalando and is being used in production for over three years.

Using Spilo 12 images or lower

If you are already using the Postgres operator in older version with a Spilo 12 Docker image you need to be aware of the changes for the backup path. We introduce the major version into the backup path to smoothen the major version upgrade that is now supported.

The new operator configuration can set a compatibility flag enable_spilo_wal_path_compat to make Spilo look for wal segments in the current path but also old format paths. This comes at potential performance costs and should be disabled after a few days.

The newest Spilo image is: registry.opensource.zalan.do/acid/spilo-14:2.1-p3

The last Spilo 12 image is: registry.opensource.zalan.do/acid/spilo-12:1.6-p5

Getting started

For a quick first impression follow the instructions of this tutorial.

Supported setups of Postgres and Applications

Features

Documentation

There is a browser-friendly version of this documentation at postgres-operator.readthedocs.io

Community

There are two places to get in touch with the community:

  1. The GitHub issue tracker
  2. The #postgres-operator slack channel