Skip to content

Promote oadp-operator bundle/index/e2e-test-binary images (oadp-dev, oadp-1.6) - #83110

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
kaovilai:oadp-operator-kdm-image-promotion
Aug 7, 2026
Merged

Promote oadp-operator bundle/index/e2e-test-binary images (oadp-dev, oadp-1.6)#83110
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
kaovilai:oadp-operator-kdm-image-promotion

Conversation

@kaovilai

@kaovilai kaovilai commented Aug 7, 2026

Copy link
Copy Markdown
Member

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-tests existing in the konveyor registry 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-dev and oadp-1.6 base configs:

  • 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. Nothing outside that repo could consume them.
  • 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 (each tagged with its own branch name: oadp-dev / oadp-1.6).
  • 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.

Related

Test plan

  • make update / ci-operator's own config+registry validation passes for both branches.
  • Generated job diffs confirm the new promotion targets resolve to real pipeline tags (ci-index, test-oadp-operator), not the destination names.

Note

Responses generated with Claude

Summary by CodeRabbit

  • Updates oadp-operator CI for the oadp-dev and oadp-1.6 branches.
  • Adds bundle and e2e test binary builds.
  • Promotes branch-tagged operator index and e2e test images on merge.
  • Adds branch-specific ci-index presubmit coverage for bundle builds.

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>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The 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.

Changes

OADP CI image and promotion configuration

Layer / File(s) Summary
Build and promotion definitions
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml, ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml
Both configurations build the test operator image from build/ci-Dockerfile and the operator bundle from build/Dockerfile.bundle. The configurations define promotion for the operator, E2E test, and index images.
Development promotion outputs
ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml
The development promotion excludes test-oadp-operator and publishes the additional images with the oadp-dev tag.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • openshift/release#83049: Both changes update OADP CI image and bundle promotion; that PR also adds datamover integration workflows.
🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes promotion of the bundle, index, and e2e test images for the specified branches.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The commit changes only CI configuration and generated job YAML; no Ginkgo test titles or dynamic test-name expressions were added or modified.
Test Structure And Quality ✅ Passed The PR changes only CI configuration and generated job YAML; it adds no Ginkgo test source or It blocks, so these Ginkgo quality requirements are not applicable.
Microshift Test Compatibility ✅ Passed The PR changes only CI configuration and generated job YAML; it adds no Ginkgo e2e tests or test declarations requiring MicroShift API compatibility review.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The patch changes only CI configuration and generated job YAML; it adds no Ginkgo e2e tests or multi-node test assumptions requiring SNO safeguards.
Topology-Aware Scheduling Compatibility ✅ Passed The diff changes only CI image, bundle, promotion, and generated job configuration; it adds no deployment manifests, operator code, controllers, or scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The commit changes only CI YAML and generated job YAML; it adds no OTE source, main/suite setup, or stdout-writing code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The diff changes only eight CI YAML files. It adds image builds, promotion, and ci-index jobs, with no new Ginkgo e2e test declarations or external network code.
No-Weak-Crypto ✅ Passed The patch changes only CI YAML and generated job definitions; added content contains no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, crypto implementation, or secret comparison.
Container-Privileges ✅ Passed The PR adds CI image, bundle, promotion, and job targets only; no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings appear in the patch.
No-Sensitive-Data-In-Logs ✅ Passed The added YAML contains only build and promotion references; it adds no logging or sensitive values. Existing reporter links to job logs are unchanged.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci
openshift-ci Bot requested review from mpryc and sseago August 7, 2026 15:37
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 7, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@kaovilai: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-oadp-operator-oadp-1.6-ci-index openshift/oadp-operator presubmit Presubmit changed
pull-ci-openshift-oadp-operator-oadp-1.6-images openshift/oadp-operator presubmit Presubmit changed
pull-ci-openshift-oadp-operator-oadp-dev-ci-index openshift/oadp-operator presubmit Presubmit changed
pull-ci-openshift-oadp-operator-oadp-dev-images openshift/oadp-operator presubmit Presubmit changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.18-ci-index openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.18-images openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-ci-index openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-e2e-test-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-e2e-test-cli-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-e2e-test-hcp-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-e2e-test-kubevirt-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-images openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-tls-pqc-readiness openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-tls13-adherence openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-ci-index openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-e2e-test-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-e2e-test-cli-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-e2e-test-hcp-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-e2e-test-kubevirt-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-images openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-tls-pqc-readiness openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-tls13-adherence openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-5.0-ci-index openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-5.0-e2e-test-aws openshift/oadp-operator presubmit Ci-operator config changed
pull-ci-openshift-oadp-operator-oadp-1.6-5.0-e2e-test-cli-aws openshift/oadp-operator presubmit Ci-operator config changed

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
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals.

Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between bbd3c97 and 5fb42e4.

⛔ Files ignored due to path filters (6)
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/oadp-operator/openshift-oadp-operator-oadp-dev-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (2)
  • ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-1.6.yaml
  • ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-oadp-dev.yaml

Comment on lines +15 to +16
bundles:
- dockerfile_path: build/Dockerfile.bundle

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ 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-operator

Repository: 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-operator

Repository: 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
done

Repository: 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
done

Repository: 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

@kaovilai

kaovilai commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@kaovilai: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@weshayutin weshayutin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/LGTM

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 7, 2026

@shubham-pampattiwar shubham-pampattiwar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@kaovilai

kaovilai commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@kaovilai: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Aug 7, 2026
@openshift-ci

openshift-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

[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

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci

openshift-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

@kaovilai: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions 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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 560d430 into openshift:main Aug 7, 2026
18 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants