Installation
Install pg-kinetic from the GitHub Container Registry image or from the Helm chart repository. The local Docker Compose stack remains available for development and smoke testing.
Docker
Pull the release image:
docker pull ghcr.io/hookwoods/pg-kinetic:latest
Run the image with a mounted config:
docker run --detach \
--name pg-kinetic \
--restart unless-stopped \
--publish 6432:6432 \
--publish 7000:7000 \
--publish 9090:9090 \
--publish 9091:9091 \
--volume "$PWD/pg-kinetic.toml:/etc/pg-kinetic/pg-kinetic.toml:ro" \
ghcr.io/hookwoods/pg-kinetic:latest \
--config-file /etc/pg-kinetic/pg-kinetic.toml
Use immutable version tags for reproducible deploys. The 1.0 release candidate
image is ghcr.io/hookwoods/pg-kinetic:1.0.0-rc.1; record its digest before
putting it in service:
docker pull ghcr.io/hookwoods/pg-kinetic:1.0.0-rc.1
docker inspect --format '{{index .RepoDigests 0}}' ghcr.io/hookwoods/pg-kinetic:1.0.0-rc.1
Docker Compose
The repository includes deploy/docker-compose.yml. It starts PostgreSQL, builds a local pg-kinetic image from the repository root, and mounts deploy/pg-kinetic.toml.
docker compose -f deploy/docker-compose.yml up -d --build
The sample config points at PostgreSQL on 172.30.0.10:5432 inside the Compose network. Use IP:port for backend_addr; hostnames are not accepted in that field.
Clean up:
docker compose -f deploy/docker-compose.yml down
Helm
Add the chart repository and install pg-kinetic:
helm repo add pgkinetic https://helm.pgkinetic.dev
helm repo update
helm install pg-kinetic pgkinetic/pg-kinetic \
--set image.repository=ghcr.io/hookwoods/pg-kinetic \
--set image.tag=1.0.0-rc.1 \
--version 1.0.0-rc.1
The chart renders:
- a Deployment with non-root container security defaults
- a ConfigMap containing
pg-kinetic.toml - a ClusterIP Service exposing PostgreSQL, admin, metrics, and health ports
- readiness and liveness probes
The chart exposes /healthz as the liveness probe and /readyz as the
readiness probe on port 9091. The HTTP health server does not implement
/drain; use the deployment's termination lifecycle and the configured
45-second proxy drain timeout instead.
Local Helm Chart
Use the local chart when you are changing chart templates or testing a locally built image:
helm lint ./charts/pg-kinetic
helm template pg-kinetic ./charts/pg-kinetic
helm install pg-kinetic ./charts/pg-kinetic \
--set image.repository=pg-kinetic \
--set image.tag=local \
--set image.pullPolicy=Never
Release Publishing
The container workflow runs when a GitHub Release is published. It builds the Dockerfile and publishes ghcr.io/hookwoods/pg-kinetic.
The Helm workflow runs on the same GitHub Release event. It derives the chart version from the release tag, uploads the chart archive to that release, and updates the chart repository index.