Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
Jociele Padilha e4e686588e
Fix/logical backup job cleanup (#3111)
* feat(logical-backup): add configurable job history limits and TTL

Adds three new configuration options for logical backup cronjobs:
- logical_backup_successful_jobs_history_limit (default: 3)
- logical_backup_failed_jobs_history_limit (default: 3)
- logical_backup_ttl_seconds_after_finished (default: 86400)

These options control how many completed/failed backup jobs are
retained by Kubernetes and when finished jobs are automatically
deleted. This prevents accumulation of old backup jobs and pods
in namespaces with many PostgreSQL clusters.

Also updates the CronJob comparison logic to detect changes in
these new fields and trigger reconciliation when needed.

Closes zalando/postgres-operator#1092

* add added the 3 new fieldson crd

* updated gen api

---------

Co-authored-by: Jairo Llopis <jairo@moduon.team>
Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
2026-06-19 12:12:58 +02:00
.github feat: add publish of helm chart to ghcr.io (#2853) 2026-06-11 09:55:31 +02:00
charts Fix/logical backup job cleanup (#3111) 2026-06-19 12:12:58 +02:00
cmd Add abitility to set QPS and Burst limits for api client (#2667) 2024-12-23 08:53:27 +01:00
docker Separate pipeline for internal/external build and support multi arch (#2991) 2025-12-10 16:45:42 +01:00
docs Fix/logical backup job cleanup (#3111) 2026-06-19 12:12:58 +02:00
e2e Add cluster_labels and annotations to logical backup CronJob and Jobs (#3085) 2026-06-10 18:18:54 +02:00
hack Wasm target updates (#3068) 2026-04-17 08:59:08 +02:00
logical-backup Remove references to registry.opensource.zalan.do (#3092) 2026-05-08 09:16:10 +02:00
manifests Fix/logical backup job cleanup (#3111) 2026-06-19 12:12:58 +02:00
mocks Support EBS gp2 to gp3 migration on sync for below 1tb volumes (#1242) 2020-12-11 15:52:32 +01:00
pkg Fix/logical backup job cleanup (#3111) 2026-06-19 12:12:58 +02:00
pooler build multi-arch pooler image (#3077) 2026-04-28 13:34:36 +02:00
ui ui: honor AWS_ENDPOINT in read_basebackups S3 list/get (#3079) 2026-04-23 17:47:51 +02:00
.flake8 Implement runner for e2e tests (#548) 2019-06-05 17:07:27 +02:00
.gitignore drop kubectl-pg plugin (#3107) 2026-06-12 10:42:37 +02: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 add Mikkel (#3002) 2025-12-03 11:00:59 +01:00
CONTRIBUTING.md Update docs for v1.2 (#609) 2019-07-11 17:19:27 +02:00
LICENSE bump to v1.15.0 (#2965) 2025-10-21 11:56:33 +02:00
MAINTAINERS add Mikkel (#3002) 2025-12-03 11:00:59 +01:00
Makefile build multi-arch pooler image (#3077) 2026-04-28 13:34:36 +02:00
README.md Add support for pg18 and remove pg13 (#3035) 2026-02-17 10:19:19 +01:00
SECURITY.md docs(general): Adding Security.md (#88) 2017-09-04 14:33:30 +02:00
build-ci.sh Modernize code generation (#3003) 2026-01-09 14:22:10 +01:00
delivery.yaml Remove references to registry.opensource.zalan.do (#3092) 2026-05-08 09:16:10 +02:00
go.mod Bump github.com/lib/pq from v1.11.2 to v1.12.3 (#3042) 2026-06-10 11:32:13 +02:00
go.sum Bump github.com/lib/pq from v1.11.2 to v1.12.3 (#3042) 2026-06-10 11:32:13 +02: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 Modernize code generation (#3003) 2026-01-09 14:22:10 +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. Supports global upgrade of all clusters.
  • Pod protection during bootstrap phase and configurable maintenance windows
  • Restore and cloning Postgres clusters on AWS, GCS and Azure
  • Additionally logical backups to S3 or GCS bucket can be configured
  • Standby cluster from S3 or GCS 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
  • Compatible with OpenShift

PostgreSQL features

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

Supported Postgres & K8s versions

Release Postgres versions K8s versions Golang
v1.15.1 13 → 17 1.27+ 1.25.3
v1.14.0 13 → 17 1.27+ 1.23.4
v1.13.0 12 → 16 1.27+ 1.22.5
v1.12.0 11 → 16 1.27+ 1.22.3
v1.11.0 11 → 16 1.27+ 1.21.7
v1.10.1 10 → 15 1.21+ 1.19.8

Getting started

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

Supported setups of Postgres and Applications

Features Features

Documentation

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