Skip to content

Commit 0abdba4

Browse files
authored
Merge pull request #38 from cybertec-postgresql/upgrade_fixes
Cleanup Dockerfile, Update Makefile and Upgrade fixes
2 parents 5a80cde + d200dba commit 0abdba4

File tree

4 files changed

+13
-16
lines changed

4 files changed

+13
-16
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ BUILD ?= 1
1717
ARCH ?= amd64
1818
IMAGE_TAG ?= $(BASEOS)-$(PGVERSION_FULL)-$(BUILD)
1919
POSTGIS_IMAGE_TAG ?= $(BASEOS)-$(PGVERSION_FULL)-$(POSTGIS_VERSION)-$(BUILD)
20+
ARCH ?= amd64
2021

2122
# Settings for the Build-Process
2223
BUILDWITH ?= docker
@@ -78,7 +79,7 @@ postgres-build:
7879
--build-arg PATRONI_VERSION=$(PATRONI_VERSION) \
7980
--build-arg OLD_PG_VERSIONS="$(OLD_PG_VERSIONS)" \
8081
--build-arg PGVERSION=$(PGVERSION) \
81-
--build-arg ARCH=$(ARCH)
82+
--build-arg ARCH=$(ARCH)
8283

8384
postgres: postgres-build
8485

docker/postgres/Dockerfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@ RUN ${PACKAGER} -y update && ${PACKAGER} -y install --nodocs --noplugins --setop
6060
&& ${PACKAGER} -y clean all;
6161

6262
# install etcdctl
63-
RUN ETCDVERSION=3.5.13 && ARCH=amd64 \
64-
&& curl -L https://github.com/coreos/etcd/releases/download/v${ETCDVERSION}/etcd-v${ETCDVERSION}-linux-${ARCH}.tar.gz \
65-
| tar xf -C /bin --strip=1 --wildcards --no-anchored --no-same-owner etcdctl etcd;
63+
RUN ETCDVERSION=3.5.1 \
64+
&& curl -L https://github.com/coreos/etcd/releases/download/v${ETCDVERSION}/etcd-v${ETCDVERSION}-linux-${ARCH}.tar.gz | tar xz -C /bin --strip=1 --wildcards --no-anchored --no-same-owner etcdctl etcd;
6665

6766
ENV PATHBACKUP = $PATH
6867

major_upgrade/inplace_upgrade.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from collections import defaultdict
1515
from threading import Thread
1616
from multiprocessing.pool import ThreadPool
17+
from patroni import global_config
1718

1819
logger = logging.getLogger(__name__)
1920

@@ -130,12 +131,11 @@ def check_patroni_api(self, member):
130131
return logger.error('API request to %s name failed: %r', member.name, e)
131132

132133
def toggle_pause(self, paused):
133-
from patroni.config import get_global_config
134134
from patroni.utils import polling_loop
135135

136136
cluster = self.dcs.get_cluster()
137137
config = cluster.config.data.copy()
138-
if get_global_config(cluster).is_paused == paused:
138+
if global_config.from_cluster(cluster).is_paused == paused:
139139
return logger.error('Cluster is %spaused, can not continue', ('' if paused else 'not '))
140140

141141
config['pause'] = paused
@@ -203,15 +203,13 @@ def ensure_replica_state(member):
203203
return all(ensure_replica_state(member) for member in cluster.members if member.name != self.postgresql.name)
204204

205205
def sanity_checks(self, cluster):
206-
from patroni.config import get_global_config
207-
208206
if not cluster.initialize:
209207
return logger.error('Upgrade can not be triggered because the cluster is not initialized')
210208

211209
if len(cluster.members) != self.replica_count:
212210
return logger.error('Upgrade can not be triggered because the number of replicas does not match (%s != %s)',
213211
len(cluster.members), self.replica_count)
214-
if get_global_config(cluster).is_paused:
212+
if global_config.from_cluster(cluster).is_paused:
215213
return logger.error('Upgrade can not be triggered because Patroni is in maintenance mode')
216214

217215
lock_owner = cluster.leader and cluster.leader.name
@@ -490,7 +488,7 @@ def do_upgrade(self):
490488
self.cluster_version, self.desired_version)
491489
return True
492490

493-
if not (self.postgresql.is_running() and self.postgresql.is_leader()):
491+
if not (self.postgresql.is_running() and self.postgresql.is_primary()):
494492
return logger.error('PostgreSQL is not running or in recovery')
495493

496494
cluster = self.dcs.get_cluster()

major_upgrade/pg_upgrade.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
class _PostgresqlUpgrade(Postgresql):
1313

14-
_INCOMPATIBLE_EXTENSIONS = ('amcheck_next', 'pg_repack',)
14+
_INCOMPATIBLE_EXTENSIONS = ('pgaudit',)
1515

1616
def adjust_shared_preload_libraries(self, version):
1717
from spilo_commons import adjust_extensions
@@ -58,7 +58,7 @@ def set_bin_dir(self, version):
5858

5959
@property
6060
def local_conn_kwargs(self):
61-
conn_kwargs = self.config.local_connect_kwargs
61+
conn_kwargs = self.connection_pool.conn_kwargs
6262
conn_kwargs['options'] = '-c synchronous_commit=local -c statement_timeout=0 -c search_path='
6363
conn_kwargs.pop('connect_timeout', None)
6464
return conn_kwargs
@@ -71,7 +71,6 @@ def drop_possibly_incompatible_extensions(self):
7171

7272
logger.info('Dropping extensions from the cluster which could be incompatible')
7373
conn_kwargs = self.local_conn_kwargs
74-
7574
for d in self._get_all_databases():
7675
conn_kwargs['dbname'] = d
7776
with get_connection_cursor(**conn_kwargs) as cur:
@@ -189,10 +188,10 @@ def pg_upgrade(self, check=False):
189188
def prepare_new_pgdata(self, version):
190189
from spilo_commons import append_extensions
191190

192-
locale = self.query('SHOW lc_collate').fetchone()[0]
193-
encoding = self.query('SHOW server_encoding').fetchone()[0]
191+
locale = self.query('SHOW lc_collate')[0][0]
192+
encoding = self.query('SHOW server_encoding')[0][0]
194193
initdb_config = [{'locale': locale}, {'encoding': encoding}]
195-
if self.query("SELECT current_setting('data_checksums')::bool").fetchone()[0]:
194+
if self.query("SELECT current_setting('data_checksums')::bool")[0][0]:
196195
initdb_config.append('data-checksums')
197196

198197
logger.info('initdb config: %s', initdb_config)

0 commit comments

Comments
 (0)