From e30755ddeb2123b8870cc3aa54866f24f1a662a3 Mon Sep 17 00:00:00 2001 From: Lauri at Zalando Date: Mon, 30 May 2016 14:41:56 +0200 Subject: [PATCH] Update SETTINGS.rst --- SETTINGS.rst | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/SETTINGS.rst b/SETTINGS.rst index bd602104..add2433e 100644 --- a/SETTINGS.rst +++ b/SETTINGS.rst @@ -2,6 +2,54 @@ YAML Configuration Settings =========================== -- *loop\_wait*: the number of seconds the loop will sleep. -- *ttl*: the TTL to acquire the leader lock. Think of it as the length of time before initiation of the automatic failover process. +Global/Universal +---------------- +- **loop\_wait**: the number of seconds the loop will sleep. +- **(ttl**: the TTL to acquire the leader lock. Think of it as the length of time before initiation of the automatic failover process. + +Consul +------ +- **host**: the host:port for the Consul endpoint. +- **scope**: the relative path used on Consul's HTTP API for this deployment; makes it possible to run multiple HA deployments from a single Consul cluster. +- **ttl**: the TTL to acquire the leader lock. Think of it as the length of time before initiation of the automatic failover process. + +etcd +---- +- **host**: the host:port for the etcd endpoint. +- **scope**: the relative path used on etcd's HTTP API for this deployment. Makes it possible to run multiple HA deployments from a single etcd cluster. +- **ttl**: the TTL to acquire the leader lock. Think of it as the length of time before initiation of the automatic failover process. + +PostgreSQL +--------------- +- **admin**: + - **password**: admin password; user is created during initialization. + - **username**: admin username; user is created during initialization. It will have CREATEDB and CREATEROLE privileges. +- **callbacks**: callback scripts to run on certain actions. Patroni will pass the action, role and cluster name. (See scripts/aws.py as an example of how to write them.) + - **on\_reload**: run this script when configuration reload is triggered. + - **on\_restart**: run this script when the cluster restarts. + - **on\_role\_change**: run this script when the cluster is being promoted or demoted. + - **on\_start**: run this script when the cluster starts. + - **on\_stop**: run this script when the cluster stops. +- **connect\_address**: IP address + port through which Postgres is accessible from other nodes and applications. +- **create\_replica\_methods**: an ordered list of the create methods for turning a Patroni node into a new replica. "basebackup" is the default method; other methods are assumed to refer to scripts, each of which is configured as its own config item. +- **data\_dir**: file path to initialize and store Postgres data files. +- **initdb**: List options to be passed on to initdb. +- **data-checksums**: Must be enabled when pg_rewind is needed on 9.3. +- **encoding**: default encoding for new databases. +- **locale**: default locale for new databases. +- **listen**: IP address + port that Postgres listens to; must be accessible from other nodes in the cluster, if you're using streaming replication. Multiple comma-separated addresses are permitted, as long as the port component is appended after to the last one with a colon, i.e. ``listen: 127.0.0.1,127.0.0.2:5432``. Patroni will use the first address from this list to establish local connections to the PostgreSQL node. +- **maximum\_lag\_on\_failover**: the maximum bytes a follower may lag. +- **name**: the name of the Postgres host. Must be unique for the cluster. +- **pg\_hba**: list of lines that you should add to pg\_hba.conf. + - **- host all all 0.0.0.0/0 md5**. + - **- host replication replicator 127.0.0.1/32 md5**: A line like this is required for replication. +- **recovery\_conf**: additional configuration settings written to recovery.conf when configuring follower. + - **parameters**: list of configuration settings for Postgres. Many of these are required for replication to work. +- **replica\_method** for each create_replica_method other than basebackup, you would add a configuration section of the same name. At a minimum, this should include "command" with a full path to the actual script to be executed. Other configuration parameters will be passed along to the script in the form "parameter=value". +- **replication**: + - **username**: replication username; user will be created during initialization. + - **password**: replication password; user will be created during initialization. +- **use\_slots**: whether or not to use replication_slots. Must be False for PostgreSQL 9.3. You should comment out max_replication_slots before it becomes ineligible for leader status. +- **superuser**: + - **password**: password for the Postgres user, set during initialization.