Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
Dmitry Dolgov 9dfa433363
Connection pooler (#799)
Connection pooler support

Add support for a connection pooler. The idea is to make it generic enough to
be able to switch between different implementations (e.g. pgbouncer or
odyssey). Operator needs to create a deployment with pooler and a service for
it to access.

For connection pool to work properly, a database needs to be prepared by
operator, namely a separate user have to be created with an access to an
installed lookup function (to fetch credential for other users).

This setups is supposed to be used only by robot/application users. Usually a
connection pool implementation is more CPU bounded, so it makes sense to create
several pods for connection pool with more emphasize on cpu resources. At the
moment there are no special affinity or tolerations assigned to bring those
pods closer to the database. For availability purposes minimal number of
connection pool pods is 2, ideally they have to be distributed between
different nodes/AZ, but it's not enforced in the operator itself. Available
configuration supposed to be ergonomic and in the normal case require minimum
changes to a manifest to enable connection pool. To have more control over the
configuration and functionality on the pool side one can customize the
corresponding docker image.

Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
2020-03-25 12:57:26 +01:00
charts Connection pooler (#799) 2020-03-25 12:57:26 +01:00
cmd define ownership between operator and clusters via annotation (#802) 2020-03-17 16:34:31 +01:00
docker Connection pooler (#799) 2020-03-25 12:57:26 +01:00
docs Connection pooler (#799) 2020-03-25 12:57:26 +01:00
e2e Connection pooler (#799) 2020-03-25 12:57:26 +01:00
hack hack: update shebang (#755) 2019-12-10 14:54:12 +01:00
kubectl-pg omit PgVersion diff on sync (#860) 2020-03-13 11:48:19 +01:00
manifests Connection pooler (#799) 2020-03-25 12:57:26 +01:00
pkg Connection pooler (#799) 2020-03-25 12:57:26 +01:00
ui fix minor issues in docs and manifests (#866) 2020-03-18 15:02:13 +01:00
.flake8 Implement runner for e2e tests (#548) 2019-06-05 17:07:27 +02:00
.gitignore install kind as GO module (#742) 2019-11-28 17:39:25 +01:00
.golangci.yml add .golangci.yml (#422) 2018-11-27 12:00:15 +01:00
.travis.yml Replace glide with Go modules (#544) 2019-10-02 16:18:55 +02:00
.zappr.yaml Restore .zappr.yaml (#405) 2018-11-07 13:06:53 +01:00
CODEOWNERS Add Rafia to code owners (#588) 2019-06-14 14:56:40 +02: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 [WIP] Draft codeowners, update maintainers (#358) 2018-08-06 08:59:00 +02:00
Makefile go.mod: fix dependencies (#754) 2019-12-12 17:27:40 +01:00
README.md make run.sh executable from within e2e (#619) 2019-07-24 15:07:32 +02: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 align UI pipeline with operator (#844) 2020-02-24 17:48:14 +01:00
go.mod add support for custom TLS certificates (#798) 2020-03-13 11:44:38 +01:00
go.sum add support for custom TLS certificates (#798) 2020-03-13 11:44:38 +01:00
mkdocs.yml use h1 tags to not render titles in sidebar (#626) 2019-07-19 12:50:39 +02:00
run_operator_locally.sh Add CRD validation (#599) 2019-11-28 12:02:05 +01:00

README.md

Postgres Operator

Build Status Coverage Status Go Report Card GoDoc golangci

The Postgres Operator enables highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni. It is configured only through manifests to ease integration into automated CI/CD pipelines with no access to Kubernetes directly.

Operator features

  • Rolling updates on Postgres cluster changes
  • Volume resize without Pod restarts
  • Cloning Postgres clusters
  • Logical Backups to S3 Bucket
  • Standby cluster from S3 WAL archive
  • Configurable for non-cloud environments
  • UI to create and edit Postgres cluster manifests

PostgreSQL features

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

Getting started

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

Documentation

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

Google Summer of Code

The Postgres Operator made it to the Google Summer of Code 2019! Check our ideas and start discussions in the issue tracker.

Community

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

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