Skip to content

4.0.0

Choose a tag to compare

@cahoonpwork cahoonpwork released this 07 Jun 19:25
· 2296 commits to master since this release

Crunchy Data is pleased to release PostgreSQL Operator 4.0.0

Crunchy PostgreSQL Operator extends Kubernetes to support the creation, configuration and management of PostgreSQL clusters at scale. When combined with the Crunchy PostgreSQL Container Suite, the Crunchy PostgreSQL Operator provides an open source software solution for PostgreSQL scaling, high-availability, disaster recovery, monitoring, and more.

The Crunchy PostgreSQL Operator 4.0.0 supports the Crunchy PostgreSQL Container Suite version 2.4.0+. Prior versions of the Crunchy PostgreSQL Container Suite are not supported by the Crunchy PostgreSQL Operator 4.0.0.

Key user facing features added to the Crunchy PostgreSQL Operator 4.0.0 include:

-- Support for deploying the Crunchy PostgreSQL Operator into it's own namespace,

-- Support for deploying PostgreSQL Clusters into multiple namespaces being watched by a single Crunchy PostgreSQL Operator

-- Support for the ability to perform pgbackrest backups to Amazon S3

-- Inclusion of Ansible installation playbooks for eased installation

-- Crunchy PostgreSQL Operator 4.0.0 supports the Operator Lifecycle Management (OLM) and will be made available the operatorhub.io catalog shortly.

-- Updates and enhancements to the Crunchy PostgreSQL Operator documentation

This release incorporates significant changes relative to the PostgreSQL Operator 3.5.x.

In particular, the changes to how namespaces are supported are material. For additional information, please see the Installation and Design documentation for details on how namespaces are supported and configured:

https://access.crunchydata.com/documentation/postgres-operator/4.0.0/gettingstarted/design/designoverview/

Instructions for upgrading from PostgreSQL Operator version 3.5.x to 4.0.0 can be found in the documentation here:

https://access.crunchydata.com/documentation/postgres-operator/4.0.0/upgrade/

The Crunchy PostgreSQL Operator 4.0.0 does not yet provide a helm chart based installation. Crunchy Data is evaluating inclusion of a helm chart for subsequent releases and welcomes feedback on the desirability of helm chart based installations.


Additional changes and features incorporated within Crunchy PostgreSQL Operator 4.0.0 include:

-- Revised RBAC rules to better support OLM

-- Revised default configuration to better support OLM

-- Configuration files under conf/postgres-operator/cluster/1 were moved to conf/postgres-operator

-- Namespaces were added to server side pgouser file to indicate to which namespaces a pgo user has access

-- A default deployment/install of the Operator was changed to better reflect how multiple namespaces are supported, see the Installation documentation for details

-- Removed the -n shorthand flag for the --no-prompt flag, -n is now the shorthand for the --namespace flag to better match kubectl flags

-- pgo.yaml - removed Pgo.LSPVCTemplate and Pgo.LoadTemplate settings, these have moved to the normal configuration location

-- Removed the volume pgo-config references within the deployment.json, this means that the various Operator containers do not mount the pgo-config ConfigMap directly any longer, instead it is looked for upon initialization internally, if found, it is used for Operator configuration as normal, if not found, the default baked-in version of configuration is used, this supports OLM and an easier more automatic means of deploying the Operator where a user just wants to test it out before doing significant configuration customization (e.g. OLM/Openshift console deployment)

-- pgo-apiserver TLS keys now detected at runtime and not mounted, if a pgo.tls Secret is not found, a self-signed TLS credential will be generated and the Secret created by the Operator

-- CRD group names has changed from client-go.k8s.io to crunchydata.com to be consistent with OLM standards and better identify PostgreSQL Operator resources

-- Environment variables were renamed to standardize using PGO as the prefix instead of some which were CO

-- Updated Deployment version from v1beta1 to v1

-- pgo show namespace command which shows the namespaces currently being watched by the operator and which ones are accessible from your pgo user account

-- Namespace command line flag for pgo commands to specify which namespace to inspect or create resources into, this flag value overrides the PGO_NAMESPACE environment variable if set by the pgo CLI user

-- pgo benchmark command lets you create and view pgbench reports default 'baked-in' configuration, see Design documentation for details

-- Default installer supports installing Operator multiple times on a single Kubernetes cluster

-- New pgo ls command, lets you list files inside the postgres container

-- pgbasebackup backup paths are now maintained in the pgbackup CRD for a given PG cluster, this allows users to view historical backup-paths using the pgo show backup command.

-- pgbasebackup was refactored to be more in line with pgbackrest and pgdump commands.

-- Additional validation added to backup-opts to ensure the options are valid with the type of backup being performed.

-- Added liveness and readiness probes to the Operator deployment example

-- Changed pgo CLI to look at PGOUSER environment variable first in order of searching for the credentials file

-- Removed the primary=true/false label as its redundant

-- Removed the pgpool and pgbouncer labels from the Postgres Pods, stored in the pgcluster CRD instead.

-- quickstart.sh script was removed

-- Removed the pgupgrade CRD, pgo show upgrade and pgo delete upgrade commands.

-- PGOUSERNAME and PGOUSERPASS environment variables support added for pgo CLI for use cases where storing username and password in a file is not possible or preferable

-- Changes to REST API including:

-- REST API change: /clusters/{name} GET changes to /showclusters POST

-- REST API change: /policies/{name} GET changes to /showpolices POST

-- REST API change: /pvc/{name} GET changes to /showpvc POST

-- REST API change: /deleteclusters/{name} GET changes to /deleteclusters POST

-- REST API change: /deletepolicies/{name} GET changes to /deletepolicies POST

-- REST API change: /clusters/test/{name} GET changes to /testclusters POST

-- Changes to pgo syntax including:

-- pgo show cluster all command syntax is changed to pgo show cluster --all

-- pgo show policy all command syntax is changed to pgo show policy --all

-- pgo show pvc all command syntax is changed to pgo show pvc --all

-- pgo delete cluster all command syntax is changed to pgo delete cluser --all

-- pgo delete policy all command syntax is changed to pgo delete policy --all

-- pgo test all command syntax is changed to pgo test --all