Skip to content

Replace postgres jobs with postgres release#2764

Draft
ZPascal wants to merge 1 commit into
cloudfoundry:mainfrom
ZPascal:replace-postgres-jobs-with-postgres-release
Draft

Replace postgres jobs with postgres release#2764
ZPascal wants to merge 1 commit into
cloudfoundry:mainfrom
ZPascal:replace-postgres-jobs-with-postgres-release

Conversation

@ZPascal

@ZPascal ZPascal commented Jul 6, 2026

Copy link
Copy Markdown

Summary

This PR removes the postgres and postgres-13 jobs that have been bundled inside the bosh release and replaces them with the cloudfoundry/postgres-release, which ships PostgreSQL 15, 16, 17, and 18 with built-in pg_upgrade support for major-version upgrades.

What changed

  • Removed jobs/postgres (fully deleted) and its packages (postgres-13, postgres-15), blob entries, and the CI blob-bumping tasks that maintained them
  • Deprecated jobs/postgres-13 — the job spec now carries a deprecation notice directing operators to postgres-release; the job will be removed in the next bosh release
  • Added docs/postgres-migration.md with a property-mapping table and in-place cutover procedure for operators switching from either old job
  • Updated CI pipeline to test against PostgreSQL 15 and 17 (replacing postgres-13 matrix), expose PG_VERSION env var to the director unit test tasks, and add four new BRATS acceptance jobs (postgres-release 15/16/17/18)
  • Added src/brats/acceptance/postgres_release_test.go — matrix BRATS tests that verify the bosh director works correctly against each postgres-release version
  • Updated BRATS manifests to use databases.* properties instead of the old postgres.* namespace; postgres_version_helper.rb now reads PG_VERSION from the environment instead of the bosh job spec

Why

The in-tree postgres jobs have been a maintenance burden: every PostgreSQL minor release required a blob bump, a packaging script change, and a new Docker image. postgres-release is a dedicated, well-maintained release that handles packaging, upgrades, and OS compatibility. Offloading PostgreSQL to postgres-release lets us stop duplicating that work and gives operators access to more recent PostgreSQL versions (16, 17, 18) that bosh never shipped.

Migration path for operators

See docs/postgres-migration.md for the full guide. The short version: add postgres-release to your director manifest, replace the postgres.* properties with databases.* properties, and set databases.version to match your existing on-disk PostgreSQL major version. An existing data directory is detected and reused — no dump/restore required.

Test plan

  • CI passes: unit-director-postgres-15, unit-director-postgres-17, integration-postgres, integration-postgres-hotswap
  • BRATS acceptance jobs pass: brats-postgres-15, brats-postgres-16, brats-postgres-17, brats-postgres-18
  • postgres-13 deprecation warning appears in bosh deploy output when the job is still present

@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a6cb1a10-262d-4667-b3cc-4911dca0dd85

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

feat: Remove postgres job, packages, and blob-bumping CI tasks
feat: Add postgres migration guide for operators
feat: Update BRATS manifests to use postgres-release job and databases.* properties
feat: Read postgres version from PG_VERSION env var instead of bosh job spec
feat: Add BRATS matrix tests for postgres-release versions 15/16/17/18
@ZPascal ZPascal force-pushed the replace-postgres-jobs-with-postgres-release branch from cd8eaf2 to d8874e6 Compare July 6, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant