Commit Graph
55 Commits
Author SHA1 Message Date
Feike Steenbergen b8ce6794de Initialize cluster with encoding=UTF8 by default. 2015-05-18 13:35:43 +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 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 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
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 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 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 eb1721f65f Minimize amount of requests to etcd 2015-05-11 15:15:08 +02:00
Alexander Kukushkin 42d9c08c37 Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring 2015-05-11 10:06:29 +02:00
Alexander Kukushkin 6d17d39776 Backport from compose/governor: compare xlog positions based on bytes since 0/000000 based on feedback 2015-05-11 10:06:18 +02:00
Alexander Kukushkin b3d6997289 Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring 2015-05-11 09:54:28 +02:00
Alexander Kukushkin 2e3eb333cb Shutdown fast 2015-05-11 09:48:59 +02:00
Alexander Kukushkin 0b288a7f3e Track list of already existing physical replication slots
Drop replication slot when it was removed from etcd.
Execute pg_create_physical_replication_slot only when something new appeared in etcd.
2015-05-11 09:48:15 +02:00
Christopher Winslett 36c4c31e83 compare xlog positions based on bytes since 0/000000 based on feedback 2015-05-10 19:36:59 -07:00
Alexander Kukushkin db7a38f025 Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring 2015-05-08 16:33:41 +02:00
Alexander Kukushkin 3a6afe5a9b Set environment variable PGPASSFILE via os.environ before running pg_basebackup and unset it afterwards 2015-05-08 16:32:57 +02:00
Alexander Kukushkin d9f3b232c5 Merge branch 'master' of github.com:CyberDem0n/governor into features/refactoring
Conflicts:
	helpers/postgresql.py
2015-05-08 13:36:49 +02:00
Alexander Kukushkin 61f0cb2fb4 dempote and follow_the_leader have the same functionality
Now methods supporting the case when leader is not defined. There would
be no primary_conninfo in recovery.conf. I like it more comparing to
postgres://169.0.0.1:5432
2015-05-08 12:28:00 +02:00
Alexander Kukushkin 40b20ce5d7 Start postmaster and run initdb with pg_ctl
It will wait utill postgres started up and helps to get rid from magic time.sleep(5) in start method.
2015-05-06 18:26:28 +02:00
Alexander Kukushkin 2fd1614144 query method now allow to execute sql with parameters 2015-05-06 17:52:39 +02:00
Alexander Kukushkin 1d5f3b1fff Do not write primary_conninfo into recovery.conf during start 2015-05-06 16:21:49 +02:00
Alexander Kukushkin 0c776f5d86 Small bugfixes 2015-05-06 14:11:37 +02:00
Alexander Kukushkin e108fec30a Try to replace % formatting with .format() 2015-05-06 13:48:16 +02:00
Alexander Kukushkin 6f3476a924 Try to replace % formatting with .format() 2015-05-06 13:09:11 +02:00
Alexander Kukushkin 5fc770a370 Got rid of unneeded calls of os.system 2015-05-06 12:38:18 +02:00
Alexander Kukushkin 4e786c1519 Format code according to pep8 2015-05-06 12:12:37 +02:00
Oleksii Kliukin 39667f6e92 allow connections for all hosts and ports, not just postgres. 2015-04-30 12:11:46 +02:00
Oleksii Kliukin 221ba39c0f Remove WITH invokations from CREATE ROLE. 2015-04-30 12:04:57 +02:00
Oleksii Kliukin e8345e5e90 fix a typo. 2015-04-30 11:56:13 +02:00
Oleksii Kliukin 10dbf990f1 Allow md5 connections from outside and create connection roles.
Create a superuser role with a given name and password (or change
the postgres role if the name is not given). Also, create an admin
role with the name and the password provided. The admin role has
CREATEDB and CREATEROLE permisssions, effectively making it the
most powerful role after the superuser.
2015-04-30 10:58:07 +02:00
Oleksii Kliukin 8184efbf45 Add an option to use AWS instance address in a PostgreSQL connection string.
When PostgreSQL is running inside the docker container, it should provide
the address of the host it's running on and not the address from inside
of the container to the outside world.
2015-04-29 12:54:29 +02:00
Anthony ScalisiandChristopher Winslett 5facf8638e support multiple recovery params 2015-04-24 13:42:18 -05:00
Oleksii Kliukin c3ea0ebccd use samehost instead of the host's ip address. 2015-04-24 18:06:20 +02:00
Oleksii Kliukin 60db8d6adb Allow connections to the host's own IP address from the host itself. 2015-04-24 16:23:38 +02:00
Christopher Grim b979c12c9d Use timestamped logs 2015-04-03 17:27:47 -04:00