Promote oadp-operator bundle/index/e2e-test-binary images (oadp-dev, oadp-1.6) - #83110
Conversation
Split out of openshift#83049 so it can merge and actually run its postsubmit first -- the kdm-controller/kdm-plugin presubmit in that PR depends on oadp-operator-index/oadp-operator-e2e-tests existing in the registry, which only happens once this merges and oadp-operator's own postsubmit runs for real. Landing this first lets openshift#83049 rehearse against real promoted images instead of hitting the bootstrapping gap (images referenced by a not-yet-merged PR don't exist yet). For both oadp-dev and oadp-1.6: - Builds the operator bundle (operator.bundles) and the build/ci-Dockerfile e2e test binary (test-oadp-operator) -- previously built only ephemerally, per-PR, inside oadp-operator's own jobs. - Promotes both on every merge via a second promotion.to[] entry (additional_images, tag-mode: no name, explicit branch tag) so each gets its own destination imagestream (oadp-operator-index, oadp-operator-e2e-tests) instead of colliding with the existing oadp-operator image promotion or with each other across branches. - One new lightweight ci-index presubmit per branch confirms the bundle still builds on oadp-operator PRs. No existing oadp-operator job behavior changes -- every pre-existing operator.substitutions block, and the images/promotion blocks the kdm repos' own configs feed into those substitutions, is unchanged. Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
WalkthroughThe OADP 1.6 and development CI configurations now build test images and operator bundles. Promotion publishes the operator, E2E test, and index images while excluding the test image from the main operator image. ChangesOADP CI image and promotion configuration
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[REHEARSALNOTIFIER]
A total of 90 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs. A full list of affected jobs can be found here Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml`:
- Around line 15-16: Add an operator.substitutions mapping to both bundle
configurations: in
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml:15-16,
map quay.io/konveyor/oadp-operator:oadp-1.6 to oadp-operator-1.6; in
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml:15-16,
map quay.io/konveyor/oadp-operator:latest to oadp-operator. Ensure the
development bundle uses the :latest substitution.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: c25233e5-d40b-41e7-af95-397856bd3e14
⛔ Files ignored due to path filters (6)
ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-postsubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-presubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-postsubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-presubmits.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (2)
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yamlci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml
| bundles: | ||
| - dockerfile_path: build/Dockerfile.bundle |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
rg -n -C 6 \
'dockerfile_path: build/Dockerfile\.bundle|substitutions:|quay\.io/konveyor/oadp-operator:oadp-(1\.6|dev)|with: oadp-operator(-1\.6)?' \
ci-operator/config/oadp-qe ci-operator/config/openshift/oadp-operatorRepository: openshift/release
Length of output: 31311
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- target configurations ---'
cat -n ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml
cat -n ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml
printf '%s\n' '--- bundle Dockerfile and referenced pullspecs ---'
fd -i 'Dockerfile.bundle' .
bundle="$(fd -i 'Dockerfile.bundle' . | head -n 1)"
if [ -n "$bundle" ]; then
cat -n "$bundle"
rg -n 'quay\.io/konveyor|oadp-operator|velero-plugin|hypershift|kubevirt' "$bundle" || true
fi
printf '%s\n' '--- source and generated OADP configurations ---'
rg -l -n 'openshift-oadp-operator-oadp-(1\.6|dev)(\.yaml|__)' ci-operator/config/openshift/oadp-operator ci-operator/jobs/openshift/oadp-operator 2>/dev/null || true
rg -n -C 3 'dockerfile_path: build/Dockerfile\.bundle|substitutions:|pullspec: quay\.io/konveyor/oadp-operator:(oadp-1\.6|latest|oadp-dev)' ci-operator/config/openshift/oadp-operatorRepository: openshift/release
Length of output: 20169
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- all development substitutions in this repository ---'
rg -n -C 2 \
'oadp-operator:([^[:space:]]+)|with: oadp-operator' \
ci-operator/config/openshift/oadp-operator ci-operator/config/oadp-qe/oadp-operator
printf '%s\n' '--- repository metadata and bundle Dockerfile candidates ---'
curl -fsSL https://api.github.com/repos/konveyor/oadp-operator \
| jq -r '"default_branch=\(.default_branch)\nclone_url=\(.clone_url)"'
for ref in main master oadp-1.6; do
url="https://raw.githubusercontent.com/konveyor/oadp-operator/${ref}/build/Dockerfile.bundle"
printf '%s\n' "--- ${url} ---"
if curl -fsSL "$url"; then
printf '\n'
else
printf 'not found\n'
fi
doneRepository: openshift/release
Length of output: 13588
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
for branch in oadp-dev oadp-1.6; do
printf '%s\n' "--- bundle files on ${branch} ---"
curl -fsSL "https://api.github.com/repos/openshift/oadp-operator/contents/bundle/manifests?ref=${branch}" \
| jq -r '.[].name'
printf '%s\n' "--- image references on ${branch} ---"
files="$(
curl -fsSL "https://api.github.com/repos/openshift/oadp-operator/contents/bundle/manifests?ref=${branch}" \
| jq -r '.[].download_url'
)"
while IFS= read -r url; do
[ -n "$url" ] || continue
curl -fsSL "$url"
done <<< "$files" | rg -n 'image:|quay\.io/konveyor/oadp-operator|oadp-operator:(latest|oadp-dev|oadp-1\.6)' || true
doneRepository: openshift/release
Length of output: 9145
Add operator.substitutions to both bundle configurations.
Map quay.io/konveyor/oadp-operator:oadp-1.6 to oadp-operator-1.6. Map quay.io/konveyor/oadp-operator:latest to oadp-operator; the development bundle uses :latest, not :oadp-dev.
📍 Affects 2 files
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml#L15-L16(this comment)ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml#L15-L16
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml`
around lines 15 - 16, Add an operator.substitutions mapping to both bundle
configurations: in
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml:15-16,
map quay.io/konveyor/oadp-operator:oadp-1.6 to oadp-operator-1.6; in
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml:15-16,
map quay.io/konveyor/oadp-operator:latest to oadp-operator. Ensure the
development bundle uses the :latest substitution.
Source: MCP tools
|
/pj-rehearse pull-ci-openshift-oadp-operator-oadp-dev-ci-index pull-ci-openshift-oadp-operator-oadp-1.6-ci-index Note Responses generated with Claude |
|
@kaovilai: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse ack |
|
@kaovilai: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kaovilai, shubham-pampattiwar, weshayutin The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@kaovilai: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary
Split out of #83049 so it can merge — and its postsubmit actually run — before that PR does. #83049's new kdm-controller/kdm-plugin presubmit depends on
oadp-operator-index/oadp-operator-e2e-testsexisting in thekonveyorregistry namespace, which only happens once this merges and oadp-operator's own postsubmit runs for real. Landing this first lets #83049 rehearse against real promoted images instead of hitting the bootstrapping gap (images referenced by a not-yet-merged PR don't exist yet).Design
For both
oadp-devandoadp-1.6base configs:operator.bundles) and thebuild/ci-Dockerfilee2e test binary (test-oadp-operator) — previously built only ephemerally, per-PR, inside oadp-operator's own jobs. Nothing outside that repo could consume them.promotion.to[]entry (additional_images, tag-mode: noname, explicit branch tag) so each gets its own destination imagestream (oadp-operator-index,oadp-operator-e2e-tests) instead of colliding with the existingoadp-operatorimage promotion, or with each other across branches (each tagged with its own branch name:oadp-dev/oadp-1.6).ci-indexpresubmit per branch confirms the bundle still builds on oadp-operator PRs.No existing oadp-operator job behavior changes — every pre-existing
operator.substitutionsblock, and theimages/promotionblocks the kdm repos' own configs feed into those substitutions, is unchanged.Related
Test plan
make update/ ci-operator's own config+registry validation passes for both branches.ci-index,test-oadp-operator), not the destination names.Note
Responses generated with Claude
Summary by CodeRabbit
oadp-operatorCI for theoadp-devandoadp-1.6branches.ci-indexpresubmit coverage for bundle builds.