Initial commit for new 1.6 release with Postgres 13 support.

This commit is contained in:
Jan Mußler 2020-12-15 21:35:07 +01:00
parent 929075814a
commit 30691f8211
7 changed files with 36 additions and 16 deletions

View File

@ -14,7 +14,7 @@ pipelines with no access to Kubernetes API directly, promoting infrastructure as
### Operator features
* Rolling updates on Postgres cluster changes, incl. quick minor version updates
* Live volume resize without pod restarts (AWS EBS, others pending)
* 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
@ -23,10 +23,12 @@ pipelines with no access to Kubernetes API directly, promoting infrastructure as
* 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
* Supports PostgreSQL 12, starting from 9.6+
* Supports PostgreSQL 13, starting from 9.6+
* Streaming replication cluster via Patroni
* Point-In-Time-Recovery with
[pg_basebackup](https://www.postgresql.org/docs/11/app-pgbasebackup.html) /
@ -48,7 +50,25 @@ pipelines with no access to Kubernetes API directly, promoting infrastructure as
[timescaledb](https://github.com/timescale/timescaledb)
The Postgres Operator has been developed at Zalando and is being used in
production for over two years.
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

View File

@ -8,7 +8,7 @@ IFS=$'\n\t'
readonly cluster_name="postgres-operator-e2e-tests"
readonly kubeconfig_path="/tmp/kind-config-${cluster_name}"
readonly spilo_image="registry.opensource.zalan.do/acid/spilo-12:1.6-p5"
readonly spilo_image="registry.opensource.zalan.do/acid/spilo-13:2.0-p1"
readonly e2e_test_runner_image="registry.opensource.zalan.do/acid/postgres-operator-e2e-tests-runner:0.3"
export GOPATH=${GOPATH-~/go}

View File

@ -11,8 +11,8 @@ from kubernetes import client
from tests.k8s_api import K8s
from kubernetes.client.rest import ApiException
SPILO_CURRENT = "registry.opensource.zalan.do/acid/spilo-12:1.6-p5"
SPILO_LAZY = "registry.opensource.zalan.do/acid/spilo-cdp-12:1.6-p114"
SPILO_CURRENT = "registry.opensource.zalan.do/acid/spilo-13:2.0-p1"
SPILO_LAZY = "registry.opensource.zalan.do/acid/spilo-12:1.6-p5"
def to_selector(labels):

View File

@ -36,7 +36,7 @@ spec:
defaultRoles: true
defaultUsers: false
postgresql:
version: "12"
version: "13"
parameters: # Expert section
shared_buffers: "32MB"
max_connections: "10"
@ -93,9 +93,9 @@ spec:
encoding: "UTF8"
locale: "en_US.UTF-8"
data-checksums: "true"
pg_hba:
- hostssl all all 0.0.0.0/0 md5
- host all all 0.0.0.0/0 md5
# pg_hba:
# - hostssl all all 0.0.0.0/0 md5
# - host all all 0.0.0.0/0 md5
# slots:
# permanent_physical_1:
# type: physical

View File

@ -31,7 +31,7 @@ data:
# default_memory_request: 100Mi
# delete_annotation_date_key: delete-date
# delete_annotation_name_key: delete-clustername
docker_image: registry.opensource.zalan.do/acid/spilo-12:1.6-p5
docker_image: registry.opensource.zalan.do/acid/spilo-13:2.0-p1
# downscaler_annotations: "deployment-time,downscaler/*"
# enable_admin_role_for_users: "true"
# enable_crd_validation: "true"
@ -41,7 +41,7 @@ data:
# enable_init_containers: "true"
# enable_lazy_spilo_upgrade: "false"
enable_master_load_balancer: "false"
# enable_pgversion_env_var: "false"
# enable_pgversion_env_var: "true"
# enable_pod_antiaffinity: "false"
# enable_pod_disruption_budget: "true"
# enable_postgres_team_crd: "false"
@ -50,7 +50,7 @@ data:
# enable_shm_volume: "true"
# enable_pgversion_env_var: "false"
# enable_sidecars: "true"
enable_spilo_wal_path_compat: "false"
enable_spilo_wal_path_compat: "true"
# enable_team_superuser: "false"
enable_teams_api: "false"
# etcd_host: ""
@ -122,4 +122,4 @@ data:
# wal_gs_bucket: ""
# wal_s3_bucket: ""
watched_namespace: "*" # listen to all namespaces
workers: "8"
workers: "16"

View File

@ -18,4 +18,4 @@ spec:
preparedDatabases:
bar: {}
postgresql:
version: "12"
version: "13"

View File

@ -200,7 +200,7 @@ type Config struct {
PostgresSuperuserTeams []string `name:"postgres_superuser_teams" default:""`
SetMemoryRequestToLimit bool `name:"set_memory_request_to_limit" default:"false"`
EnableLazySpiloUpgrade bool `name:"enable_lazy_spilo_upgrade" default:"false"`
EnablePgVersionEnvVar bool `name:"enable_pgversion_env_var" default:"false"`
EnablePgVersionEnvVar bool `name:"enable_pgversion_env_var" default:"true"`
EnableSpiloWalPathCompat bool `name:"enable_spilo_wal_path_compat" default:"false"`
}