use capital letter for names + fix typos

This commit is contained in:
Felix Kunde 2019-07-08 17:17:27 +02:00
parent 0604b5d9c1
commit 4862e17b7d
7 changed files with 62 additions and 59 deletions

View File

@ -4,15 +4,19 @@ Wanna contribute to the Postgres Operator? Yay - here is how!
## Reporting issues ## Reporting issues
If you have a question about patroni or have a problem using it, please read the`README` before filing an issue. Before filing an issue, if you have a question about Postgres Operator or have
Also double check with the current issues on our [Issues Tracker](https://github.com/zalando/postgres-operator/issues). a problem using it, please read the [concepts](docs/index.md) page or use the
different guides that we provide for [users](docs/user.md),
[developers](docs/developer.md) or [admins](docs/administrator). Also double
check with the current issues on our [Issues Tracker](https://github.com/zalando/postgres-operator/issues).
## Contributing a pull request ## Contributing a pull request
1. Submit a comment to the relevant issue or create a new issue describing your proposed change. 1. Submit a comment to the relevant issue or create a new issue describing your
1. Do a fork, develop and test your code changes. proposed change.
1. Include documentation 2. Do a fork, develop and test your code changes.
1. Submit a pull request. 3. Include documentation
4. Submit a pull request.
You'll get feedback about your pull request as soon as possible. You'll get feedback about your pull request as soon as possible.

View File

@ -128,7 +128,7 @@ localhost:8080 by doing:
$ kubectl --context minikube port-forward $(kubectl --context minikube get pod -l name=postgres-operator -o jsonpath={.items..metadata.name}) 8080:8080 $ kubectl --context minikube port-forward $(kubectl --context minikube get pod -l name=postgres-operator -o jsonpath={.items..metadata.name}) 8080:8080
The inner 'query' gets the name of the postgres operator pod, and the outer The inner 'query' gets the name of the Postgres Operator pod, and the outer
enables port forwarding. Afterwards, you can access the operator API with: enables port forwarding. Afterwards, you can access the operator API with:
``` ```

View File

@ -28,7 +28,7 @@ manages PostgreSQL clusters on Kubernetes (K8s):
### Scope ### Scope
The scope of the postgres operator is on provisioning, modifying configuration The scope of the Postgres Operator is on provisioning, modifying configuration
and cleaning up Postgres clusters that use Patroni, basically to make it easy and cleaning up Postgres clusters that use Patroni, basically to make it easy
and convenient to run Patroni based clusters on K8s. The provisioning and convenient to run Patroni based clusters on K8s. The provisioning
and modifying includes K8s resources on one side but also e.g. database and modifying includes K8s resources on one side but also e.g. database

View File

@ -1,7 +1,7 @@
# Cluster manifest reference # Cluster manifest reference
Individual postgres clusters are described by the Kubernetes *cluster manifest* Individual Postgres clusters are described by the Kubernetes *cluster manifest*
that has the structure defined by the `postgres CRD` (custom resource that has the structure defined by the `postgresql` CRD (custom resource
definition). The following section describes the structure of the manifest and definition). The following section describes the structure of the manifest and
the purpose of individual keys. You can take a look at the examples of the the purpose of individual keys. You can take a look at the examples of the
[minimal](https://github.com/zalando/postgres-operator/blob/master/manifests/minimal-postgres-manifest.yaml) [minimal](https://github.com/zalando/postgres-operator/blob/master/manifests/minimal-postgres-manifest.yaml)
@ -21,7 +21,7 @@ applied.
## Manifest structure ## Manifest structure
A postgres manifest is a `YAML` document. On the top level both individual A Postgres manifest is a `YAML` document. On the top level both individual
parameters and parameter groups can be defined. Parameter names are written parameters and parameter groups can be defined. Parameter names are written
in camelCase. in camelCase.
@ -66,21 +66,21 @@ These parameters are grouped directly under the `spec` key in the manifest.
It should be a [Spilo](https://github.com/zalando/spilo) image. Optional. It should be a [Spilo](https://github.com/zalando/spilo) image. Optional.
* **spiloFSGroup** * **spiloFSGroup**
the Persistent Volumes for the spilo pods in the StatefulSet will be owned and the Persistent Volumes for the Spilo pods in the StatefulSet will be owned and
writable by the group ID specified. This will override the **spilo_fsgroup** writable by the group ID specified. This will override the **spilo_fsgroup**
operator parameter. This is required to run Spilo as a non-root process, but operator parameter. This is required to run Spilo as a non-root process, but
requires a custom spilo image. Note the FSGroup of a Pod cannot be changed requires a custom Spilo image. Note the FSGroup of a Pod cannot be changed
without recreating a new Pod. Optional. without recreating a new Pod. Optional.
* **enableMasterLoadBalancer** * **enableMasterLoadBalancer**
boolean flag to override the operator defaults (set by the boolean flag to override the operator defaults (set by the
`enable_master_load_balancer` parameter) to define whether to enable the load `enable_master_load_balancer` parameter) to define whether to enable the load
balancer pointing to the postgres primary. Optional. balancer pointing to the Postgres primary. Optional.
* **enableReplicaLoadBalancer** * **enableReplicaLoadBalancer**
boolean flag to override the operator defaults (set by the boolean flag to override the operator defaults (set by the
`enable_replica_load_balancer` parameter) to define whether to enable the `enable_replica_load_balancer` parameter) to define whether to enable the
load balancer pointing to the postgres standby instances. Optional. load balancer pointing to the Postgres standby instances. Optional.
* **allowedSourceRanges** * **allowedSourceRanges**
when one or more load balancers are enabled for the cluster, this parameter when one or more load balancers are enabled for the cluster, this parameter
@ -145,20 +145,20 @@ Those parameters are grouped under the `postgresql` top-level key, which is
required in the manifest. required in the manifest.
* **version** * **version**
the postgres major version of the cluster. Looks at the [Spilo the Postgres major version of the cluster. Looks at the [Spilo
project](https://github.com/zalando/spilo/releases) for the list of supported project](https://github.com/zalando/spilo/releases) for the list of supported
versions. Changing the cluster version once the cluster has been bootstrapped versions. Changing the cluster version once the cluster has been bootstrapped
is not supported. Required field. is not supported. Required field.
* **parameters** * **parameters**
a dictionary of postgres parameter names and values to apply to the resulting a dictionary of Postgres parameter names and values to apply to the resulting
cluster. Optional (Spilo automatically sets reasonable defaults for parameters cluster. Optional (Spilo automatically sets reasonable defaults for parameters
like work_mem or max_connections). like work_mem or max_connections).
## Patroni parameters ## Patroni parameters
Those parameters are grouped under the `patroni` top-level key. See the [patroni Those parameters are grouped under the `patroni` top-level key. See the [Patroni
documentation](https://patroni.readthedocs.io/en/latest/SETTINGS.html) for the documentation](https://patroni.readthedocs.io/en/latest/SETTINGS.html) for the
explanation of `ttl` and `loop_wait` parameters. explanation of `ttl` and `loop_wait` parameters.
@ -180,25 +180,25 @@ explanation of `ttl` and `loop_wait` parameters.
authentication. Optional. authentication. Optional.
* **ttl** * **ttl**
patroni `ttl` parameter value, optional. The default is set by the Spilo Patroni `ttl` parameter value, optional. The default is set by the Spilo
docker image. Optional. docker image. Optional.
* **loop_wait** * **loop_wait**
patroni `loop_wait` parameter value, optional. The default is set by the Patroni `loop_wait` parameter value, optional. The default is set by the
Spilo docker image. Optional. Spilo docker image. Optional.
* **retry_timeout** * **retry_timeout**
patroni `retry_timeout` parameter value, optional. The default is set by the Patroni `retry_timeout` parameter value, optional. The default is set by the
Spilo docker image. Optional. Spilo docker image. Optional.
* **maximum_lag_on_failover** * **maximum_lag_on_failover**
patroni `maximum_lag_on_failover` parameter value, optional. The default is Patroni `maximum_lag_on_failover` parameter value, optional. The default is
set by the Spilo docker image. Optional. set by the Spilo docker image. Optional.
* **slots** * **slots**
permanent replication slots that Patroni preserves after failover by permanent replication slots that Patroni preserves after failover by
re-creating them on the new primary immediately after doing a promote. Slots re-creating them on the new primary immediately after doing a promote. Slots
could be reconfigured with the help of `patronictl edit-config`. It is the could be reconfigured with the help of `Patronictl edit-config`. It is the
responsibility of a user to avoid clashes in names between replication slots responsibility of a user to avoid clashes in names between replication slots
automatically created by Patroni for cluster members and permanent replication automatically created by Patroni for cluster members and permanent replication
slots. Optional. slots. Optional.
@ -206,31 +206,31 @@ explanation of `ttl` and `loop_wait` parameters.
## Postgres container resources ## Postgres container resources
Those parameters define [CPU and memory requests and limits](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) Those parameters define [CPU and memory requests and limits](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
for the postgres container. They are grouped under the `resources` top-level for the Postgres container. They are grouped under the `resources` top-level
key with subgroups `requests` and `limits`. key with subgroups `requests` and `limits`.
### Requests ### Requests
CPU and memory requests for the postgres container. CPU and memory requests for the Postgres container.
* **cpu** * **cpu**
CPU requests for the postgres container. Optional, overrides the CPU requests for the Postgres container. Optional, overrides the
`default_cpu_requests` operator configuration parameter. Optional. `default_cpu_requests` operator configuration parameter. Optional.
* **memory** * **memory**
memory requests for the postgres container. Optional, overrides the memory requests for the Postgres container. Optional, overrides the
`default_memory_request` operator configuration parameter. Optional. `default_memory_request` operator configuration parameter. Optional.
### Limits ### Limits
CPU and memory limits for the postgres container. CPU and memory limits for the Postgres container.
* **cpu** * **cpu**
CPU limits for the postgres container. Optional, overrides the CPU limits for the Postgres container. Optional, overrides the
`default_cpu_limits` operator configuration parameter. Optional. `default_cpu_limits` operator configuration parameter. Optional.
* **memory** * **memory**
memory limits for the postgres container. Optional, overrides the memory limits for the Postgres container. Optional, overrides the
`default_memory_limits` operator configuration parameter. Optional. `default_memory_limits` operator configuration parameter. Optional.
## Parameters defining how to clone the cluster from another one ## Parameters defining how to clone the cluster from another one
@ -290,7 +290,7 @@ archive is supported.
## EBS volume resizing ## EBS volume resizing
Those parameters are grouped under the `volume` top-level key and define the Those parameters are grouped under the `volume` top-level key and define the
properties of the persistent storage that stores postgres data. properties of the persistent storage that stores Postgres data.
* **size** * **size**
the size of the target EBS volume. Usual Kubernetes size modifiers, i.e. `Gi` the size of the target EBS volume. Usual Kubernetes size modifiers, i.e. `Gi`
@ -309,7 +309,7 @@ properties of the persistent storage that stores postgres data.
Those parameters are defined under the `sidecars` key. They consist of a list Those parameters are defined under the `sidecars` key. They consist of a list
of dictionaries, each defining one sidecar (an extra container running of dictionaries, each defining one sidecar (an extra container running
along the main postgres container on the same pod). The following keys can be along the main Postgres container on the same pod). The following keys can be
defined in the sidecar dictionary: defined in the sidecar dictionary:
* **name** * **name**

View File

@ -50,9 +50,9 @@ The following environment variables are accepted by the operator:
`scalyr_api_key` operator parameter. `scalyr_api_key` operator parameter.
* **CRD_READY_WAIT_TIMEOUT** * **CRD_READY_WAIT_TIMEOUT**
defines the timeout for the complete postgres CRD creation. When not set defines the timeout for the complete `postgresql` CRD creation. When not set
default is 30s. default is 30s.
* **CRD_READY_WAIT_INTERVAL** * **CRD_READY_WAIT_INTERVAL**
defines the interval between consecutive attempts waiting for the postgres defines the interval between consecutive attempts waiting for the postgresql
CRD to be created. The default is 5s. CRD to be created. The default is 5s.

View File

@ -77,7 +77,7 @@ Those are top-level keys, containing both leaf keys and groups.
Kubernetes-native DCS). Kubernetes-native DCS).
* **docker_image** * **docker_image**
Spilo docker image for postgres instances. For production, don't rely on the Spilo docker image for Postgres instances. For production, don't rely on the
default image, as it might be not the most up-to-date one. Instead, build default image, as it might be not the most up-to-date one. Instead, build
your own Spilo image from the [github your own Spilo image from the [github
repository](https://github.com/zalando/spilo). repository](https://github.com/zalando/spilo).
@ -100,12 +100,12 @@ Those are top-level keys, containing both leaf keys and groups.
create/update/delete/sync clusters concurrently. The default is `4`. create/update/delete/sync clusters concurrently. The default is `4`.
* **max_instances** * **max_instances**
operator will cap the number of instances in any managed postgres cluster up operator will cap the number of instances in any managed Postgres cluster up
to the value of this parameter. When `-1` is specified, no limits are applied. to the value of this parameter. When `-1` is specified, no limits are applied.
The default is `-1`. The default is `-1`.
* **min_instances** * **min_instances**
operator will run at least the number of instances for any given postgres operator will run at least the number of instances for any given Postgres
cluster equal to the value of this parameter. When `-1` is specified, no cluster equal to the value of this parameter. When `-1` is specified, no
limits are applied. The default is `-1`. limits are applied. The default is `-1`.
@ -121,11 +121,11 @@ Parameters describing Postgres users. In a CRD-configuration, they are grouped
under the `users` key. under the `users` key.
* **super_username** * **super_username**
postgres `superuser` name to be created by `initdb`. The default is Postgres `superuser` name to be created by `initdb`. The default is
`postgres`. `postgres`.
* **replication_username** * **replication_username**
postgres username used for replication between instances. The default is Postgres username used for replication between instances. The default is
`standby`. `standby`.
## Kubernetes resources ## Kubernetes resources
@ -150,7 +150,7 @@ configuration they are grouped under the `kubernetes` key.
This definition must bind pod service account to a role with permission This definition must bind pod service account to a role with permission
sufficient for the pods to start and for Patroni to access k8s endpoints; sufficient for the pods to start and for Patroni to access k8s endpoints;
service account on its own lacks any such rights starting with k8s v1.8. If service account on its own lacks any such rights starting with k8s v1.8. If
not excplicitly defined by the user, a simple definition that binds the not explicitly defined by the user, a simple definition that binds the
account to the operator's own 'zalando-postgres-operator' cluster role will account to the operator's own 'zalando-postgres-operator' cluster role will
be used. The default is empty. be used. The default is empty.
@ -159,7 +159,7 @@ configuration they are grouped under the `kubernetes` key.
after this timeout. The default is `5m`. after this timeout. The default is `5m`.
* **watched_namespace** * **watched_namespace**
The operator watches for postgres objects in the given namespace. If not The operator watches for Postgres objects in the given namespace. If not
specified, the value is taken from the operator namespace. A special `*` specified, the value is taken from the operator namespace. A special `*`
value makes it watch all namespaces. The default is empty (watch the operator value makes it watch all namespaces. The default is empty (watch the operator
pod namespace). pod namespace).
@ -188,7 +188,7 @@ configuration they are grouped under the `kubernetes` key.
* **cluster_domain** * **cluster_domain**
defines the default dns domain for the kubernetes cluster the operator is defines the default dns domain for the kubernetes cluster the operator is
running in. The default is `cluster.local`. Used by the operator to connect running in. The default is `cluster.local`. Used by the operator to connect
to the postgres clusters after creation. to the Postgres clusters after creation.
* **oauth_token_secret_name** * **oauth_token_secret_name**
a name of the secret containing the `OAuth2` token to pass to the teams API. a name of the secret containing the `OAuth2` token to pass to the teams API.
@ -208,9 +208,8 @@ configuration they are grouped under the `kubernetes` key.
* **inherited_labels** * **inherited_labels**
list of labels that can be inherited from the cluster manifest, and added to list of labels that can be inherited from the cluster manifest, and added to
each child objects (`StatefulSet`, `Pod`, `Service` and `Endpoints`) created each child objects (`StatefulSet`, `Pod`, `Service` and `Endpoints`) created
by the opertor. by the operator. Typical use case is to dynamically pass labels that are
Typical use case is to dynamically pass labels that are specific to a given specific to a given Postgres cluster, in order to implement `NetworkPolicy`.
postgres cluster, in order to implement `NetworkPolicy`.
The default is empty. The default is empty.
* **cluster_name_label** * **cluster_name_label**
@ -234,7 +233,7 @@ configuration they are grouped under the `kubernetes` key.
* **pod_environment_configmap** * **pod_environment_configmap**
a name of the ConfigMap with environment variables to populate on every pod. a name of the ConfigMap with environment variables to populate on every pod.
Right now this ConfigMap is searched in the namespace of the postgres cluster. Right now this ConfigMap is searched in the namespace of the Postgres cluster.
All variables from that ConfigMap are injected to the pod's environment, on All variables from that ConfigMap are injected to the pod's environment, on
conflicts they are overridden by the environment variables generated by the conflicts they are overridden by the environment variables generated by the
operator. The default is empty. operator. The default is empty.
@ -245,9 +244,9 @@ configuration they are grouped under the `kubernetes` key.
be defined in advance. Default is empty (use the default priority class). be defined in advance. Default is empty (use the default priority class).
* **spilo_fsgroup** * **spilo_fsgroup**
the Persistent Volumes for the spilo pods in the StatefulSet will be owned and the Persistent Volumes for the Spilo pods in the StatefulSet will be owned and
writable by the group ID specified. This is required to run Spilo as a writable by the group ID specified. This is required to run Spilo as a
non-root process, but requires a custom spilo image. Note the FSGroup of a Pod non-root process, but requires a custom Spilo image. Note the FSGroup of a Pod
cannot be changed without recreating a new Pod. cannot be changed without recreating a new Pod.
* **spilo_privileged** * **spilo_privileged**
@ -283,19 +282,19 @@ Those parameters are grouped under the `postgres_pod_resources` key in a
CRD-based configuration. CRD-based configuration.
* **default_cpu_request** * **default_cpu_request**
CPU request value for the postgres containers, unless overridden by CPU request value for the Postgres containers, unless overridden by
cluster-specific settings. The default is `100m`. cluster-specific settings. The default is `100m`.
* **default_memory_request** * **default_memory_request**
memory request value for the postgres containers, unless overridden by memory request value for the Postgres containers, unless overridden by
cluster-specific settings. The default is `100Mi`. cluster-specific settings. The default is `100Mi`.
* **default_cpu_limit** * **default_cpu_limit**
CPU limits for the postgres containers, unless overridden by cluster-specific CPU limits for the Postgres containers, unless overridden by cluster-specific
settings. The default is `3`. settings. The default is `3`.
* **default_memory_limit** * **default_memory_limit**
memory limits for the postgres containers, unless overridden by cluster-specific memory limits for the Postgres containers, unless overridden by cluster-specific
settings. The default is `1Gi`. settings. The default is `1Gi`.
* **set_memory_request_to_limit** * **set_memory_request_to_limit**
@ -336,11 +335,11 @@ CRD-based configuration.
cluster or recreating pods. The default is `10m`. cluster or recreating pods. The default is `10m`.
* **ready_wait_interval** * **ready_wait_interval**
the interval between consecutive attempts waiting for the postgres CRD to be the interval between consecutive attempts waiting for the `postgresql` CRD to
created. The default is `5s`. be created. The default is `5s`.
* **ready_wait_timeout** * **ready_wait_timeout**
the timeout for the complete postgres CRD creation. The default is `30s`. the timeout for the complete `postgresql` CRD creation. The default is `30s`.
## Load balancer related options ## Load balancer related options
@ -396,7 +395,7 @@ yet officially supported.
Spilo are S3 and GCS. The default is empty. Spilo are S3 and GCS. The default is empty.
* **log_s3_bucket** * **log_s3_bucket**
S3 bucket to use for shipping postgres daily logs. Works only with S3 on AWS. S3 bucket to use for shipping Postgres daily logs. Works only with S3 on AWS.
The bucket has to be present and accessible by Postgres pods. The default is The bucket has to be present and accessible by Postgres pods. The default is
empty. empty.
@ -447,7 +446,7 @@ Options to aid debugging of the operator itself. Grouped under the `debug` key.
* **enable_database_access** * **enable_database_access**
boolean parameter that toggles the functionality of the operator that require boolean parameter that toggles the functionality of the operator that require
access to the postgres database, i.e. creating databases and users. The access to the Postgres database, i.e. creating databases and users. The
default is `true`. default is `true`.
## Automatic creation of human users in the database ## Automatic creation of human users in the database
@ -466,7 +465,7 @@ key.
`https://teams.example.com/api/`. `https://teams.example.com/api/`.
* **team_api_role_configuration** * **team_api_role_configuration**
postgres parameters to apply to each team member role. The default is Postgres parameters to apply to each team member role. The default is
'*log_statement:all*'. It is possible to supply multiple options, separating '*log_statement:all*'. It is possible to supply multiple options, separating
them by commas. Options containing commas within the value are not supported, them by commas. Options containing commas within the value are not supported,
with the exception of the `search_path`. For instance: with the exception of the `search_path`. For instance:

View File

@ -300,7 +300,7 @@ Things to note:
- An empty string is provided in `s3_wal_path` of the standby cluster will - An empty string is provided in `s3_wal_path` of the standby cluster will
result in error and no statefulset will be created. result in error and no statefulset will be created.
- Only one pod can be deployed for stand-by cluster. - Only one pod can be deployed for stand-by cluster.
- To manually promote the standby_cluster, use patronictl and remove config - To manually promote the standby_cluster, use `patronictl` and remove config
entry. entry.
- There is no way to transform a non-standby cluster to become a standby cluster - There is no way to transform a non-standby cluster to become a standby cluster
through operator. Hence, if a cluster is created without standby section in through operator. Hence, if a cluster is created without standby section in