Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
Jan Mussler a63ad49ef8
Initial commit for new 1.6 release with Postgres 13 support. (#1257)
* Initial commit for new 1.6 release with Postgres 13 support.
* Updating maintainers, Go version, Codeowners.
* Use lazy upgrade image that contains pg13.
* fix typo for ownerReference
* fix clusterrole in helm chart
* reflect GCP logical backup in validation
* improve PostgresTeam docs
* change defaults for enable_pgversion_env_var and storage_resize_mode
* explain manual part of in-place upgrade
* remove gsoc docs

Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
2020-12-17 15:00:29 +01:00
.github Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
charts Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
cmd Introduce ENABLE_JSON_LOGGING env variable (#1158) 2020-10-08 15:32:15 +02:00
docker Add ability to upload logical backup to gcs (#1173) 2020-12-16 10:41:08 +01:00
docs Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
e2e Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
hack hack: update shebang (#755) 2019-12-10 14:54:12 +01:00
kubectl-pg diff SecurityContext of containers (#1255) 2020-12-15 10:06:53 +01:00
manifests Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +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 Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
ui Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +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 Restore .zappr.yaml (#405) 2018-11-07 13:06:53 +01:00
CODEOWNERS Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
CONTRIBUTING.md Update docs for v1.2 (#609) 2019-07-11 17:19:27 +02:00
LICENSE update copyright in generated code (#779) 2020-01-02 17:34:49 +01:00
MAINTAINERS Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
Makefile Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +01:00
README.md Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +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 Initial commit for new 1.6 release with Postgres 13 support. (#1257) 2020-12-17 15:00:29 +01:00
go.mod Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +01:00
go.sum Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +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 pooler with PGBouncer
  • 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
  • UI to create and edit Postgres cluster manifests
  • Works well on Amazon AWS, Google Cloud, OpenShift and locally on Kind
  • Support for custom TLS certificates
  • Base support for AWS EBS gp3 migration (iops, throughput pending)

PostgreSQL features

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

Notes on Postgres 13 support

If you are new to the operator, you can skip this and just start using the Postgres operator as is, Postgres 13 is ready to go.

The Postgres operator supports Postgres 13 with the new Spilo Image that includes also the recent Patroni version to support PG13 settings. More work on optimizing restarts and rolling upgrades is pending.

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 smooth the major version upgrade that is now supported manually.

The new operator configuration, sets a compatilibty flag enable_spilo_wal_path_compat to make Spilo look in current path but also old format paths for wal segments. This comes at potential perf. costs, and should be disabled after a few days.

The new Spilo 13 image is: registry.opensource.zalan.do/acid/spilo-13:2.0-p1

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