Skip to content

Releases: CrunchyData/postgres-operator

Release 3.3.0

05 Oct 19:43

Choose a tag to compare

This release includes the following:

  • #317 - created new pgo scaledown verb to replace previous scale down command line usage
  • #344 - fixed a bug where credential secrets were getting removed even if --delete-data was not specified by the user, this would cause an issue when users recreated a cluster with the same name as the prior cluster
  • #268 - added missing configuration settings to the output of pgo show config
  • #350 - pgbackrest volumes and data are now deleted when you run pgo delete cluster xxx --delete-data --delete-backups
  • fixed a bug in pgbackrest restore where the wrong pvc name was being used causing restores not to work on block storage file systems
  • #277 - add PrimaryNodeLabel and ReplicaNodeLabel fields to pgo.yaml, when set, these take effect for clusters and replicas being created, if not set, then normal behavior is used, users can still override these with command line flag (--node-label), by default they are not set in the sample pgo.yaml file.
  • #262 #177 - add a command flag to backup to support pgbackrest command options like compression and incremental backups
  • #349 - added error logic to pgo backup command when backrest backup is requested and when user adds a --storage-config flag which doesn't make sense with a backrest backup, also removed the prompt from the pgo CLI for doing backups.
  • migrated to dep for golang dependency mgmt, removed godep
  • #335 - cleaned up shorthand flag codes in pgo CLI, only a few common flags include shorthand syntax after this change
  • #152 - pgo create pgpool mycluster command created to allow the addition of a pgpool to an existing cluster, likewise, pgo delete pgpool mycluster command is there to allow you to remove a pgpool
  • #156 - add ability to reconfigure pgpool if a user credential changes for a managed user.
  • #343 - added pgbouncer support, thanks @scrummyin 👍
  • add pgo delete label command, removing this capability from pgo label command

Release 3.2.0

22 Aug 23:03
a64b053

Choose a tag to compare

This release includes:

  • removal of CCP_IMAGE_PREFIX and CO_IMAGE_PREFIX and CO_IMAGE_TAG environment variables from the deployment.yaml file and Helm chart equvalent, instead these values will be pulled from the pgo.yaml configuraiton file mounted by both the apiserver and operator containers, see the upgrade notes for details
  • #162 - added the MatchLabels attribute to the storage configuration as an optional attribute in the pgo.yaml file, when specified, it will cause a label selector to be added to the PVC of form "name=mycluster"
  • #186 - added a --ccp-image-tag command line flag to the pgo scale command which allows you to specify a specific postgres image tag to be used for the scaled replicas which can now be different than the primary image
  • #188 - added the pgo reload command which will cause a pg_ctl reload command to be executed on a list of matching PG databases
  • added ExternalIP for Services into the 'pgo show cluster' API response to support LoadBalancer service types
  • #276 - added "--service-type" command flag for creating a cluster and for scaling it, this will let users override ClusterIP with LoadBalancer in this release. The service type can be globally set in the pgo.yaml file as well.
  • #274 - documented upgrade requirement for upgrading clusters from 2.6 to 3.2 releases, applies to already created clusters.
  • #284 - added 'pgo show user' command, this replaces the '--show-secrets' flag on the 'pgo show cluster' command, a new permission named SHOW_SECRETS_PERM was added. pgo roles need this permission in order to see user secrets with this change.
  • #283 - added API fields to support pgo-ui and also improve the pgo CLI output.
  • #290 - added pgo-version label to clusters to keep track of what pgo version was used to create a cluster
  • #288 - added ready status check into the pgo test command to avoid hanging at the command line when a pod is not ready
  • #271 - updated command documentation
  • #203 - validate pgouser roles at startup time, apiserver will not start with invalid roles after this change
  • #263 - add pgo.yaml global flag for autofail, when set, will apply auto failover checks on all created clusters
  • #201 - added scale down ability to pgo scale command, with this command you can selectively delete replicas
  • moved the MetricsFlag in the pgo.yaml to to the Cluster section instead of the Pgo section to be more consistent with the sections of the configuration file
  • #272 - added pgbadger command line flag and pgo.yaml flag, when set, will cause a crunchy-pgbadger container sidecar to be added to the database pods.
  • initial ALPHA pgbackrest integration, further work will be done to support pgbackrest in future versions of the Postgres Operator, this is a trial to get feedback, future releases will build upon this initial functionality, see the Design Docs and Command Docs for more details on how this integration works
  • deprecate the storage types 'existing' and 'emptydir', these are no longer very useful and will be removed in the upcoming release. This will leave 'create' and 'dynamic' as the supported storage types.
  • includes updated Postgres packages in the Operator containers that require Postgres
  • added changes into the collect.json template for metrics collection to support crunchy-containers 2.1.0 which introduced a new version of pgmonitor, grafana (metrics). This change requires you to upgrade to the crunchy-collect 2.1.0 container.
  • updated the configuration to use the crunchy container suite 2.1.0 release as the default images

