From 9beeb3bcb6be8653344980e0469a587b09d1366d Mon Sep 17 00:00:00 2001 From: Ibrahim Halatci Date: Wed, 2 Sep 2026 15:12:20 +0300 Subject: [PATCH] Switch Docker image matrices to PostgreSQL 17/18 and adopt tools v0.8.39 Activates the PostgreSQL 18 image, retires PostgreSQL 16, and moves every workflow onto the tools tag that matches. Matrices (cron, on_push, on_tag) change postgres_16 -> postgres_18. The pg18 tag has never been published even though pkgvars has carried postgres_18_version since February; this closes that gap. PostgreSQL 16 is dropped because Citus no longer supports it, which is also why the nightly package builds have been failing on almalinux-8-pg16. The tools pin moves to v0.8.39 in all five workflows (four were on v0.8.38, update_version.yml was still on v0.8.36). This is not optional: v0.8.39 removes postgres_14, postgres_15 and postgres_16 from DockerImageType, so the pin bump and the matrix change have to land together or the postgres_16 job fails on an invalid enum value. postgres-18/Dockerfile moves from Citus 14.1.0 to 14.2.0 so the newly published pg18 tag matches latest and pg17 rather than shipping an older Citus. All three pinned packages are published for PostgreSQL 18: postgresql-18-citus-14.2=14.2.0.citus-1, postgresql-18-hll=2.21.citus-1 and postgresql-18-topn=2.7.1.citus-1. postgres_19 is deliberately not added to the matrices. PostgreSQL 19 is still 19beta3 and no postgresql-19-citus package exists, so the image cannot build yet. postgres-19/Dockerfile stays in the tree, unreferenced, and update_version.yml will refresh it on the next version bump now that the pin supports postgres19. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2 --- .../workflows/publish_docker_images_cron.yml | 4 +- .../publish_docker_images_on_manual.yml | 2 +- .../publish_docker_images_on_push.yml | 4 +- .../publish_docker_images_on_tag.yml | 4 +- .github/workflows/update_version.yml | 2 +- pkgvars | 1 - postgres-16/Dockerfile | 42 ------------------- postgres-18/Dockerfile | 4 +- 8 files changed, 10 insertions(+), 53 deletions(-) delete mode 100644 postgres-16/Dockerfile diff --git a/.github/workflows/publish_docker_images_cron.yml b/.github/workflows/publish_docker_images_cron.yml index 55275a5..1b667d6 100644 --- a/.github/workflows/publish_docker_images_cron.yml +++ b/.github/workflows/publish_docker_images_cron.yml @@ -20,7 +20,7 @@ jobs: - latest - alpine - postgres_17 - - postgres_16 + - postgres_18 - nightly steps: - name: Checkout repository @@ -33,7 +33,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Clone tools branch - run: git clone -b v0.8.38 --depth=1 https://github.com/citusdata/tools.git tools + run: git clone -b v0.8.39 --depth=1 https://github.com/citusdata/tools.git tools - name: Install package dependencies run: sudo apt-get update && sudo apt install libcurl4-openssl-dev libssl-dev python3-testresources diff --git a/.github/workflows/publish_docker_images_on_manual.yml b/.github/workflows/publish_docker_images_on_manual.yml index 3fcac1d..e947210 100644 --- a/.github/workflows/publish_docker_images_on_manual.yml +++ b/.github/workflows/publish_docker_images_on_manual.yml @@ -32,7 +32,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Clone tools branch - run: git clone -b v0.8.38 --depth=1 https://github.com/citusdata/tools.git tools + run: git clone -b v0.8.39 --depth=1 https://github.com/citusdata/tools.git tools - name: Install package dependencies run: sudo apt-get update && sudo apt install libcurl4-openssl-dev libssl-dev python3-testresources diff --git a/.github/workflows/publish_docker_images_on_push.yml b/.github/workflows/publish_docker_images_on_push.yml index ea79e7f..2a4624a 100644 --- a/.github/workflows/publish_docker_images_on_push.yml +++ b/.github/workflows/publish_docker_images_on_push.yml @@ -18,7 +18,7 @@ jobs: - latest - alpine - postgres_17 - - postgres_16 + - postgres_18 - nightly steps: - name: Checkout repository @@ -31,7 +31,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Clone tools branch - run: git clone -b v0.8.38 --depth=1 https://github.com/citusdata/tools.git tools + run: git clone -b v0.8.39 --depth=1 https://github.com/citusdata/tools.git tools - name: Install package dependencies run: sudo apt-get update && sudo apt install libcurl4-openssl-dev libssl-dev python3-testresources diff --git a/.github/workflows/publish_docker_images_on_tag.yml b/.github/workflows/publish_docker_images_on_tag.yml index f2d1a69..cd86ebe 100644 --- a/.github/workflows/publish_docker_images_on_tag.yml +++ b/.github/workflows/publish_docker_images_on_tag.yml @@ -18,7 +18,7 @@ jobs: - latest - alpine - postgres_17 - - postgres_16 + - postgres_18 - nightly steps: - name: Checkout repository @@ -34,7 +34,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Clone tools branch - run: git clone -b v0.8.38 --depth=1 https://github.com/citusdata/tools.git tools + run: git clone -b v0.8.39 --depth=1 https://github.com/citusdata/tools.git tools - name: Install package dependencies run: sudo apt-get update && sudo apt install libcurl4-openssl-dev libssl-dev python3-testresources diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml index 41d3706..5899586 100644 --- a/.github/workflows/update_version.yml +++ b/.github/workflows/update_version.yml @@ -44,7 +44,7 @@ jobs: run: sudo apt-get update && sudo apt install libcurl4-openssl-dev libssl-dev python3-testresources - name: Clone tools branch - run: git clone -b v0.8.36 --depth=1 https://github.com/citusdata/tools.git tools + run: git clone -b v0.8.39 --depth=1 https://github.com/citusdata/tools.git tools - name: Set git name and email run: | diff --git a/pkgvars b/pkgvars index e5dc14b..3d8d364 100644 --- a/pkgvars +++ b/pkgvars @@ -1,5 +1,4 @@ postgres_19_version=19beta3 postgres_18_version=18.4 postgres_17_version=17.10 -postgres_16_version=16.14 diff --git a/postgres-16/Dockerfile b/postgres-16/Dockerfile deleted file mode 100644 index 2e6ee44..0000000 --- a/postgres-16/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# This file is auto generated from it's template, -# see citusdata/tools/packaging_automation/templates/docker/postgres-16/postgres-16.tmpl.dockerfile. -FROM postgres:16.14 -ARG VERSION=14.2.0 -LABEL maintainer="Citus Data https://citusdata.com" \ - org.label-schema.name="Citus" \ - org.label-schema.description="Scalable PostgreSQL for multi-tenant and real-time workloads" \ - org.label-schema.url="https://www.citusdata.com" \ - org.label-schema.vcs-url="https://github.com/citusdata/citus" \ - org.label-schema.vendor="Citus Data, Inc." \ - org.label-schema.version=${VERSION} \ - org.label-schema.schema-version="1.0" - -ENV CITUS_VERSION ${VERSION}.citus-1 - -# install Citus -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - && curl -s https://install.citusdata.com/community/deb.sh | bash \ - && apt-get install -y postgresql-$PG_MAJOR-citus-14.2=$CITUS_VERSION \ - postgresql-$PG_MAJOR-hll=2.19.citus-1 \ - postgresql-$PG_MAJOR-topn=2.7.0.citus-1 \ - && apt-get purge -y --auto-remove curl \ - && rm -rf /var/lib/apt/lists/* - -# add citus to default PostgreSQL config -RUN echo "shared_preload_libraries='citus'" >> /usr/share/postgresql/postgresql.conf.sample - -# add scripts to run after initdb -COPY 001-create-citus-extension.sql /docker-entrypoint-initdb.d/ - -# add health check script -COPY pg_healthcheck wait-for-manager.sh / -RUN chmod +x /wait-for-manager.sh - -# entry point unsets PGPASSWORD, but we need it to connect to workers -# https://github.com/docker-library/postgres/blob/33bccfcaddd0679f55ee1028c012d26cd196537d/12/docker-entrypoint.sh#L303 -RUN sed "/unset PGPASSWORD/d" -i /usr/local/bin/docker-entrypoint.sh - -HEALTHCHECK --interval=4s --start-period=6s CMD ./pg_healthcheck diff --git a/postgres-18/Dockerfile b/postgres-18/Dockerfile index adceaca..a25c5b4 100644 --- a/postgres-18/Dockerfile +++ b/postgres-18/Dockerfile @@ -1,7 +1,7 @@ # This file is auto generated from it's template, # see citusdata/tools/packaging_automation/templates/docker/postgres-18/postgres-18.tmpl.dockerfile. FROM postgres:18.4 -ARG VERSION=14.1.0 +ARG VERSION=14.2.0 LABEL maintainer="Citus Data https://citusdata.com" \ org.label-schema.name="Citus" \ org.label-schema.description="Scalable PostgreSQL for multi-tenant and real-time workloads" \ @@ -19,7 +19,7 @@ RUN apt-get update \ ca-certificates \ curl \ && curl -s https://install.citusdata.com/community/deb.sh | bash \ - && apt-get install -y postgresql-$PG_MAJOR-citus-14.1=$CITUS_VERSION \ + && apt-get install -y postgresql-$PG_MAJOR-citus-14.2=$CITUS_VERSION \ postgresql-$PG_MAJOR-hll=2.21.citus-1 \ postgresql-$PG_MAJOR-topn=2.7.1.citus-1 \ && apt-get purge -y --auto-remove curl \