Oleksii Kliukin
42dfaaab3f
write pg_hba.conf for the replica initialized from WAL-E. Temporarily use WAL-e always as a mean to create replica for testing purposes.
2015-05-20 11:47:20 +02:00
Oleksii Kliukin
8a6a7b4cea
fix a typo.
2015-05-20 11:47:20 +02:00
Oleksii Kliukin
75b30d8014
save postgresql.conf not only on initdb, but on any start of the server.
2015-05-20 11:47:19 +02:00
Oleksii Kliukin
7a2be131bd
save/restore postgresql.conf for WAL-e backups, since WAL-E excludes postgresql.conf from the backup/restore.
2015-05-20 11:47:19 +02:00
Oleksii Kliukin
d4b366a7e2
some arithmetics and type conversion fixes.
2015-05-20 11:46:27 +02:00
Oleksii Kliukin
594efe3b64
fix a typo.
2015-05-20 11:46:26 +02:00
Oleksii Kliukin
19a04a81da
split arguments for check_output when checking for the latest backup.
2015-05-20 11:46:26 +02:00
Oleksii Kliukin
9e82c3ebd7
add functionality to fetch base backup from wal-e for the new replica creation and code to decide whether to use wal-e or pg_basebackup.
2015-05-20 11:46:26 +02:00
Feike Steenbergen
24c29aee04
Add hostssl entry to pg_hba
2015-05-19 13:03:14 +02:00
Feike Steenbergen
f6fc60800a
Close connection when querying other members of cluster.
2015-05-18 16:54:36 +02:00
Alexander Kukushkin
df855bb8de
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-18 14:39:39 +02:00
Alexander Kukushkin
520de12232
Remove debug print
2015-05-18 14:39:14 +02:00
Alexander Kukushkin
422512880f
last_leader_operation is the propery of Cluster object and the value is set in get_cluster method
2015-05-18 13:43:14 +02:00
Alexander Kukushkin
9a1f0d1bd1
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
...
Conflicts:
helpers/postgresql.py
2015-05-18 13:38:46 +02:00
Alexander Kukushkin
b24fb0488c
last_leader_operation is the propery of Cluster object and the value is set in get_cluster method
2015-05-18 13:33:27 +02:00
Alexander Kukushkin
d221d1de1c
listen_address can have more then one value separated by comma. We will use the first one to connect
2015-05-18 10:53:27 +02:00
Alexander Kukushkin
e997911b8d
Merge branch 'master' of github.com:CyberDem0n/governor
...
Conflicts:
helpers/postgresql.py
2015-05-15 16:21:59 +02:00
Alexander Kukushkin
348100752b
Open connection to self via listen address
2015-05-15 16:18:31 +02:00
Feike Steenbergen
0b669e0d20
Cleanup
...
Removed aws reference from Dockerfile, remove unnecessary steps.
Connect using libpq parameters, therefore providing nice application name for Governor.
2015-05-15 13:52:20 +02:00
Alexander Kukushkin
5ab99c6589
Get rid from all AWS references here.
...
connect_address give possibility to specify listen address and connect
address separetely, so there is no need to determine your external
address by doing requests to amazon api.
2015-05-15 12:39:05 +02:00
Alexander Kukushkin
af9ebfa3b9
Use connect_address instead of listen when building connection_string
2015-05-15 12:20:24 +02:00
Alexander Kukushkin
75ff91d017
rename connection_address to connect_address
2015-05-15 12:13:05 +02:00
Alexander Kukushkin
08865512f8
Differentiate between connection address and listen address
...
For example you can listen on 0.0.0.0 but provide service on some
didicated ip. This should cover all possible use-cases when you are
running behind firewall, load balancer or inside for example docker.
2015-05-15 12:06:04 +02:00
Alexander Kukushkin
2fd81a5135
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-15 11:39:25 +02:00
Alexander Kukushkin
274bc14bfb
Do not check maximum_lag_on_failover if it is not defined in config file
2015-05-15 11:38:50 +02:00
Alexander Kukushkin
8e5beb5883
Small optimization
2015-05-15 11:25:26 +02:00
Alexander Kukushkin
9487aec842
Bugfix: get_client_path might get into infinite loop when response code is not 200
2015-05-15 11:23:02 +02:00
Alexander Kukushkin
e6e19359df
Bugfix, write state_handler.name into leader key
2015-05-13 18:04:27 +02:00
Alexander Kukushkin
0c040b8ce2
Merge branch 'master' of github.com:compose/governor
...
Conflicts:
governor.py
helpers/etcd.py
helpers/ha.py
helpers/postgresql.py
2015-05-13 18:01:01 +02:00
Alexander Kukushkin
b4f0909afa
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-13 17:12:32 +02:00
Alexander Kukushkin
40a4192504
Remove member and leader (is I was the master) keys from etcd on stop of governor
2015-05-13 17:12:17 +02:00
Alexander Kukushkin
3fa0476d8c
Merge branch 'master' of github.com:zalando/governor into features/refactoring
2015-05-13 14:58:54 +02:00
Alexander Kukushkin
b1f43c1461
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
...
Conflicts:
helpers/postgresql.py
2015-05-13 14:57:57 +02:00
Alexander Kukushkin
d25ad17c32
Add support of python3
2015-05-13 14:53:23 +02:00
Christopher Winslett
2c69074652
move stale protection from is_healthy to is_healthiest to allow stale secondaries to rejoin cluster
2015-05-12 18:29:54 -07:00
Christopher Winslett
557bad37cd
ensure a stale Postgres does not become leader
2015-05-12 18:11:12 -07:00
Christopher Winslett
a1bc07db33
use TTLs with member listing to keep a current list of cluster members
2015-05-12 16:33:32 -07:00
Feike Steenbergen
c4168bfeb5
Bugfix: Headers sent before http status for the pg_status page.
2015-05-12 14:56:02 +02:00
Feike Steenbergen
362b6b4fa2
Made healtcheck port configurable, fixed standalone status page.
2015-05-12 14:48:40 +02:00
Feike Steenbergen
ed30684d85
Merge branch 'features/refactoring' of github.com:zalando/governor into feature/status_page
...
Conflicts:
helpers/postgresql.py
2015-05-12 14:39:51 +02:00
Feike Steenbergen
d25fdd41a6
Refactoring of the status page for the healthcheck.
...
Less functions, as the code is readable enough without them.
Always return some content to the client, instead of a response only.
2015-05-12 14:14:20 +02:00
Alexander Kukushkin
17112992d0
Merge branch 'master' of github.com:zalando/governor into features/refactoring
...
Conflicts:
governor.py
2015-05-12 12:24:09 +02:00
Feike Steenbergen
a56b346295
Hardened the health checks and implemented a real status page.
...
For the postgresql helper, hardened the code to get "the" cursor of the postgresql instance.
For the statuspage, a small status json is returned.
To find out what status a PostgreSQL cluster is in we use the cursor (instead of the provided query() function), as the query function does some retrying etc. For the healthcheck we want to simple provide an answer to a simple query, if we have to reconnect, we are not *that* healthy anyway.
Dropped catching exceptions in the do_GET block, as the HTTPServer will do that nicely for us anyway.
2015-05-12 11:58:47 +02:00
Alexander Kukushkin
e21e896852
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-12 11:08:33 +02:00
Alexander Kukushkin
281b0b8455
Bugfix in has_lock: sometimes leader can be undefined
2015-05-12 11:07:52 +02:00
Alexander Kukushkin
9dcbc75fd2
Bugfix. It wasn't possible to start the old cluster if all its members were shutdown.
...
Basically this is rollback to the original decision tree with the small exception:
1 - If leader is defined and it's not me - then slave would be started immidiately
with the correct recovery conf.
2 - If leader is defined in and it's my host, then it will start instance in
readonly (but without primary_conninfo in recovery.conf)
3 - And the third case - if the leader is not defined - it also will start
instance in readonly, without primary_conninfo.
After performing 2 or 3 it will perform usual decision tree.
2015-05-12 10:19:45 +02:00
Alexander Kukushkin
41942ee722
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-12 09:09:49 +02:00
Alexander Kukushkin
be7677a1b8
Bugfix, hostname and address are not keys of dict but properties of Member object
2015-05-12 09:08:45 +02:00
Alexander Kukushkin
1370923e84
Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
2015-05-11 16:58:26 +02:00
Alexander Kukushkin
e2faf641d5
Start slave with the correct recovery.conf on governor start
...
Also governor is able to pick up already running master and slave
instances without restarting them.
In case is you have a lock and postgres is not running behaviour remains
the same: it will start master in read only mode and then promote if it
still has the lock.
2015-05-11 16:50:21 +02:00