diff --git a/.travis.yml b/.travis.yml index cb0b727a..dc8d9c53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## sudo: required @@ -11,6 +11,33 @@ services: jobs: include: + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.6_pgpool-3.7_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.6_pgpool-3.7_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.6_pgpool-3.6_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.6_pgpool-3.6_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.6_pgpool-3.3_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.6_pgpool-3.3_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.5_pgpool-3.7_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.5_pgpool-3.7_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.5_pgpool-3.6_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.5_pgpool-3.6_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-9.5_pgpool-3.3_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-9.5_pgpool-3.3_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-10.2_pgpool-3.7_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-10.2_pgpool-3.7_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-10.2_pgpool-3.6_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-10.2_pgpool-3.6_barman-2.3 + - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-extended-10.2_pgpool-3.3_barman-2.3 ./tests/run.sh + env: + - NAME = postgres-extended-10.2_pgpool-3.3_barman-2.3 - script: NO_COLOURS=1 DEBUG=1 TEST_COMBINATIONS=postgres-9.6_pgpool-3.7_barman-2.3 ./tests/run.sh env: - NAME = postgres-9.6_pgpool-3.7_barman-2.3 diff --git a/docker-compose/postgres-10.2_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-10.2_pgpool-3.3_barman-2.3.yml index 3ea8ea97..5a9b3040 100644 --- a/docker-compose/postgres-10.2_pgpool-3.3_barman-2.3.yml +++ b/docker-compose/postgres-10.2_pgpool-3.3_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-10.2_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-10.2_pgpool-3.6_barman-2.3.yml index fb3d9d9e..e522438b 100644 --- a/docker-compose/postgres-10.2_pgpool-3.6_barman-2.3.yml +++ b/docker-compose/postgres-10.2_pgpool-3.6_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-10.2_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-10.2_pgpool-3.7_barman-2.3.yml index f9a3b14e..e9613c2d 100644 --- a/docker-compose/postgres-10.2_pgpool-3.7_barman-2.3.yml +++ b/docker-compose/postgres-10.2_pgpool-3.7_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.5_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-9.5_pgpool-3.3_barman-2.3.yml index c9058072..ae0d3024 100644 --- a/docker-compose/postgres-9.5_pgpool-3.3_barman-2.3.yml +++ b/docker-compose/postgres-9.5_pgpool-3.3_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.5_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-9.5_pgpool-3.6_barman-2.3.yml index e3b34d05..4aeb923f 100644 --- a/docker-compose/postgres-9.5_pgpool-3.6_barman-2.3.yml +++ b/docker-compose/postgres-9.5_pgpool-3.6_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.5_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-9.5_pgpool-3.7_barman-2.3.yml index 5fe77594..c4e8d28b 100644 --- a/docker-compose/postgres-9.5_pgpool-3.7_barman-2.3.yml +++ b/docker-compose/postgres-9.5_pgpool-3.7_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.6_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-9.6_pgpool-3.3_barman-2.3.yml index a256d370..ee66d8d6 100644 --- a/docker-compose/postgres-9.6_pgpool-3.3_barman-2.3.yml +++ b/docker-compose/postgres-9.6_pgpool-3.3_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.6_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-9.6_pgpool-3.6_barman-2.3.yml index c7d2036c..28b75d90 100644 --- a/docker-compose/postgres-9.6_pgpool-3.6_barman-2.3.yml +++ b/docker-compose/postgres-9.6_pgpool-3.6_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-9.6_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-9.6_pgpool-3.7_barman-2.3.yml index a0cb0f86..0bb54717 100644 --- a/docker-compose/postgres-9.6_pgpool-3.7_barman-2.3.yml +++ b/docker-compose/postgres-9.6_pgpool-3.7_barman-2.3.yml @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## version: '2' @@ -37,7 +37,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -67,6 +68,7 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "max_replication_slots:10" #some overrides ports: - 5441:5432 @@ -89,6 +91,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5442:5432 volumes: @@ -112,6 +116,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5443:5432 volumes: @@ -132,6 +138,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'" ports: - 5444:5432 volumes: @@ -253,7 +261,7 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - + CONFIGS_DELIMITER_SYMBOL: ; CONFIGS: "listen_addresses:'*'" ports: - 5439:5432 diff --git a/docker-compose/postgres-extended-10.2_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-extended-10.2_pgpool-3.3_barman-2.3.yml new file mode 100644 index 00000000..e64896f9 --- /dev/null +++ b/docker-compose/postgres-extended-10.2_pgpool-3.3_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-10.2.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-10.2.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-10.2_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-extended-10.2_pgpool-3.6_barman-2.3.yml new file mode 100644 index 00000000..d8664134 --- /dev/null +++ b/docker-compose/postgres-extended-10.2_pgpool-3.6_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-10.2.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-10.2.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-10.2_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-extended-10.2_pgpool-3.7_barman-2.3.yml new file mode 100644 index 00000000..ea863a81 --- /dev/null +++ b/docker-compose/postgres-extended-10.2_pgpool-3.7_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-10.2.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-10.2.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-10.2-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-10.2.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.5_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-extended-9.5_pgpool-3.3_barman-2.3.yml new file mode 100644 index 00000000..6def99de --- /dev/null +++ b/docker-compose/postgres-extended-9.5_pgpool-3.3_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.5_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-extended-9.5_pgpool-3.6_barman-2.3.yml new file mode 100644 index 00000000..5ca02d64 --- /dev/null +++ b/docker-compose/postgres-extended-9.5_pgpool-3.6_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.5_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-extended-9.5_pgpool-3.7_barman-2.3.yml new file mode 100644 index 00000000..07e78dd7 --- /dev/null +++ b/docker-compose/postgres-extended-9.5_pgpool-3.7_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.5-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.6_pgpool-3.3_barman-2.3.yml b/docker-compose/postgres-extended-9.6_pgpool-3.3_barman-2.3.yml new file mode 100644 index 00000000..7931b698 --- /dev/null +++ b/docker-compose/postgres-extended-9.6_pgpool-3.3_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.3-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.6_pgpool-3.6_barman-2.3.yml b/docker-compose/postgres-extended-9.6_pgpool-3.6_barman-2.3.yml new file mode 100644 index 00000000..0ac73979 --- /dev/null +++ b/docker-compose/postgres-extended-9.6_pgpool-3.6_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.6-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/docker-compose/postgres-extended-9.6_pgpool-3.7_barman-2.3.yml b/docker-compose/postgres-extended-9.6_pgpool-3.7_barman-2.3.yml new file mode 100644 index 00000000..4f4be0dd --- /dev/null +++ b/docker-compose/postgres-extended-9.6_pgpool-3.7_barman-2.3.yml @@ -0,0 +1,295 @@ + +########################################################################## +## AUTO-GENERATED FILE ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## +########################################################################## + +version: '2' +networks: + cluster: + driver: bridge + +volumes: + pgmaster: + pgslave1: + pgslave2: + pgslave3: + pgslave4: + backup: + +services: + pgmaster: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) + NODE_NAME: node1 # Node name + CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster # That should be ignored on the same node + + NODE_PRIORITY: 100 # (default: 100) + SSH_ENABLE: 1 + #database we want to use for application + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5;shared_preload_libraries:'pglogical'" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + #defaults: + CLUSTER_NAME: pg_cluster # default is pg_cluster + REPLICATION_DB: replication_db # default is replication_db + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + + ports: + - 5422:5432 + volumes: + - pgmaster:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgmaster +#<<< Branch 1 + pgslave1: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 2 + NODE_NAME: node2 + CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10;shared_preload_libraries:'pglogical'" #some overrides + ports: + - 5441:5432 + volumes: + - pgslave1:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave1 + + # Add more slaves if required + pgslave2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 3 + NODE_NAME: node3 + CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5442:5432 + volumes: + - pgslave2:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave2 +#>>> Branch 1 +#<<< Branch 2 + pgslave3: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 4 + NODE_NAME: node4 + CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostname of the node) + + PARTNER_NODES: "pgmaster,pgslave1,pgslave3" + REPLICATION_PRIMARY_HOST: pgmaster + NODE_PRIORITY: 200 # (default: 100) + CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5443:5432 + volumes: + - pgslave3:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave3 + + pgslave4: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 5 + NODE_NAME: node5 + CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostname of the node) + + REPLICATION_PRIMARY_HOST: pgslave3 + #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5444:5432 + volumes: + - pgslave4:/var/lib/postgresql/data + networks: + cluster: + aliases: + - pgslave4 +#>>> Branch 2 + backup: + build: + context: ../src + dockerfile: Barman-2.3-Postgres-9.6.Dockerfile + environment: + REPLICATION_USER: replication_user # default is replication_user + REPLICATION_PASSWORD: replication_pass # default is replication_pass + REPLICATION_HOST: pgmaster + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + SSH_ENABLE: 1 + BACKUP_SCHEDULE: "*/30 */5 * * *" + volumes: + - backup:/var/backups + networks: + cluster: + aliases: + - backup + pgpool: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + WAIT_BACKEND_TIMEOUT: 60 + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + SSH_ENABLE: 1 + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,3:pgslave3::::,2:pgslave2::::" #,4:pgslaveDOES_NOT_EXIST:::: + # in format num:host:port:weight:data_directory:flag[,...] + # defaults: + # port: 5432 + # weight: 1 + # data_directory: /var/lib/postgresql/data + # flag: ALLOW_TO_FAILOVER + REQUIRE_MIN_BACKENDS: 3 # minimal number of backends to start pgpool (some might be unreachable) + CONFIGS: "num_init_children:250,max_pool:4" + # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: + # used for pgpool.conf file + ports: + - 5430:5432 + - 9898:9898 # PCP + networks: + cluster: + aliases: + - pgpool +# the rest is for tests + postgres_ext: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_ID: 101 + NODE_NAME: node101 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_ext # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + postgres_conf: + build: + context: ../src/ + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + NODE_NAME: node-102 # Node name + CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CLEAN_OVER_REWIND: 0 + CONFIGS: "listen_addresses)'some_host'|max_replication_slots)55" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + pgpool_conf: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + CONFIGS: "num_init_children)12|max_pool)13" + CONFIGS_DELIMITER_SYMBOL: "|" + CONFIGS_ASSIGNMENT_SYMBOL: ")" + ports: + - 5440:5432 + - 9897:9898 # PCP + pgmaster2: + build: + context: ../src + dockerfile: Postgres-extended-9.6-Repmgr-3.2.Dockerfile + environment: + + NODE_ID: 1 + NODE_NAME: node1 + CLUSTER_NODE_NETWORK_NAME: pgmaster2 + + POSTGRES_PASSWORD: monkey_pass + POSTGRES_USER: monkey_user + POSTGRES_DB: monkey_db + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';shared_preload_libraries:'pglogical'" + ports: + - 5439:5432 + networks: + cluster: + aliases: + - pgmaster2 + pgpool2: + build: + context: ../src + dockerfile: Pgpool-3.7-Postgres-9.6.Dockerfile + depends_on: + - pgmaster + - pgmaster2 + environment: + PCP_USER: pcp_user + PCP_PASSWORD: pcp_pass + + CHECK_USER: monkey_user + CHECK_PASSWORD: monkey_pass + CHECK_PGCONNECT_TIMEOUT: 3 #timout for checking if primary node is healthy + + DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]] + BACKENDS: "0:pgmaster::::,1:pgmaster2::::" + ports: + - 5431:5432 + - 9899:9898 # PCP + networks: + cluster: + aliases: + - pgpool2 \ No newline at end of file diff --git a/make/docker-compose/make.sh b/make/docker-compose/make.sh index 7e1a89ff..a2ffbb3f 100644 --- a/make/docker-compose/make.sh +++ b/make/docker-compose/make.sh @@ -2,22 +2,27 @@ echo ">>> Making docker-compose" FILE_FROM='./src/includes/docker-compose/docker-compose.yml' for POSTGRES_VERSION in 9.5 9.6 10.2; do - for REPMGR_VERSION in 3.2; do - for PGPOOL_VERSION in 3.3 3.6 3.7; do - for BARMAN_VERSION in 2.3; do - # For postgres 9.5 we can use client 9.6 - if [[ "$POSTGRES_VERSION" = "9.5" ]];then - PGPOOL_POSTGRES_CLIENT_VERSION="9.6" - BARMAN_POSTGRES_CLIENT_VERSION="9.6" - else - PGPOOL_POSTGRES_CLIENT_VERSION="$POSTGRES_VERSION" - BARMAN_POSTGRES_CLIENT_VERSION="$POSTGRES_VERSION" - fi - - VALS="POSTGRES_VERSION=$POSTGRES_VERSION PGPOOL_VERSION=$PGPOOL_VERSION BARMAN_VERSION=$BARMAN_VERSION REPMGR_VERSION=$REPMGR_VERSION PGPOOL_POSTGRES_CLIENT_VERSION=$PGPOOL_POSTGRES_CLIENT_VERSION BARMAN_POSTGRES_CLIENT_VERSION=$BARMAN_POSTGRES_CLIENT_VERSION" - - FILE_TO="./docker-compose/postgres-${POSTGRES_VERSION}_pgpool-${PGPOOL_VERSION}_barman-${BARMAN_VERSION}.yml" - template $FILE_FROM $FILE_TO $VALS + for POSTGRES_EXTENDED in '' '1'; do + for REPMGR_VERSION in 3.2; do + for PGPOOL_VERSION in 3.3 3.6 3.7; do + for BARMAN_VERSION in 2.3; do + # For postgres 9.5 we can use client 9.6 + if [[ "$POSTGRES_VERSION" = "9.5" ]];then + PGPOOL_POSTGRES_CLIENT_VERSION="9.6" + BARMAN_POSTGRES_CLIENT_VERSION="9.6" + else + PGPOOL_POSTGRES_CLIENT_VERSION="$POSTGRES_VERSION" + BARMAN_POSTGRES_CLIENT_VERSION="$POSTGRES_VERSION" + fi + FILE_EXTENDED_SUFFIX="" + if [[ "$POSTGRES_EXTENDED" == "1" ]];then + FILE_EXTENDED_SUFFIX="-extended" + fi + VALS="POSTGRES_EXTENDED=$POSTGRES_EXTENDED FILE_EXTENDED_SUFFIX=$FILE_EXTENDED_SUFFIX POSTGRES_VERSION=$POSTGRES_VERSION PGPOOL_VERSION=$PGPOOL_VERSION BARMAN_VERSION=$BARMAN_VERSION REPMGR_VERSION=$REPMGR_VERSION PGPOOL_POSTGRES_CLIENT_VERSION=$PGPOOL_POSTGRES_CLIENT_VERSION BARMAN_POSTGRES_CLIENT_VERSION=$BARMAN_POSTGRES_CLIENT_VERSION" + + FILE_TO="./docker-compose/postgres${FILE_EXTENDED_SUFFIX}-${POSTGRES_VERSION}_pgpool-${PGPOOL_VERSION}_barman-${BARMAN_VERSION}.yml" + template $FILE_FROM $FILE_TO $VALS + done done done done diff --git a/src/Barman-2.3-Postgres-10.2.Dockerfile b/src/Barman-2.3-Postgres-10.2.Dockerfile index ac99e08d..aeb901cf 100644 --- a/src/Barman-2.3-Postgres-10.2.Dockerfile +++ b/src/Barman-2.3-Postgres-10.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM golang:1.8-jessie diff --git a/src/Barman-2.3-Postgres-9.6.Dockerfile b/src/Barman-2.3-Postgres-9.6.Dockerfile index 65a22313..e87d8952 100644 --- a/src/Barman-2.3-Postgres-9.6.Dockerfile +++ b/src/Barman-2.3-Postgres-9.6.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM golang:1.8-jessie diff --git a/src/Pgpool-3.3-Postgres-10.2.Dockerfile b/src/Pgpool-3.3-Postgres-10.2.Dockerfile index b94343f8..2f8b963a 100644 --- a/src/Pgpool-3.3-Postgres-10.2.Dockerfile +++ b/src/Pgpool-3.3-Postgres-10.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Pgpool-3.3-Postgres-9.6.Dockerfile b/src/Pgpool-3.3-Postgres-9.6.Dockerfile index b8ab03d6..48d1badf 100644 --- a/src/Pgpool-3.3-Postgres-9.6.Dockerfile +++ b/src/Pgpool-3.3-Postgres-9.6.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Pgpool-3.6-Postgres-10.2.Dockerfile b/src/Pgpool-3.6-Postgres-10.2.Dockerfile index 5e56a0d0..e46b4e41 100644 --- a/src/Pgpool-3.6-Postgres-10.2.Dockerfile +++ b/src/Pgpool-3.6-Postgres-10.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Pgpool-3.6-Postgres-9.6.Dockerfile b/src/Pgpool-3.6-Postgres-9.6.Dockerfile index f99d19de..44031141 100644 --- a/src/Pgpool-3.6-Postgres-9.6.Dockerfile +++ b/src/Pgpool-3.6-Postgres-9.6.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Pgpool-3.7-Postgres-10.2.Dockerfile b/src/Pgpool-3.7-Postgres-10.2.Dockerfile index 59b9a395..730d929a 100644 --- a/src/Pgpool-3.7-Postgres-10.2.Dockerfile +++ b/src/Pgpool-3.7-Postgres-10.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Pgpool-3.7-Postgres-9.6.Dockerfile b/src/Pgpool-3.7-Postgres-9.6.Dockerfile index 86f6f0cb..71b0fab1 100644 --- a/src/Pgpool-3.7-Postgres-9.6.Dockerfile +++ b/src/Pgpool-3.7-Postgres-9.6.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM debian:jessie diff --git a/src/Postgres-10.2-Repmgr-3.2.Dockerfile b/src/Postgres-10.2-Repmgr-3.2.Dockerfile index d3890861..0a65edc6 100644 --- a/src/Postgres-10.2-Repmgr-3.2.Dockerfile +++ b/src/Postgres-10.2-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:10.2 diff --git a/src/Postgres-9.5-Repmgr-3.2.Dockerfile b/src/Postgres-9.5-Repmgr-3.2.Dockerfile index 556f6254..303a172b 100644 --- a/src/Postgres-9.5-Repmgr-3.2.Dockerfile +++ b/src/Postgres-9.5-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:9.5 diff --git a/src/Postgres-9.6-Repmgr-3.2.Dockerfile b/src/Postgres-9.6-Repmgr-3.2.Dockerfile index d63fdda3..ac68ad4c 100644 --- a/src/Postgres-9.6-Repmgr-3.2.Dockerfile +++ b/src/Postgres-9.6-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:9.6 diff --git a/src/Postgres-extended-10.2-Repmgr-3.2.Dockerfile b/src/Postgres-extended-10.2-Repmgr-3.2.Dockerfile index f9c9f9f4..e0b9f5d1 100644 --- a/src/Postgres-extended-10.2-Repmgr-3.2.Dockerfile +++ b/src/Postgres-extended-10.2-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:10.2 diff --git a/src/Postgres-extended-9.5-Repmgr-3.2.Dockerfile b/src/Postgres-extended-9.5-Repmgr-3.2.Dockerfile index b4ff75a7..14afd4d8 100644 --- a/src/Postgres-extended-9.5-Repmgr-3.2.Dockerfile +++ b/src/Postgres-extended-9.5-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:9.5 diff --git a/src/Postgres-extended-9.6-Repmgr-3.2.Dockerfile b/src/Postgres-extended-9.6-Repmgr-3.2.Dockerfile index a59e122f..c40f5c89 100644 --- a/src/Postgres-extended-9.6-Repmgr-3.2.Dockerfile +++ b/src/Postgres-extended-9.6-Repmgr-3.2.Dockerfile @@ -1,7 +1,7 @@ ########################################################################## ## AUTO-GENERATED FILE ## -## BUILD_NUMBER=Fri Mar 9 16:56:10 +07 2018 ## +## BUILD_NUMBER=Fri Mar 9 17:48:14 +07 2018 ## ########################################################################## FROM postgres:9.6 diff --git a/src/includes/docker-compose/docker-compose.yml b/src/includes/docker-compose/docker-compose.yml index 5852be34..00b4c945 100644 --- a/src/includes/docker-compose/docker-compose.yml +++ b/src/includes/docker-compose/docker-compose.yml @@ -15,7 +15,7 @@ services: pgmaster: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 1 # Integer number of node (not required if can be extracted from NODE_NAME var, e.g. node-45 => 1045) NODE_NAME: node1 # Node name @@ -31,7 +31,8 @@ services: POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db CLEAN_OVER_REWIND: 0 - CONFIGS: "listen_addresses:'*',max_replication_slots:5" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*';max_replication_slots:5{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" # in format variable1:value1[,variable2:value2[,...]] if CONFIGS_DELIMITER_SYMBOL=, and CONFIGS_ASSIGNMENT_SYMBOL=: # used for pgpool.conf file #defaults: @@ -52,7 +53,7 @@ services: pgslave1: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 2 NODE_NAME: node2 @@ -61,7 +62,8 @@ services: PARTNER_NODES: "pgmaster,pgslave1,pgslave3" REPLICATION_PRIMARY_HOST: pgmaster CLEAN_OVER_REWIND: 1 - CONFIGS: "max_replication_slots:10" #some overrides + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "max_replication_slots:10{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" #some overrides ports: - 5441:5432 volumes: @@ -75,7 +77,7 @@ services: pgslave2: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 3 NODE_NAME: node3 @@ -83,6 +85,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" ports: - 5442:5432 volumes: @@ -96,7 +100,7 @@ services: pgslave3: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 4 NODE_NAME: node4 @@ -106,6 +110,8 @@ services: REPLICATION_PRIMARY_HOST: pgmaster NODE_PRIORITY: 200 # (default: 100) CLEAN_OVER_REWIND: 1 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" ports: - 5443:5432 volumes: @@ -118,7 +124,7 @@ services: pgslave4: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 5 NODE_NAME: node5 @@ -126,6 +132,8 @@ services: REPLICATION_PRIMARY_HOST: pgslave3 #USE_REPLICATION_SLOTS: 0 + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" ports: - 5444:5432 volumes: @@ -204,7 +212,7 @@ services: postgres_conf: build: context: ../src/ - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_NAME: node-102 # Node name CLUSTER_NODE_NETWORK_NAME: postgres_conf # (default: hostname of the node) @@ -237,7 +245,7 @@ services: pgmaster2: build: context: ../src - dockerfile: Postgres-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile + dockerfile: Postgres{{#POSTGRES_EXTENDED}}{{FILE_EXTENDED_SUFFIX}}{{/POSTGRES_EXTENDED}}-{{ POSTGRES_VERSION }}-Repmgr-{{ REPMGR_VERSION }}.Dockerfile environment: NODE_ID: 1 @@ -247,8 +255,8 @@ services: POSTGRES_PASSWORD: monkey_pass POSTGRES_USER: monkey_user POSTGRES_DB: monkey_db - - CONFIGS: "listen_addresses:'*'" + CONFIGS_DELIMITER_SYMBOL: ; + CONFIGS: "listen_addresses:'*'{{#POSTGRES_EXTENDED}};shared_preload_libraries:'pglogical'{{/POSTGRES_EXTENDED}}" ports: - 5439:5432 networks: