From f78570b1f178ffcdc6e76631fa10c13b9e7a877a Mon Sep 17 00:00:00 2001 From: Piyush Raj Date: Wed, 31 May 2023 23:34:38 +0530 Subject: [PATCH 1/3] Fix #8 Signed-off-by: Piyush Raj --- .github/workflows/smoke-test.yml | 4 +++ Dockerfile | 35 ++++++++++++++++++++++- Makefile | 3 +- bitnami/Dockerfile | 35 +++++++++++++++++++++++ bitnami/Makefile | 5 ++-- bitnami/timescaledb-bitnami-entrypoint.sh | 4 +-- 6 files changed, 80 insertions(+), 6 deletions(-) diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index af3abfe8..dc502f55 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -77,6 +77,10 @@ jobs: echo "Test pg_repack Extension" psql -c "CREATE EXTENSION pg_repack;" psql -c "select repack.version(), repack.version_sql();" + + echo "Test pgautofailover Extension" + psql -c "CREATE EXTENSION pgautofailover CASCADE;" + psql -c "SELECT pgautofailover.formation_settings();" break fi sleep 1 diff --git a/Dockerfile b/Dockerfile index 6c052667..4ed11c02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -281,4 +281,37 @@ RUN set -eux \ # clean && cd / \ && rm -rf /tmp/pg_repack-${PG_REPACK_VERSION} /tmp/pg_repack.zip \ - && apk del .pg_repack-build-deps \ No newline at end of file + && apk del .pg_repack-build-deps + +# Adding pgautofailover +ARG PG_AUTO_FAILOVER_VERSION +RUN set -eux \ + && apk add --no-cache --virtual .pg_auto_failover-build-deps \ + make \ + gcc \ + musl-dev \ + krb5-dev \ + openssl-dev \ + clang15 \ + ncurses-dev \ + linux-headers \ + zstd-dev \ + lz4-dev \ + zlib-dev \ + libedit-dev \ + libxml2-utils \ + libxslt-dev \ + llvm15 \ +# build pg_auto_failover + && wget -O /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION}.zip "https://github.com/hapostgres/pg_auto_failover/archive/refs/tags/v${PG_AUTO_FAILOVER_VERSION}.zip" \ + && unzip /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION}.zip -d /tmp \ + && ls -alh /tmp \ + && cd /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION} \ + && make \ + && make install \ + && sed -i "s/\(shared_preload_libraries = '[^']*\)/\1,pgautofailover/" /usr/local/share/postgresql/postgresql.conf.sample \ + +# clean + && cd / \ + && rm -rf /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION} /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION}.zip \ + && apk del .pg_auto_failover-build-deps \ No newline at end of file diff --git a/Makefile b/Makefile index 9285064b..26f8f274 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ PG_VER=pg15 CITUS_VERSION="11.2.0" POSTGIS_VERSION=3.3.2 PG_REPACK_VERSION = 1.4.8 +PG_AUTO_FAILOVER_VERSION = 2.0 POSTGIS_SHA256=2a6858d1df06de1c5f85a5b780773e92f6ba3a5dc09ac31120ac895242f5a77b PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-) TS_VERSION=main @@ -58,7 +59,7 @@ default: image touch .build_$(TS_VERSION)_$(PG_VER)_oss .build_$(TS_VERSION)_$(PG_VER): Dockerfile - docker build --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_VER=$(PG_VER) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) --build-arg POSTGIS_SHA256=$(POSTGIS_SHA256) $(TAG) . + docker build --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_VER=$(PG_VER) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) --build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) --build-arg POSTGIS_SHA256=$(POSTGIS_SHA256) $(TAG) . touch .build_$(TS_VERSION)_$(PG_VER) image: .build_$(TS_VERSION)_$(PG_VER) diff --git a/bitnami/Dockerfile b/bitnami/Dockerfile index 8a3b1d4c..6b17bd4f 100644 --- a/bitnami/Dockerfile +++ b/bitnami/Dockerfile @@ -171,6 +171,41 @@ RUN apt-get update \ /tmp/* \ /var/tmp/* +# Adding pgautofailover +ARG PG_AUTO_FAILOVER_VERSION +RUN apt-get update \ + && apt-get install -y unzip \ + build-essential \ + liblz4-dev \ + zlib1g-dev \ + libedit-dev \ + libssl-dev \ + wget \ +# build pg_auto_failover + && wget -O /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION}.zip "https://github.com/hapostgres/pg_auto_failover/archive/refs/tags/v${PG_AUTO_FAILOVER_VERSION}.zip" \ + && unzip /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION}.zip -d /tmp \ + && ls -alh /tmp \ + && cd /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION} \ + && make \ + && make install \ + +# clean + && cd / \ + && rm -rf /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION} /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION}.zip \ + && apt-get autoremove --purge -y \ + unzip \ + build-essential \ + liblz4-dev \ + zlib1g-dev \ + libedit-dev \ + libssl-dev \ + wget \ + && apt-get clean -y \ + && rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* + # Install zombodb extension RUN apt-get update -y -qq --fix-missing \ && apt-get install -y wget gnupg \ diff --git a/bitnami/Makefile b/bitnami/Makefile index 569c0116..682f605a 100644 --- a/bitnami/Makefile +++ b/bitnami/Makefile @@ -6,8 +6,9 @@ PG_VER=pg15 CITUS_VERSION="11.2.0" POSTGIS_MAJOR=3 PG_MAJOR=15 -POSTGIS_VERSION=3.3.2+dfsg-1.pgdg110+1 +POSTGIS_VERSION=3.3.3+dfsg-1~exp1.pgdg110+1 PG_REPACK_VERSION = 1.4.8 +PG_AUTO_FAILOVER_VERSION = 2.0 PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-) TS_VERSION=main @@ -26,7 +27,7 @@ default: image .build_$(TS_VERSION)_$(PG_VER): Dockerfile test -n "$(TS_VERSION)" # TS_VERSION test -n "$(PREV_TS_VERSION)" # PREV_TS_VERSION - docker build -f ./Dockerfile --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg POSTGIS_MAJOR=$(POSTGIS_MAJOR) --build-arg PG_MAJOR=$(PG_MAJOR) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) $(TAG) .. + docker build -f ./Dockerfile --build-arg PG_VERSION=$(PG_VER_NUMBER) --build-arg TS_VERSION=$(TS_VERSION) --build-arg PREV_IMAGE=$(PREV_IMAGE) --build-arg CITUS_VERSION=$(CITUS_VERSION) --build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) --build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION) --build-arg POSTGIS_MAJOR=$(POSTGIS_MAJOR) --build-arg PG_MAJOR=$(PG_MAJOR) --build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) $(TAG) .. touch .build_$(TS_VERSION)_$(PG_VER)-bitnami image: .build_$(TS_VERSION)_$(PG_VER) diff --git a/bitnami/timescaledb-bitnami-entrypoint.sh b/bitnami/timescaledb-bitnami-entrypoint.sh index f4df80c2..50f515bc 100755 --- a/bitnami/timescaledb-bitnami-entrypoint.sh +++ b/bitnami/timescaledb-bitnami-entrypoint.sh @@ -4,9 +4,9 @@ # the shared preload list, or else it gets overwritten. if [ -z "$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" ] then - POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack" + POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack,pgautofailover" else - POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" + POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,zombodb,pg_repack,pgautofailover,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" fi export POSTGRESQL_SHARED_PRELOAD_LIBRARIES From b360c8b80cca5f6e8f5234e724334396e7816409 Mon Sep 17 00:00:00 2001 From: Piyush Raj Date: Thu, 1 Jun 2023 00:19:40 +0530 Subject: [PATCH 2/3] removed newline Signed-off-by: Piyush Raj --- bitnami/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/bitnami/Dockerfile b/bitnami/Dockerfile index 6b17bd4f..1fefe56e 100644 --- a/bitnami/Dockerfile +++ b/bitnami/Dockerfile @@ -188,7 +188,6 @@ RUN apt-get update \ && cd /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION} \ && make \ && make install \ - # clean && cd / \ && rm -rf /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION} /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION}.zip \ From 4be1b0f310ae3b13b92acd82bef5b6ddeca87802 Mon Sep 17 00:00:00 2001 From: Piyush Raj Date: Thu, 1 Jun 2023 13:50:07 +0530 Subject: [PATCH 3/3] minor fix Signed-off-by: Piyush Raj --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4ed11c02..255cffcd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -74,7 +74,7 @@ RUN set -ex \ && sed -r -i "s/[#]*\s*(shared_preload_libraries)\s*=\s*'(.*)'/\1 = 'timescaledb,\2'/;s/,'/'/" /usr/local/share/postgresql/postgresql.conf.sample # Update to shared_preload_libraries -RUN echo "shared_preload_libraries = 'citus,timescaledb,pg_stat_statements'" >> /usr/local/share/postgresql/postgresql.conf.sample +RUN echo "shared_preload_libraries = 'citus,timescaledb,pg_stat_statements,pgautofailover'" >> /usr/local/share/postgresql/postgresql.conf.sample # Adding PG Vector @@ -309,8 +309,6 @@ RUN set -eux \ && cd /tmp/pg_auto_failover-${PG_AUTO_FAILOVER_VERSION} \ && make \ && make install \ - && sed -i "s/\(shared_preload_libraries = '[^']*\)/\1,pgautofailover/" /usr/local/share/postgresql/postgresql.conf.sample \ - # clean && cd / \ && rm -rf /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION} /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION}.zip \