update user docs and README
This commit is contained in:
		
							parent
							
								
									a87b6edc48
								
							
						
					
					
						commit
						0a5158c492
					
				
							
								
								
									
										30
									
								
								README.md
								
								
								
								
							
							
						
						
									
										30
									
								
								README.md
								
								
								
								
							|  | @ -8,33 +8,31 @@ | |||
| 
 | ||||
| <img src="docs/diagrams/logo.png" width="200"> | ||||
| 
 | ||||
| The Postgres operator manages PostgreSQL clusters on Kubernetes. Configuration | ||||
| happens only via manifests. Therefore, it integrates easily in automated CI/CD | ||||
| The Postgres Operator enables highly-available [PostgreSQL](https://www.postgresql.org/) | ||||
| clusters on Kubernetes (K8s) powered by [Patroni](https://github.com/zalando/spilo). | ||||
| It is configured only through manifests to ease integration into automated CI/CD | ||||
| pipelines with no access to Kubernetes directly. | ||||
| 
 | ||||
| By default, the operator is building up on two other Open Source projects | ||||
| developed at Zalando. [Spilo](https://github.com/zalando/spilo) provides the | ||||
| Docker image that contains PostgreSQL incl. some pre-compiled extensions. Spilo | ||||
| also includes [Patroni](https://github.com/zalando/spilo) to manage highly | ||||
| available Postgres cluster powered by streaming replication. | ||||
| The Postgres Operator has been developed at Zalando and is being used in | ||||
| production for over two years. | ||||
| 
 | ||||
| ## Getting started | ||||
| 
 | ||||
| For a quick first impression follow the instructions of [this](docs/quickstart.md) | ||||
| tutorial. | ||||
| For a quick first impression follow the instructions of this | ||||
| [tutorial](docs/quickstart.md). | ||||
| 
 | ||||
| ## Documentation | ||||
| 
 | ||||
| There is a browser-friendly version of this documentation at | ||||
| [postgres-operator.readthedocs.io](https://postgres-operator.readthedocs.io) | ||||
| 
 | ||||
| * [concepts](docs/index.md) | ||||
| * [user documentation](docs/user.md) | ||||
| * [administrator documentation](docs/administrator.md) | ||||
| * [developer documentation](docs/developer.md) | ||||
| * [operator configuration reference](docs/reference/operator_parameters.md) | ||||
| * [cluster manifest reference](docs/reference/cluster_manifest.md) | ||||
| * [command-line options and environment variables](docs/reference/command_line_and_environment.md) | ||||
| * [How it works](docs/index.md) | ||||
| * [The Postgres experience on K8s](docs/user.md) | ||||
| * [DBA options - from RBAC to backup](docs/administrator.md) | ||||
| * [Debug and extend the operator](docs/developer.md) | ||||
| * [Configuration options](docs/reference/operator_parameters.md) | ||||
| * [Postgres manifest reference](docs/reference/cluster_manifest.md) | ||||
| * [Command-line options and environment variables](docs/reference/command_line_and_environment.md) | ||||
| 
 | ||||
| ## Google Summer of Code | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										33
									
								
								docs/user.md
								
								
								
								
							
							
						
						
									
										33
									
								
								docs/user.md
								
								
								
								
							|  | @ -33,7 +33,7 @@ spec: | |||
|     version: "10" | ||||
| ``` | ||||
| 
 | ||||
| If you have clone the Postgres Operator [repository](https://github.com/zalando/postgres-operator) | ||||
| Once you cloned the Postgres Operator [repository](https://github.com/zalando/postgres-operator) | ||||
| you can find this example also in the manifests folder: | ||||
| 
 | ||||
| ```bash | ||||
|  | @ -93,8 +93,8 @@ for an example of `zalando` role, defined with `superuser` and `createdb` flags. | |||
| Manifest roles are defined as a dictionary, with a role name as a key and a | ||||
| list of role options as a value. For a role without any options it is best to | ||||
| supply the empty list `[]`. It is also possible to leave this field empty as in | ||||
| our example manifests, but in certain cases such empty field may removed by K8s | ||||
| [due to the `null` value it gets](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/declarative-config/#how-apply-calculates-differences-and-merges-changes) | ||||
| our example manifests. In certain cases such empty field may be missing later | ||||
| removed by K8s [due to the `null` value it gets](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/declarative-config/#how-apply-calculates-differences-and-merges-changes) | ||||
| (`foobar_user:` is equivalent to `foobar_user: null`). | ||||
| 
 | ||||
| The operator accepts the following options:  `superuser`, `inherit`, `login`, | ||||
|  | @ -107,8 +107,8 @@ The operator automatically generates a password for each manifest role and | |||
| places it in the secret named | ||||
| `{username}.{team}-{clustername}.credentials.postgresql.acid.zalan.do` in the | ||||
| same namespace as the cluster. This way, the application running in the | ||||
| K8s cluster and working with the database can obtain the password right | ||||
| from the secret, without ever sharing it outside of the cluster. | ||||
| K8s cluster and connecting to Postgres can obtain the password right from the | ||||
| secret, without ever sharing it outside of the cluster. | ||||
| 
 | ||||
| At the moment it is not possible to define membership of the manifest role in | ||||
| other roles. | ||||
|  | @ -247,7 +247,7 @@ spec: | |||
| Here `cluster` is a name of a source cluster that is going to be cloned. A new | ||||
| cluster will be cloned from S3, using the latest backup before the `timestamp`. | ||||
| In this case, `uid` field is also mandatory - operator will use it to find a | ||||
| correct key inside an S3 bucket. You can find this field from metadata of a | ||||
| correct key inside an S3 bucket. You can find this field in the metadata of the | ||||
| source cluster: | ||||
| 
 | ||||
| ```yaml | ||||
|  | @ -286,8 +286,8 @@ Standby clusters are like normal cluster but they are streaming from a remote | |||
| cluster. As the first version of this feature, the only scenario covered by | ||||
| operator is to stream from a WAL archive of the master. Following the more | ||||
| popular infrastructure of using Amazon's S3 buckets, it is mentioned as | ||||
| `s3_wal_path` here. To make a cluster a standby add a `standby` section in the | ||||
| YAML file as follows. | ||||
| `s3_wal_path` here. To start a cluster as standby add the following `standby` | ||||
| section in the YAML file: | ||||
| 
 | ||||
| ```yaml | ||||
| spec: | ||||
|  | @ -297,16 +297,15 @@ spec: | |||
| 
 | ||||
| Things to note: | ||||
| 
 | ||||
| - An empty string is provided in `s3_wal_path` of the standby cluster will | ||||
|   result in error and no statefulset will be created. | ||||
| - An empty string in the `s3_wal_path` field of the standby cluster will result | ||||
|   in an error and no statefulset will be created. | ||||
| - Only one pod can be deployed for stand-by cluster. | ||||
| - To manually promote the standby_cluster, use `patronictl` and remove config | ||||
|   entry. | ||||
| - 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 | ||||
|   YAML and later modified  by adding that section, there will be no effect on | ||||
|   the cluster. However, it can be done through Patroni by adding the | ||||
|   [standby_cluster] (https://github.com/zalando/patroni/blob/bd2c54581abb42a7d3a3da551edf0b8732eefd27/docs/replica_bootstrap.rst#standby-cluster) | ||||
| - There is no way to transform a non-standby cluster to a standby cluster | ||||
|   through the operator. Adding the standby section to the manifest of a running | ||||
|   Postgres cluster will have no effect. However, it can be done through Patroni | ||||
|   by adding the [standby_cluster] (https://github.com/zalando/patroni/blob/bd2c54581abb42a7d3a3da551edf0b8732eefd27/docs/replica_bootstrap.rst#standby-cluster) | ||||
|   section using `patronictl edit-config`. Note that the transformed standby | ||||
|   cluster will not be doing any streaming. It will be in standby mode and allow | ||||
|   read-only transactions only. | ||||
|  | @ -407,7 +406,7 @@ actions: | |||
| 
 | ||||
| Fist step has a limitation, AWS rate-limits this operation to no more than once | ||||
| every 6 hours. Note, that if the statefulset is scaled down before resizing the | ||||
| size changes are only applied to the volumes attached to the running pods. The | ||||
| new size is only applied to the volumes attached to the running pods. The | ||||
| size of volumes that correspond to the previously running pods is not changed. | ||||
| 
 | ||||
| ## Logical backups | ||||
|  | @ -422,7 +421,7 @@ parameter in the spec section: | |||
| The operator will create and sync a K8s cron job to do periodic logical backups | ||||
| of this particular Postgres cluster. Due to the [limitation of K8s cron jobs](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron-job-limitations) | ||||
| it is highly advisable to set up additional monitoring for this feature; such | ||||
| monitoring is outside of the scope of operator responsibilities. See | ||||
| monitoring is outside the scope of operator responsibilities. See | ||||
| [configuration reference](reference/cluster_manifest.md) and | ||||
| [administrator documentation](administrator.md) for details on how backups are | ||||
| executed. | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue