Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
- Upgraded PostGIS to 3.6.4, pgBackRest to 2.59.3, system_stats to 4.0,
supautils to 3.4.4, and pgvector to 0.8.7 in standard images
- Upgraded Spock to 5.0.13 in the spock 5 images
- Added PostgreSQL 19 (rc2) postgres, minimal and standard images for spock 5.
They omit pg_tokenizer and vchord_bm25, which have no PG 19 build yet; the
tests covering those extensions are skipped on PG 19 until they ship. They
also omit pg_stat_monitor until a release that builds on PostgreSQL 19 RC2.
No coldfront or spock 6 images for PG 19 yet.
- Upgraded lolor to 1.2.3 in minimal images
- Upgraded system_stats to 4.1 in standard images

Expand Down
19 changes: 18 additions & 1 deletion examples/compose/distributed/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,19 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")
WANTED=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")

# Preload only the libraries this image ships: preloading a missing one
# stops the postmaster. Not every extension has a build for every major.
PKGLIBDIR=$$(pg_config --pkglibdir)
EXTENSIONS=()
for EXT in "$${WANTED[@]}"; do
if [[ -f "$$PKGLIBDIR/$$EXT.so" ]]; then
EXTENSIONS+=("$$EXT")
else
echo "Skipping $$EXT: not available in this image"
fi
done

PGCONF="$$PGDATA/postgresql.conf"

Expand Down Expand Up @@ -175,6 +187,11 @@ configs:

echo "Initializing extensions: $${EXTENSIONS[*]}"
for EXT in "$${EXTENSIONS[@]}"; do
AVAILABLE=$$(psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -tAc "SELECT 1 FROM pg_available_extensions WHERE name = '$$EXT';")
if [[ "$$AVAILABLE" != "1" ]]; then
echo "Skipping extension $$EXT: not available in this image"
continue
fi
echo "Creating extension: $$EXT"
psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -c "CREATE EXTENSION IF NOT EXISTS \"$$EXT\";"
done
Expand Down
19 changes: 18 additions & 1 deletion examples/compose/enterprise/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,19 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")
WANTED=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")

# Preload only the libraries this image ships: preloading a missing one
# stops the postmaster. Not every extension has a build for every major.
PKGLIBDIR=$$(pg_config --pkglibdir)
EXTENSIONS=()
for EXT in "$${WANTED[@]}"; do
if [[ -f "$$PKGLIBDIR/$$EXT.so" ]]; then
EXTENSIONS+=("$$EXT")
else
echo "Skipping $$EXT: not available in this image"
fi
done

PGCONF="$$PGDATA/postgresql.conf"

Expand Down Expand Up @@ -95,6 +107,11 @@ configs:

echo "Initializing extensions: $${EXTENSIONS[*]}"
for EXT in "$${EXTENSIONS[@]}"; do
AVAILABLE=$$(psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -tAc "SELECT 1 FROM pg_available_extensions WHERE name = '$$EXT';")
if [[ "$$AVAILABLE" != "1" ]]; then
echo "Skipping extension $$EXT: not available in this image"
continue
fi
echo "Creating extension: $$EXT"
psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -c "CREATE EXTENSION IF NOT EXISTS \"$$EXT\";"
done
2 changes: 2 additions & 0 deletions packagelists/amd64/pg19-rc2-postgres.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pgedge-postgresql19-19-rc2_1.el9
pgedge-postgresql19-server-19-rc2_1.el9
3 changes: 3 additions & 0 deletions packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pgedge-spock50_19-5.0.14-1.el9
pgedge-snowflake_19-2.6.1-1.el9
pgedge-lolor_19-1.2.3-1.el9
12 changes: 12 additions & 0 deletions packagelists/amd64/pg19-rc2-spock5.0.14-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
pgedge-pgaudit_19-19-rc1_1.el9
pgedge-postgis36_19-3.6.4-2.el9
pgedge-pgvector_19-0.8.7-1.el9
pgedge-pgbackrest-2.60.0-1.el9
pgedge-python3-psycopg2-2.9.12-1.el9
pgedge-pgmq_19-1.13.1-1.el9
pgedge-pg_cron_19-1.6.8-2.el9
pgedge-pg-vectorize_19-0.27.1-1.el9
pgedge-vectorizer_19-1.1-1.el9
pgedge-system_stats_19-4.1-1.el9
pgedge-supautils_19-4.0.0-1.el9
pgedge-safesession_19-1.1-1.el9
2 changes: 2 additions & 0 deletions packagelists/arm64/pg19-rc2-postgres.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pgedge-postgresql19-19-rc2_1.el9
pgedge-postgresql19-server-19-rc2_1.el9
3 changes: 3 additions & 0 deletions packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pgedge-spock50_19-5.0.14-1.el9
pgedge-snowflake_19-2.6.1-1.el9
pgedge-lolor_19-1.2.3-1.el9
12 changes: 12 additions & 0 deletions packagelists/arm64/pg19-rc2-spock5.0.14-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
pgedge-pgaudit_19-19-rc1_1.el9
pgedge-postgis36_19-3.6.4-2.el9
pgedge-pgvector_19-0.8.7-1.el9
pgedge-pgbackrest-2.60.0-1.el9
pgedge-python3-psycopg2-2.9.12-1.el9
pgedge-pgmq_19-1.13.1-1.el9
pgedge-pg_cron_19-1.6.8-2.el9
pgedge-pg-vectorize_19-0.27.1-1.el9
pgedge-vectorizer_19-1.1-1.el9
pgedge-system_stats_19-4.1-1.el9
pgedge-supautils_19-4.0.0-1.el9
pgedge-safesession_19-1.1-1.el9
18 changes: 17 additions & 1 deletion scripts/build_pgedge_images.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import json
import logging
import os
import re
import subprocess

from dataclasses import dataclass
Expand Down Expand Up @@ -94,7 +95,9 @@ class PgEdgeImage:

@property
def postgres_major(self) -> str:
return self.postgres_version.split(".")[0]
# Leading digits, so a pre-release version like "19-rc1" still yields
# the major the packages and paths use.
return re.match(r"\d+", self.postgres_version).group()

@property
def spock_major(self) -> str:
Expand Down Expand Up @@ -272,6 +275,10 @@ def make_flavor_images(
postgres_version="18.6", spock_version="", epoch=1, flavor="postgres",
is_latest_for_pg_major=True,
),
PgEdgeImage(
postgres_version="19-rc2", spock_version="", epoch=1, flavor="postgres",
is_latest_for_pg_major=True, package_release_channel="staging",
),
# pg16 images
*make_flavor_images(
postgres_version="16.15",
Expand All @@ -296,6 +303,15 @@ def make_flavor_images(
is_latest_for_pg_major=True,
is_latest_for_spock_major=True,
),
# pg19 images. No coldfront or spock 6 line yet: neither has a PG 19 build.
*make_flavor_images(
postgres_version="19-rc2",
spock_version="5.0.14",
epochs={"minimal": 1, "standard": 1},
channels={"minimal": "staging", "standard": "staging"},
is_latest_for_pg_major=True,
is_latest_for_spock_major=True,
),
# pg16 spock60 images
*make_flavor_images(
postgres_version="16.15",
Expand Down
Loading
Loading