Release 3.1

14 Jun 16:28

Choose a tag to compare

The 3.1 release includes the following new features, fixes, and improvements:

  • #229 a fix for the collect container not getting added when the metrics flag is passed to 'pgo create cluster'
  • #224 - clean up version numbers in docs and also described the pgo binaries for Mac and Windows in the installation docs, also updated the bash completion example file with the latest pgo commands and flags.
  • #228 merged a fix for the helm chart to work again with the 3.0 changes, thanks to @blaggacao @ieugen @TomNeyland
  • #231 fixed bug when a user specified a node label key that contained a slash character which is valid for a node label key.
  • #239 fixed bug where collect container was not getting the postgres password supplied to it
  • #167 fixed a bug where delete jobs and tasks were not getting removed when a user specified --delete-data or --delete-backups on the pgo delete cluster command
  • #236 - fixed bug in df command for containers created pre-3.0
  • changed default rbac rules to use role and role bindings instead of clusterrole and clusterrolebindings, essentially de-escalating privs required to deploy the operator.
  • removed the use of the replica label from pods, the primary label is now used to indicate whether a pod is a primary or replica by setting the primary label value to true or false
  • added logic to remove the pgreplica CRD for a replica that is promoted as part of failover
  • added logic to create a new replica to replace the promoted replica as part of failover
  • #247 - fixed the failover logic when validating the target database container, this was broken for cases where the target pod had more than 1 container in it (e.g. metrics sidecar).
  • #245 - pgo backup confirmation added, --no-prompt flag already was present.
  • print Ready status of failover pods in pgo failover query output
  • operator pod now reads the pgo.yaml configuration file via a volume mount in the deployment
  • #141 - added the Creation Timestamp to the *pgo show backup * command output
  • #166 added pvc-name command flag into pgo backup command that allows a backup to an adhoc created PVC, useful for special backups or disaster recovery cases
  • #59 added ability to apply policies specified in pgo.yaml or by a user after a database is initially created and goes into a Ready state.
  • #190 - auto failover initial implementation, see docs on design description and usage'
  • added new 'pgo show config' command to allow users an ability to view the pgo configuration

Release 3.0

15 May 02:50

Choose a tag to compare

