Skip to content

Add Percona pg_tde (TDE) Dockerfile for postgres 17.9 bookworm - #1

Open
souravbiswassanto wants to merge 4 commits into
masterfrom
tde
Open

Add Percona pg_tde (TDE) Dockerfile for postgres 17.9 bookworm#1
souravbiswassanto wants to merge 4 commits into
masterfrom
tde

Conversation

@souravbiswassanto

@souravbiswassanto souravbiswassanto commented Aug 7, 2026

Copy link
Copy Markdown
Member

Adds tde/17.9/bookworm/Dockerfile, following the same layout convention as the
existing ext/<version>/<distro>/ and dhi/<version>/<distro>/ trees, so the
builder can produce a 17.9-percona tag.

What it is

Percona Server for PostgreSQL 17.9 + pg_tde.
KubeDB's Transparent Data Encryption support needs pg_tde, whose tde_heap
access method only works on the Percona fork — not community PostgreSQL — so it
cannot run on the stock postgres:<major>-bookworm image.

The Dockerfile keeps the exact runtime contract KubeDB already relies on:

  • postgres user/group at uid/gid 999
  • server binaries on PATH at /usr/lib/postgresql/17/bin
  • upstream docker-entrypoint.sh, initdb helpers and gosu, copied verbatim
    from ghcr.io/appscode-images/postgres:17.9-bookworm
  • identical PGDATA, locale, VOLUME, STOPSIGNAL SIGINT, EXPOSE 5432

Source

Taken from https://github.com/kubedb/postgres-docker/tree/release-17.9-percona
with three changes so it fits this repo and the builder:

  1. the entrypoint donor stage is ghcr.io/appscode-images/postgres:17.9-bookworm
    instead of Docker Hub postgres:17-bookworm — matches what the ext
    Dockerfiles do and keeps the minor aligned with the tag
  2. PG_VERSION defaults to 2:17.9-1.bookworm (the builder passes no
    --build-arg, so the pin has to be the default for the tag to be truthful)
  3. org.opencontainers.image.source label points at this repo

Verified

Built locally for linux/amd64:

postgres (PostgreSQL) 17.9 - Percona Server for PostgreSQL 17.9.1 - Percona Distribution
uid=999(postgres) gid=999(postgres)
pg_tde.control present in /usr/share/postgresql/17/extension/
pg_tde_basebackup, pg_tde_rewind, pg_tde_waldump, pg_tde_resetwal all executable

percona-postgresql-17 / percona-pg-tde17 are published for both amd64 and
arm64 in repo.percona.com/ppg-17/apt (bookworm), and the base image has both
platforms, so the multi-arch builder job is satisfied.

Note on the branch

This branch stacks on 6447b6c (the existing, not-yet-merged ext + dhi
commits), same lineage the ext.json / dhi.json blocks point at, so the diff
against master also shows those earlier files. Only
tde/17.9/bookworm/Dockerfile is new here.

Builder side: appscode-images/builder#109

Signed-off-by: souravbiswassanto <saurov@appscode.com>
Signed-off-by: souravbiswassanto <saurov@appscode.com>
Signed-off-by: souravbiswassanto <saurov@appscode.com>
Percona Server for PostgreSQL 17.9 with the pg_tde extension, laid out to
match the official postgres:17-bookworm runtime contract (uid/gid 999,
binaries under /usr/lib/postgresql/17/bin, upstream docker-entrypoint.sh +
gosu, same PGDATA/locale/VOLUME/STOPSIGNAL/EXPOSE).

Sourced from https://github.com/kubedb/postgres-docker/tree/release-17.9-percona
with the entrypoint donor switched to ghcr.io/appscode-images/postgres:17.9-bookworm
and the Percona minor pinned to 2:17.9-1.bookworm so the tag is truthful.

Signed-off-by: souravbiswassanto <saurov@appscode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant