1
0
mirror of https://github.com/quay/quay.git synced 2026-10-24 21:59:23 +03:00
Files
jbpratt 079e4a85f4 PROJQUAY-12435: feat(migration): migrate OMR PostgreSQL sources (#6831)
* feat(migrate): prototype PostgreSQL source conversion

* feat(migrate): freeze PostgreSQL compatibility profile

* feat(migration): support OMR PostgreSQL sources

Detect the supported KCS PostgreSQL topology and convert it through the existing quay migrate path while preserving SQLite behavior.

Add cutover and rollback safeguards, bridge convergence fixes, and rootless end-to-end CI coverage.

* fix(migration): address PostgreSQL review feedback

* pin new and rename existing migrate job

Signed-off-by: Brady Pratt <bpratt@redhat.com>

* fix(ci): use rootful podman for old OMR in postgres migration job

The rootless OMR installation fails health checks with
SSL: UNEXPECTED_EOF_WHILE_READING through the userspace port
forwarder. Switch to sudo (matching the proven SQLite migration
job) for the old OMR lifecycle, PostgreSQL sidecar, and migration
invocation.

* fix(ci): initialize postgres migration source user

* fix(ci): verify preserved postgres source user

* fix(migration): address review feedback

* fix runner bump

Signed-off-by: Brady Pratt <bpratt@redhat.com>

* fix(migration): address review feedback on PostgreSQL preflights and URI parsing

- Split generic PostgreSQL DB_URI validation in parsePostgresURI into explicit error diagnostics for scheme, username, password, host, port, path, query parameters, and fragments without leaking credentials.
- Add an explicit target-directory cleanliness preflight check in validatePostgresBeforeStop so populated or corrupted data directories fail early before stopping the source application.
- Clarify SQLite-only flags in migrate CLI flag usage strings.
- Drop non-idempotent retry options from the CI user initialization step.
- Add unit and regression tests covering invalid DB_URI diagnostics, password redaction, and unclean target directory rejection.

* fix(migration): remove ineffectual assignment and formatting in stopSourceServices

* fix(config): map FEATURE_ENABLE_STALE_MPU_CLEANUP as known-unmapped

The master merge of #6885 added FEATURE_ENABLE_STALE_MPU_CLEANUP to the
Python config schema. TestSchemaFieldCoverage fails on any Python-only
key absent from knownUnmapped. The Go migrate tooling does not consume
this flag, so list it as intentionally unmapped alongside the other
Python-only FEATURE_* flags.

---------

Signed-off-by: Brady Pratt <bpratt@redhat.com>
2026-08-24 08:42:02 -05:00
..