Repository navigation
qa: image references — resolve each image's registry path to the PR or production root - #133
Merged
Merged
Conversation
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
…rofile key Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
…f aborting Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
…paths Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
…g edits
- Add IMAGE_PARAM example to qa: schema block (Step 1)
- Insert Image references subsection before Status contexts (Step 2)
- Append 'rendered after substitution' to ${VAR} paragraph (Step 3b)
- Move image-fallback-rootprj section to correct location after slice discussion
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
…w failure in PR mode, docs, lower-case repository) Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
mohitj1988
added a commit
that referenced
this pull request
Oct 12, 2026
Container QA uses the QA team's Docker jobs and ppg-testing main, on the common/ project tree, naming every image by image reference (#133) so PR runs take each image from the PR when the PR built it, else from staging: - ppg:staging:14-18:containers: the server image per UBI base, with and without PostGIS (docker-server-parallel). - ppg:staging:16-18:extras:containers: the custom image (docker-server-parallel-custom). - ppg:staging:common:tools:containers: the pgBackRest and pgBouncer images, each against every major's server image (docker-component-parallel; SERVER_REPOSITORY names it in ppg:staging:<major>:containers). - ppg:staging:common:containers: major upgrades 14->15 ... 17->18 per UBI base, with and without PostGIS (docker-server-parallel-upgrade): mediator from this project, OLD_/NEW_REPOSITORY in their majors' projects. - ppg:staging:common:extras:containers: custom-image upgrades 16->17, 17->18 (docker-server-parallel-custom-upgrade). Replaces docker-server-parallel-generic, the ricardo-work branch and ppg-obs-upgrade. percona-obs: container projects get EXPECTED_VERSIONS from the local projects their repositories build from (subproject: paths, first wins), since their images declare no package version, so the Docker tests check the versions OBS builds. tests: container lanes must be named, unique and cover each UBI base; new tests for the container EXPECTED_VERSIONS.
mohitj1988
added a commit
that referenced
this pull request
Oct 12, 2026
Container QA uses the QA team's Docker jobs and ppg-testing main, on the common/ project tree, naming every image by image reference (#133) so PR runs take each image from the PR when the PR built it, else from staging: - ppg:staging:14-18:containers: the server image per UBI base, with and without PostGIS (docker-server-parallel). - ppg:staging:16-18:extras:containers: the custom image (docker-server-parallel-custom). - ppg:staging:common:tools:containers: the pgBackRest and pgBouncer images, each against every major's server image (docker-component-parallel; SERVER_REPOSITORY names it in ppg:staging:<major>:containers). - ppg:staging:common:containers: major upgrades 14->15 ... 17->18 per UBI base, with and without PostGIS (docker-server-parallel-upgrade): mediator from this project, OLD_/NEW_REPOSITORY in their majors' projects. - ppg:staging:common:extras:containers: custom-image upgrades 16->17, 17->18 (docker-server-parallel-custom-upgrade). Replaces docker-server-parallel-generic, the ricardo-work branch and ppg-obs-upgrade. percona-obs: container projects get EXPECTED_VERSIONS from the local projects their repositories build from (subproject: paths, first wins), since their images declare no package version, so the Docker tests check the versions OBS builds. tests: container lanes must be named, unique and cover each UBI base; new tests for the container EXPECTED_VERSIONS.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A PR that promotes one container image into
isv:percona:PR:pr-N:…:containersstill runs every lane of that project'sqa:block, and each lane'sREPOSITORYrenders with the PR rootprj. PR projects hold only promoted packages and the registry publishes an image only under the project that built it, so the lanes for images that were not promoted point at registry paths that do not exist.Change: image references in
qa:parametersA parameter whose value is a mapping names the image by its OBS package instead of spelling the path. The parameter name is irrelevant (
REPOSITORY,OLD_DOCKER_REPOSITORY, …):qa show/qa runrender it to<OBS_CONTAINER_REGISTRY>/<rootprj>/<project>/<repository>and choose the root project per image:image-fallback-rootprjset?<rootprj>:<project>on OBS?Each decision is printed on stderr and forwarded into the detect-job log.
image-fallback-rootprj/ flag--image-fallback-rootprj. CI writes it into the PR profiles only (obs-pr-check.yml,obs-qa-run.ymlwith a PR number); nightly and production dispatches never query OBS.project verifychecks thatimageis a package directory ofprojectandrepositoryone of its repositories (projects not in the tree are skipped).list_qa_matrix.pynow aborts in PR mode whenqa showfails, instead of silently dropping that project's lanes._shared/containers,common/containers,common/extras/containers,16-18/extras/containers). On the production root they render byte-for-byte what the string form rendered.${OBS_CONTAINER_REGISTRY}/${OBS_CONTAINER_REGISTRY_ROOTPRJ}/…) keeps working; the tree test now forbids it in non-releaseproject.yamlfiles.Out of scope (by design)
A lane whose matrix axis selects the image inside Jenkins (
WITH_POSTGISondocker-server-parallel) names the plain image. When only-with-postgiswas promoted, both combos test the fallback images; when only the plain image was promoted, theWITH_POSTGIS=truecombo pulls a PR-root-with-postgisimage that does not exist and fails. Documented indocs/PERCONA_OBS_TOOL.md→ Image references.Behaviour change to note
OLD_DOCKER_REPOSITORYin the 16/17/18 extras upgrade lanes was hard-coded toisv/percona. It is now an image reference onppg:staging:<prev>:extras:containers, so a PR that promotes the previous major's custom image runs the upgrade test from the PR-built old image. Production and nightly render identically to before.Relation to #124
#124 edits the same
qa:blocks. Whichever lands second rebases; #124's new pgbackrest/pgbouncer lanes should use image references.Verification
pytest tests/557 passed; black, pyright clean.project verify --offlineexits 0 with an unsliced profile and with a b.o.o-shaped profile (exclude-repositories: UBI_*,ubi*,images).qa show --jsonon every converted project,-R isv:percona: identical before/after (37REPOSITORYvalues).Plan:
docs/superpowers/plans/2026-10-12-qa-image-refs.md.