postgres-operator/manifests
Oleksii Kliukin 3a9378d3b8
Allow configuring the operator via the YAML manifest. (#326)
* Up until now, the operator read its own configuration from the
configmap.  That has a number of limitations, i.e. when the
configuration value is not a scalar, but a map or a list. We use a
custom code based on github.com/kelseyhightower/envconfig to decode
non-scalar values out of plain text keys, but that breaks when the data
inside the keys contains both YAML-special elememtns (i.e. commas) and
complex quotes, one good example for that is search_path inside
`team_api_role_configuration`. In addition, reliance on the configmap
forced a flag structure on the configuration, making it hard to write
and to read (see
https://github.com/zalando-incubator/postgres-operator/pull/308#issuecomment-395131778).

The changes allow to supply the operator configuration in a proper YAML
file. That required registering a custom CRD to support the operator
configuration and provide an example at
manifests/postgresql-operator-default-configuration.yaml. At the moment,
both old configmap and the new CRD configuration is supported, so no
compatibility issues, however, in the future I'd like to deprecate the
configmap-based configuration altogether. Contrary to the
configmap-based configuration, the CRD one doesn't embed defaults into
the operator code, however, one can use the
manifests/postgresql-operator-default-configuration.yaml as a starting
point in order to build a custom configuration.

Since previously `ReadyWaitInterval` and `ReadyWaitTimeout` parameters
used to create the CRD were taken from the operator configuration, which
is not possible if the configuration itself is stored in the CRD object,
I've added the ability to specify them as environment variables
`CRD_READY_WAIT_INTERVAL` and `CRD_READY_WAIT_TIMEOUT` respectively.

Per review by @zerg-junior  and  @Jan-M.
2018-07-16 16:20:46 +02:00
..
complete-postgres-manifest.yaml Mention `uid` field 2018-06-01 16:44:57 +02:00
configmap.yaml Make AWS region configurable in the operator cofig map (#333) 2018-06-27 17:29:02 +02:00
fake-teams-api.yaml remove new line from the token; 2017-05-12 16:38:42 +02:00
infrastructure-roles-configmap.yaml Improve infrastructure role definitions (#208) 2018-04-04 17:21:36 +02:00
infrastructure-roles.yaml Improve infrastructure role definitions (#208) 2018-04-04 17:21:36 +02:00
minimal-postgres-manifest.yaml Reorganize Readme (#142) 2017-10-24 20:42:22 +02:00
operator-service-account-rbac.yaml Fix conf for minikube (#301) 2018-05-25 12:25:42 +02:00
platform-credentials.yaml Pod Rolling update 2017-05-12 11:41:25 +02:00
postgres-operator.yaml Update postgres-operator.yaml 2018-05-25 12:59:12 +02:00
postgresql-operator-default-configuration.yaml Allow configuring the operator via the YAML manifest. (#326) 2018-07-16 16:20:46 +02:00