changes this release:

  • update RHEL images to use latest RHEL image version instead of 7.4 being hardcoded, this will pick up 7.5 going forward
  • new HTML documentation added and hosted on Github Pages https://crunchydata.github.io/postgres-operator/
  • refactored the dep mgmt, now using godep and updated the deps to use kubernetes-1.9.7
  • PVC names no longer include "-pvc" as part of the naming convention
  • PVC resources include a label pg-cluster=clustername to allow selection based on pg-cluster name
  • --archive command flag available to the "pgo create cluster" command which enabled archive logging to a dedicated PVC (e.g. mycluster-xlog), ArchiveTimeout, and ArchiveMode config file settings were added to allow global configuration
  • pgtask CRD parameters are now stored in a map instead of a string
  • added the pgo df command, see the command documentation for a description
  • added the pgo status command, see the command documentation for a description
  • converted to http GET calls for pgo delete commands, this impacts previous pgo clients and the apiserver REST APIj
  • #215 - added vendor label to all kube resources created by the operator to let uses identify operator deployment based resources by vendor name (e.g. crunchydata)
  • #191 - fixed namespace setting in deploy.sh to properly refer to namespace when creating the apiserver secret
  • #211 - fixed failover pgtask removal before a 2nd failover
  • #148 - fixed bug where a cluster pvc was not removed when the cluster was removed, this would prevent a new cluster with the same name from being created
  • #200, #207, #210 - fixed various issues with manual failover when you performed multiple failovers

Release 2.6

06 Apr 19:43

Choose a tag to compare

Release 2.6 includes the following changes:

  • added logic for #115 - provides validation of label, cluster, and policy names against the apimachinery API
  • removed code for #128 - create-secrets.sh script was deprecated and removed
  • refactored code for #122 - cleaner pgo output and also removed multi-byte chars from output which didn't render on Windows correctly
  • fixed #123 - cleaned up pgo backup command output
  • #82 - added json output command line flag to pgo test command and also add selector command line flag to pgo test
  • #117 - added logic to support filtering clusters by a policy name using the normal selector flag.
  • #125 - added container resources capability to allow users to set a default resources configuration and override at the command line values for CPU/Memory for each database container when provisioned.
  • #130 - renamed DEBUG env var to CRUNCHY_DEBUG to be consistent with other projects
  • #77 - started a REST API section in the documentation to help people out doing custom integrations
  • #68 - Kube and application RBAC changes and additions, the pgo users now have roles associated with them, see the docs for the details on how and where RBAC is implemented.
  • updated the Helm chart to work with this release
  • #97 added pgpool capability, updated docs
  • #67 added pgo create user and pgo delete user commands, removed the previous style of command
  • #137 - changed the default deployment to store the apiserver configuration files into a secret instead of a configmap
  • #140 - changed pgo backup to include a "--no-prompt" flag and also changed the apiserver to remove any existing backup job if it had already existed.
  • removed CO_NAMESPACE environment variable, removed Namespace setting within the pgo.yaml file, the namespace is now set within the deployment.yaml file and is determined by what namespace the operator is deployed to, there is no need to specify the namespace in any other location starting with release 2.6
  • #138 - refactored the pgo scale command, starting with this release you can specify --resources-config and --storage-config flags to dictate the configurations to be used for a given replica(s)...the pgo scale command is also additive, running this command in succession will keep adding replicas to an existing postgres cluster
  • #126 - changed --node-name command flag to --node-label for the pgo create cluster command, this flag is a node label which is required to be set on one of your nodes if you intend on using this command flag. This flag will cause the operator to create a node affinity clause in your pod specification which will cause the pod to be scheduled onto a specific node using the node label, if not specified, node affinity is not included in your pod definition.
  • #139 - manual failover command pgo failover initial implementation, this command performs a manual failover, documentation was added for this command.
  • updated the pgo-bash-completion file for the new commands that were introduced
  • #131 - created a cleanup script bin/manual-cleanup.sh that can be used to permanently remove a cluster's resources

Release 2.5

14 Feb 16:50

Choose a tag to compare

This release includes the following updates from the previous release (2.4):

  • #108 - a confirmation for deletion commands allowing the user a final check before removing clusters or backups, users can override this with a --no-prompt command flag in the pgo client
  • #106 - removed pgo --namespace flag, this is not implemented and could cause errors now that the namespace is determined by the apiserver configuration in this current release
  • updated the bash completion file
  • #103 , the default PG_LOCALE is now set to en_US.UTF8 in the default configuration files when databases are initialized
  • #100 - added a TLS_NO_VERIFY env variable to pgo-apiserver, if set to true will relax the security check on client connections
  • added configuration parameter BasicAuth to pgo.yaml, when set to false, will cause pgo-apiserver to not perform any BasicAuth checks, defaults to true when not specified.
  • #89 - added Secrets to hold the PostgreSQL passwords that are used when creating new clusters
  • #90 - removed Info level messages that showed a password in the container logs
  • #92 - added global flag to include metrics collection to all newly created clusters
  • #54 - added audit log messages, if a global flag is set, calls to the apiserver will be logged specifically for auditing
  • #113 - fix for making all cluster secrets following the same naming convention <>-<>-secret
  • updated RHEL Dockerfiles to use RHEL 7.4
  • added PORT environment variable for pgo-apiserver allowing users to use a port other than 8443
  • added a Windows pgo client to the release files, along with expenv binaries for Mac, Windows, Linux to support quickstart
  • changed the postgres-operator service to be of type "NodePort" to better support cloud providers
  • #79 - added logic to support custom Postgres configurations
  • #87 - you can implement a form of DR using the new storage config mechanism
  • #94 - storage configurations were added to support n-number of storage configurations, these can be referenced on the command line when creating clusters and performing backups
  • added a Service Account to secure the operator deployment
  • added a quickstart script to support deployment to pks and GKE environments
  • fixed a bug where the backup status was not getting updated upon completion
  • added a check to see if a backup job exists prior to allowing the submission of a new backup job
  • revised the operator documentation

Release 2.4

12 Jan 15:14

Choose a tag to compare

This release includes the following changes from the previous release:

  • fixed a bug related to running multiple Operators in multiple Namespaces...the Operator would listen for events in all namespaces rather than the namespace it was deployed within, this would cause conflicts between multiple Operators on the same Kube cluster using the same postgres cluster names
  • added a data purge feature which depends on a new CRD, pgtasks, which is created at Operator startup, with this feature users can cause a Job to be created to remove all data files for a given cluster when the cluster is deleted, this feature is enabled by a pgo delete cluster command flag "--delete-data"
  • the CRD pgpolicylog was removed
  • a feature to have policies applied before a data load job is created was added with the "pgo load --policies" flag
  • simple JSON file load capability was added to pgo load
  • csvload container was renamed pgo-load
  • lspvc container was renamed pgo-lspvc
  • new pgo-rmdata container was added
  • template file pgo.csvload-template.json was renamed to pgo.load-template.json
  • combined documentation into operator-docs
  • renamed apiserver container to pgo-apiserver
  • added a "--metrics" flag to the "pgo create cluster" command to add a crunchy-collect container to a database pod whereby metrics can be collected, depends on the crunchy-metrics example being deployed from the Crunchy Container Suite.
  • removed gettext package dependency
  • updated bash completion file

Release 2.3

15 Dec 15:29

Choose a tag to compare

This release includes the following changes from the previous release:

  • built on top of Kubernetes 1.8.5 dependendies (e.g. client-go, apimachinery, etc.)
  • added TLS support for securing the apiserver, the apiserver listens on port 8443 now, sample certs/keys are included

Release 2.2

22 Nov 21:35

Choose a tag to compare

This release includes the following changes from the previous release:

  • fixed upgrade bug in the pgo client
  • added BasicAuthentication as a requirement for interacting with the apiserver
  • added some initial logging of authentication requests
  • updated documentations
  • added support for non-default image prefix (Issue 63)
  • update error messages from pgo client

Note, support for TLS (https) will be added in an upcoming release.

Release 2.1

01 Nov 21:14

Choose a tag to compare

Release 2.1 includes some major features over the 2.0 release including:

  • a new REST API - running in the apiserver container on port 8080
  • a new pgo client which is now a REST client
  • the removal of the .pgo.yaml configuration file to the apiserver configMap, pgo no longer uses a configuration file
  • various bug fixes
  • updated documentation on how to setup a namespace and specify that in running the Operator