Skip to content

CLID-479: OTE migration#1375

Open
adolfo-ab wants to merge 10 commits intoopenshift:mainfrom
adolfo-ab:ote-migration
Open

CLID-479: OTE migration#1375
adolfo-ab wants to merge 10 commits intoopenshift:mainfrom
adolfo-ab:ote-migration

Conversation

@adolfo-ab
Copy link
Copy Markdown
Contributor

@adolfo-ab adolfo-ab commented Mar 24, 2026

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

Summary by CodeRabbit

  • New Features

    • Added a packaged test-extension CLI and distributed test extension binary.
  • Tests

    • Added comprehensive e2e test suites with many new fixtures covering operators, channels/platforms, additional/blocked images, delete flows, Helm/subscription scenarios.
    • Added e2e test utilities for registry lifecycle, polling/verification, bindata handling, and signature validation.
  • Chores

    • Added build and container packaging support and updated ignore patterns.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 24, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 24, 2026
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 24, 2026
@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Mar 24, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 24, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new tests-extension module with build tooling and Dockerfiles, a Go CLI test-extension binary that registers e2e suites and hooks, extensive e2e utilities and fixture bindata support, and a large set of testdata YAML workloads; also updates .gitignore to ignore built artifacts.

Changes

Cohort / File(s) Summary
Repository ignores & CI Dockerfiles
/.gitignore, Dockerfile.tests-extension, images/cli/Dockerfile.ci
Ignored /tests-extension/bin/ and /tests-extension/vendor/; added Dockerfile.tests-extension multi-stage build producing a gzipped test-extension binary and updated images/cli/Dockerfile.ci to include the artifact.
Build targets & bindata rules
tests-extension/Makefile, tests-extension/test/e2e/bindata.mk
New Makefile targets to vendor, build (CGO disabled), and package the binary; bindata.mk installs go-bindata, generates/formats testdata/bindata.go, verifies/cleans bindata.
Go module & dependency pins
tests-extension/go.mod
New module github.com/openshift/oc-mirror-tests-extension with many require entries and extensive replace directives pinning forks/versions — substantial dependency manifest to review.
CLI entrypoint & suite registration
tests-extension/cmd/main.go
New main that constructs an extension registry, imports/generates test specs from upstream Ginkgo suites, filters specs to module-local /test/e2e/, sets lifecycle to Informing, injects a BeforeAll OTP init hook, and exposes Cobra commands.
E2E utilities (dense logic)
tests-extension/test/e2e/util.go
Large new utility file (~1040 LOC) adding registry lifecycle, readiness/polling, template application, operator install/uninstall, cert/trust handling, manifest/catalog helpers, signature/skopeo helpers, and exported ControlplaneInfo type — high-density logic requiring careful review.
Bindata fixture helper
tests-extension/test/e2e/testdata/fixtures.go
Adds FixturePath(...) to materialize embedded bindata into a fixture root; currently uses panic-based error handling.
E2E testdata & workload fixtures
tests-extension/test/e2e/testdata/*, tests-extension/test/e2e/testdata/workloads/*
Many new YAML fixtures: numerous ImageSetConfiguration and DeleteImageSetConfiguration resources, subscription/operatorgroup/templates, RBAC manifests, operators lists, and other workload configs for e2e scenarios.
Small plaintext/list files
tests-extension/test/e2e/testdata/workloads/operators.lst
New newline-delimited operators list used by tests.

Sequence Diagram(s)

sequenceDiagram
  participant Dev as Developer/CI
  participant Builder as Go Builder (Docker)
  participant Runtime as Runtime Image
  participant Cluster as OpenShift Cluster
  participant TestExt as tests-extension binary
  participant Registry as Image Registry

  Dev->>Builder: run multi-stage build (vendor deps, install go-bindata, generate bindata, go build, gzip binary)
  Builder->>Runtime: copy gzipped test-extension binary into runtime image
  Dev->>Cluster: run container / CI job using runtime image
  Cluster->>TestExt: start tests-extension (Cobra CLI)
  TestExt->>Cluster: apply templates, install operators, create registries, poll readiness
  TestExt->>Registry: query tags/signatures and validate registry APIs
  TestExt->>Cluster: execute e2e suites and report results
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

🚥 Pre-merge checks | ✅ 6 | ❌ 4

❌ Failed checks (3 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Microshift Test Compatibility ⚠️ Warning New e2e tests use unavailable OpenShift APIs (image.config.openshift.io, ClusterOperator, OLM resources) and reference unavailable namespaces without proper MicroShift exclusion mechanisms. Add [apigroup:config.openshift.io], [Skipped:MicroShift] tags, or guard with exutil.IsMicroShiftCluster() runtime checks to exclude tests from MicroShift environments.
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning PR adds 50 Ginkgo e2e tests that pull images from external registries without [Skipped:Disconnected] marker and use non-IPv6-aware URL construction, causing failures in disconnected and IPv6-only environments. Add [Skipped:Disconnected] marker to test names, replace URL construction with net.JoinHostPort() for IPv6 support, and implement mirror endpoint configuration or mock skopeo calls for disconnected scenarios.
Title check ❓ Inconclusive The title 'CLID-479: OTE migration' refers to a real part of the changeset (adding OTE/test-extension infrastructure) but is vague and does not clearly describe the main scope of changes (comprehensive e2e test suite additions with extensive fixtures and utilities). Consider clarifying the title to better describe the core change, such as 'Add comprehensive e2e test extension with test suites and fixtures' or similar, to make the purpose clearer to reviewers scanning history.
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Stable And Deterministic Test Names ✅ Passed No Ginkgo test definitions with dynamic test names found in the pull request code.
Test Structure And Quality ✅ Passed No new Ginkgo test specs (Describe/It blocks) are introduced in this PR—only utilities and fixture data.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR adds Ginkgo e2e tests for oc-mirror command with appropriate [Serial] labels and Single Node OpenShift compatibility.
Topology-Aware Scheduling Compatibility ✅ Passed PR adds test infrastructure for oc-mirror e2e testing with no production Kubernetes deployments or topology-incompatible scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The OTE binary entry point in main.go contains no direct stdout writes at process level. All output handling is properly delegated to Ginkgo extension framework and Cobra command infrastructure.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Mar 24, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: adolfo-ab
Once this PR has been reviewed and has the lgtm label, please assign aguidirh for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@adolfo-ab adolfo-ab marked this pull request as ready for review April 9, 2026 14:51
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 9, 2026
@openshift-ci openshift-ci bot requested review from aguidirh and r4f4 April 9, 2026 14:51
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 16

🧹 Nitpick comments (8)
tests-extension/test/e2e/testdata/workloads/config-83875.yaml (1)

7-7: Adjust indentation for consistency.

Line 7 uses 7 spaces before the list item dash, while the standard pattern in other configuration files uses 8 spaces (maintaining 2-space increments). This inconsistency could affect YAML parsing and makes the codebase harder to maintain.

🔧 Proposed fix
       packages:
-       - name: recipe
+        - name: recipe
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-83875.yaml` at line 7,
Adjust the indentation of the list item "- name: recipe" in config-83875.yaml to
use 8 spaces before the dash (consistent 2-space increments) instead of the
current 7 spaces so it matches the rest of the workload configs and avoids YAML
parsing/formatting inconsistencies; update the entry in the same list block that
contains "name: recipe" to align with other items.
tests-extension/test/e2e/testdata/workloads/config-79408.yaml (1)

14-15: Prefer a pinned digest/version over :latest for stable e2e behavior.
Using registry.redhat.io/ubi8/ubi:latest can make this fixture nondeterministic as upstream tags move. Consider pinning to an immutable digest (or a fixed version tag).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-79408.yaml` around lines
14 - 15, The test fixture uses an image name with a mutable tag
("additionalImages" -> name: "registry.redhat.io/ubi8/ubi:latest"); replace the
mutable :latest with an immutable identifier by pinning to a specific version
tag or digest (for example a fixed semver tag or an image@sha256:<digest>) to
make e2e runs deterministic—update the value of the name entry under
additionalImages accordingly.
tests-extension/test/e2e/testdata/workloads/config-88132-target-repo-tag.yaml (1)

5-13: Consider replacing :latest source tags with fixed versions/digests.
For an e2e fixture, mutable tags can make outcomes drift over time and reduce reproducibility.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@tests-extension/test/e2e/testdata/workloads/config-88132-target-repo-tag.yaml`
around lines 5 - 13, The fixture uses mutable :latest tags for the image entries
(docker://registry.redhat.io/ubi9/ubi-minimal:latest,
registry.access.redhat.com/ubi8/nginx-120:latest,
docker://quay.io/fedora/fedora:latest) which makes e2e results
non-deterministic; update each of these names in the YAML to use a fixed semver
tag or an immutable image digest (sha256) instead (for example replace :latest
with a specific release tag or `@sha256`:<digest>) so tests reference exact image
content—locate the three name keys and substitute deterministic tags/digests for
ubi-minimal, nginx-120, and fedora entries.
tests-extension/test/e2e/testdata/workloads/config-72972.yaml (1)

5-5: Use an immutable reference for the UBI image to reduce test drift.
registry.redhat.io/ubi8/ubi:latest can change over time; pinning a digest keeps this workload fixture reproducible.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-72972.yaml` at line 5, The
manifest currently uses a mutable tag "registry.redhat.io/ubi8/ubi:latest" in
the workload fixture; replace that tag with an immutable digest reference
(registry.redhat.io/ubi8/ubi@sha256:<actual-digest>) so the test fixture is
reproducible. Locate the "name" field containing
"registry.redhat.io/ubi8/ubi:latest" in the config-72972.yaml test workload and
update it to the exact image digest retrieved from the Red Hat registry (or your
approved fixture digest), ensuring you include the full "@sha256:..." digest
string.
tests-extension/test/e2e/testdata/workloads/config-74660.yaml (1)

5-5: Fix typo in comment.

"ooperator" should be "operator".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-74660.yaml` at line 5, Fix
the typo in the inline comment for the 'graph' key: change the word "ooperator"
to "operator" in the comment following graph: true so it reads "Required for the
OSUS operator"; update the comment text near the 'graph' key to the corrected
spelling.
tests-extension/test/e2e/testdata/workloads/config-74650-minor-v1.yaml (1)

9-9: Fix typo in comment.

"ooperator" should be "operator".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-74650-minor-v1.yaml` at
line 9, Fix the typo in the inline comment for the "graph" setting: change
"Required for the OSUS ooperator" to "Required for the OSUS operator" so the
comment on the graph: true line reads correctly.
tests-extension/test/e2e/testdata/workloads/config-74650-patch-v2.yaml (1)

9-9: Minor typo in comment.

The comment has a typo: "ooperator" should be "operator".

✏️ Proposed fix
-    graph: true # Required for the OSUS ooperator
+    graph: true # Required for the OSUS operator
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/test/e2e/testdata/workloads/config-74650-patch-v2.yaml` at
line 9, Fix the typo in the inline comment next to the graph key: replace
"Required for the OSUS ooperator" with "Required for the OSUS operator" in the
same line containing "graph: true" so the comment reads correctly.
tests-extension/Makefile (1)

20-24: Consider adding conventional all and test phony targets

To improve compatibility with common Makefile tooling and repo checks, add minimal all and test targets (even if test delegates or is a no-op placeholder for now).

Suggested change
+.PHONY: all
+all: build
+
+.PHONY: test
+test:
+	`@echo` "No tests target defined for tests-extension yet"
+
 .PHONY: help
 help:
 	`@echo` "Available targets:"
 	`@echo` "  build  - Build extension binary"
 	`@echo` "  clean  - Remove binaries and bindata"
+	`@echo` "  test   - Run tests (placeholder)"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests-extension/Makefile` around lines 20 - 24, Add conventional phony
targets "all" and "test" to the Makefile alongside the existing "help", "build",
and "clean" targets: declare them in the .PHONY list and implement "all" to
delegate to the existing "build" target and "test" to either run the repo's test
command (e.g., "go test ./...") or be a no-op placeholder that prints a message
so common tools and checks find these targets; update the .PHONY line and add
short recipe bodies for the "all" and "test" targets.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Dockerfile.tests-extension`:
- Around line 21-30: The final image stage runs as root by default; add a
non-root runtime user and ensure the copied test extension binary is
owned/accessible by that user: create a non-root user/group (e.g., uid 1001) in
the final stage, chown the copied file from /usr/bin/ (the artifact copied from
the test-extension-builder stage) to that user, and set USER to that non-root
user so the image no longer runs as root at runtime; also ensure any directories
the process needs are writable by that user.
- Line 11: Replace the non-reproducible install of go-bindata that uses the
`@latest` tag by pinning it to a specific released version: change the GOFLAGS= go
install github.com/go-bindata/go-bindata/v3/go-bindata@latest invocation to use
a concrete semver tag (for example `@v3.x.y`) so builds are reproducible and
immune to upstream drift; ensure the chosen version is a known-good release and
update any related lockfiles or build metadata accordingly.

In `@tests-extension/cmd/main.go`:
- Around line 27-29: The e2e framework flags registered by
util.InitStandardFlags() are never parsed because flag.CommandLine isn't bound
to the Cobra root and framework.AfterReadingAllFlags(&framework.TestContext)
runs before Cobra parses flags; fix by calling
root.PersistentFlags().AddGoFlagSet(flag.CommandLine) after creating the root
command and moving the framework.AfterReadingAllFlags(&framework.TestContext)
invocation into a root.PersistentPreRun (or PersistentPreRunE) hook so it runs
after Cobra has parsed CLI flags; keep util.InitStandardFlags() where it is but
ensure the new AddGoFlagSet and PersistentPreRun changes are applied (also
update the same pattern for the other occurrence around lines 75-83).

In `@tests-extension/go.mod`:
- Around line 6-15: The go.mod in tests-extension declares direct requires for
github.com/onsi/ginkgo/v2 v2.28.1 and k8s.io/* (apimachinery/component-base
v0.34.1 and kubernetes v1.34.1) but has replacements to OpenShift forks
(github.com/openshift/onsi-ginkgo and github.com/openshift/kubernetes) that are
on different, older versions; update tests-extension/go.mod so the required
versions match the replaced fork versions (or remove/adjust the replacements to
match the direct requires) to keep a consistent fork stack: either change the
require lines for github.com/onsi/ginkgo/v2 and k8s.io/*/kubernetes to the exact
versions used by the openshift replacements, or update the replace entries
(openshift/onsi-ginkgo, openshift/kubernetes) to point at tags/commits that
correspond to v2.28.1 and v1.34.1; also scan other go.mod files in the repo for
occurrences of github.com/onsi/ginkgo/v2, github.com/openshift/onsi-ginkgo,
k8s.io/(apimachinery|component-base|kubernetes) and align them all to the same
set of versions so tests-extension/cmd/main.go imports resolve consistently.

In `@tests-extension/test/e2e/bindata.mk`:
- Around line 5-8: The make rule for $(GO_BINDATA) currently installs go-bindata
with `@latest` which makes generated bindata.go non-reproducible; change the go
install line in the $(GO_BINDATA) target to pin a fixed semver (replace `@latest`
with a specific tag like `@vX.Y.Z`), update any related documentation/variables if
needed, and ensure the pinned version is committed so the verify-bindata target
continues to match exact generated output.

In `@tests-extension/test/e2e/testdata/workloads/config-72708.yaml`:
- Line 5: Replace the mutable image tag "registry.redhat.io/ubi8/ubi:latest" in
the fixture with a pinned digest so the test is reproducible; locate the
occurrence of that image string in config-72708.yaml and change the tag form to
the image@sha256:<digest> form (obtain the correct sha256 by pulling the image
or querying the registry / manifest API) and commit the updated YAML.

In `@tests-extension/test/e2e/testdata/workloads/config-72913.yaml`:
- Around line 10-15: The fixture uses mutable image tags: the catalog field
value "registry.redhat.io/redhat/redhat-operator-index:v4.15" and the
additionalImages entry "registry.redhat.io/rhel8/support-tools:latest"; replace
both with immutable digests (pin to sha256 digests) so the test’s mirrored
payload is stable—update the catalog value and the additionalImages entries to
their corresponding image@sha256:<digest> forms and commit the updated config.

In `@tests-extension/test/e2e/testdata/workloads/config-72949-2.yaml`:
- Around line 6-8: The catalog field uses a mutable tag; update the YAML so the
catalog key in this fixture is pinned to an immutable digest (replace catalog:
registry.redhat.io/redhat/redhat-marketplace-index:v4.15 with a digest form like
registry.redhat.io/redhat/redhat-marketplace-index@sha256:<actual-digest>) so
the mirror test is stable; leave targetCatalog and targetTag as-is but ensure
the chosen sha256 digest corresponds to the v4.15 content you intend to lock.

In `@tests-extension/test/e2e/testdata/workloads/config-73783.yaml`:
- Line 6: The OCI image digest in the image reference string
"quay.io/coreos/etcd:v3.5.4@sha256:a67fb152d4c53223e96e818420c37f11d05c2d92cf62c05ca5604066c37295e9ab"
is 66 hex chars instead of the required 64; remove the trailing two characters
("ab") so the digest is exactly 64 hexadecimal characters (ending with
"...c37295e9a") to produce a valid sha256 digest and prevent image-pull
failures.

In `@tests-extension/test/e2e/testdata/workloads/customsub.yaml`:
- Around line 6-8: The YAML mapping contains a duplicated key "kind:
Subscription" (appearing twice) which can cause parser-dependent behavior;
remove the redundant "kind: Subscription" entry so the mapping only declares
kind once (keep the single "kind: Subscription" line alongside the existing
"apiVersion: operators.coreos.com/v1alpha1"), ensuring the file has one unique
kind declaration.

In `@tests-extension/test/e2e/testdata/workloads/delete-config-72972.yaml`:
- Line 5: Replace the floating image tag used in the test fixture by pinning it
to a digest: locate the image string "registry.redhat.io/ubi8/ubi:latest" in the
test data and change it to a digest-pinned reference (for example
"registry.redhat.io/ubi8/ubi@sha256:<actual-digest>") so the e2e workload
becomes deterministic and matches the other digest-pinned image in this file.

In `@tests-extension/test/e2e/testdata/workloads/sa-79215.yaml`:
- Around line 6-30: The manifest binds an over-privileged wildcard ClusterRole
("test-79215-installer-admin-clusterrole") to the ServiceAccount "test-79215";
narrow the permissions by replacing the wildcards in apiGroups/resources/verbs
with only the actual API groups, resource names and verbs this workload needs,
and if the workload does not require cluster-wide access convert the
ClusterRole/ClusterRoleBinding to a namespaced Role and RoleBinding (keep the
subject ServiceAccount name "test-79215" and namespace "ns-79215" and update
roleRef/kind/name accordingly) so the binding is limited to the ns-79215
namespace.

In `@tests-extension/test/e2e/util.go`:
- Line 444: The fmt.Printf call printing the variable file uses the wrong format
specifier (%f) for a string; change the format specifier in the println call
that references file (the fmt.Printf(...) line) to a string specifier such as %s
or %q so the output is rendered correctly (e.g., replace %f with %s).
- Around line 598-600: The code currently checks the wrong response variable—use
tagsResp instead of resp—so replace the condition that tests resp.StatusCode
with one that tests tagsResp.StatusCode and update the error message to
reference tagsURL (or include tagsResp.Status) so a failed tags request is
correctly detected; look for the block that uses resp, tagsResp and tagsURL to
make this change.
- Around line 810-812: Remove the leftover debug sleep and print: delete the
fmt.Println("Debug......") and time.Sleep(20 * time.Minute) calls in
tests-extension/test/e2e/util.go and invoke e2e.Failf("All pods related to
deployment are not running") immediately (or replace the sleep with a proper
retry/backoff routine if intended); ensure the failing path uses e2e.Failf as
shown so CI won't hang for 20 minutes.
- Around line 856-858: The conditional that checks for presence of both
signature-configmap.yaml and signature-configmap.json in
signatureConfigmapOutput is incorrect: it currently uses if !yaml && json which
only fails when YAML is missing and JSON present; change it to fail when either
file is missing by checking if !(strings.Contains(signatureConfigmapOutput,
"signature-configmap.yaml") && strings.Contains(signatureConfigmapOutput,
"signature-configmap.json")) or equivalently if !strings.Contains(... "yaml") ||
!strings.Contains(... "json") and then call e2e.Failf as before; update the
condition around signatureConfigmapOutput in tests-extension/test/e2e/util.go
accordingly.

---

Nitpick comments:
In `@tests-extension/Makefile`:
- Around line 20-24: Add conventional phony targets "all" and "test" to the
Makefile alongside the existing "help", "build", and "clean" targets: declare
them in the .PHONY list and implement "all" to delegate to the existing "build"
target and "test" to either run the repo's test command (e.g., "go test ./...")
or be a no-op placeholder that prints a message so common tools and checks find
these targets; update the .PHONY line and add short recipe bodies for the "all"
and "test" targets.

In `@tests-extension/test/e2e/testdata/workloads/config-72972.yaml`:
- Line 5: The manifest currently uses a mutable tag
"registry.redhat.io/ubi8/ubi:latest" in the workload fixture; replace that tag
with an immutable digest reference
(registry.redhat.io/ubi8/ubi@sha256:<actual-digest>) so the test fixture is
reproducible. Locate the "name" field containing
"registry.redhat.io/ubi8/ubi:latest" in the config-72972.yaml test workload and
update it to the exact image digest retrieved from the Red Hat registry (or your
approved fixture digest), ensuring you include the full "@sha256:..." digest
string.

In `@tests-extension/test/e2e/testdata/workloads/config-74650-minor-v1.yaml`:
- Line 9: Fix the typo in the inline comment for the "graph" setting: change
"Required for the OSUS ooperator" to "Required for the OSUS operator" so the
comment on the graph: true line reads correctly.

In `@tests-extension/test/e2e/testdata/workloads/config-74650-patch-v2.yaml`:
- Line 9: Fix the typo in the inline comment next to the graph key: replace
"Required for the OSUS ooperator" with "Required for the OSUS operator" in the
same line containing "graph: true" so the comment reads correctly.

In `@tests-extension/test/e2e/testdata/workloads/config-74660.yaml`:
- Line 5: Fix the typo in the inline comment for the 'graph' key: change the
word "ooperator" to "operator" in the comment following graph: true so it reads
"Required for the OSUS operator"; update the comment text near the 'graph' key
to the corrected spelling.

In `@tests-extension/test/e2e/testdata/workloads/config-79408.yaml`:
- Around line 14-15: The test fixture uses an image name with a mutable tag
("additionalImages" -> name: "registry.redhat.io/ubi8/ubi:latest"); replace the
mutable :latest with an immutable identifier by pinning to a specific version
tag or digest (for example a fixed semver tag or an image@sha256:<digest>) to
make e2e runs deterministic—update the value of the name entry under
additionalImages accordingly.

In `@tests-extension/test/e2e/testdata/workloads/config-83875.yaml`:
- Line 7: Adjust the indentation of the list item "- name: recipe" in
config-83875.yaml to use 8 spaces before the dash (consistent 2-space
increments) instead of the current 7 spaces so it matches the rest of the
workload configs and avoids YAML parsing/formatting inconsistencies; update the
entry in the same list block that contains "name: recipe" to align with other
items.

In
`@tests-extension/test/e2e/testdata/workloads/config-88132-target-repo-tag.yaml`:
- Around line 5-13: The fixture uses mutable :latest tags for the image entries
(docker://registry.redhat.io/ubi9/ubi-minimal:latest,
registry.access.redhat.com/ubi8/nginx-120:latest,
docker://quay.io/fedora/fedora:latest) which makes e2e results
non-deterministic; update each of these names in the YAML to use a fixed semver
tag or an immutable image digest (sha256) instead (for example replace :latest
with a specific release tag or `@sha256`:<digest>) so tests reference exact image
content—locate the three name keys and substitute deterministic tags/digests for
ubi-minimal, nginx-120, and fedora entries.
🪄 Autofix (Beta)

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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0ae92345-2672-4965-8a32-845a5769060a

📥 Commits

Reviewing files that changed from the base of the PR and between d1b7f94 and 5a0a9d2.

⛔ Files ignored due to path filters (1)
  • tests-extension/go.sum is excluded by !**/*.sum
📒 Files selected for processing (78)
  • .gitignore
  • Dockerfile.tests-extension
  • tests-extension/Makefile
  • tests-extension/cmd/main.go
  • tests-extension/go.mod
  • tests-extension/test/e2e/bindata.mk
  • tests-extension/test/e2e/oc_mirror_v2.go
  • tests-extension/test/e2e/testdata/bindata.go
  • tests-extension/test/e2e/testdata/fixtures.go
  • tests-extension/test/e2e/testdata/workloads/case83849/config-83849.yaml
  • tests-extension/test/e2e/testdata/workloads/case83849/test-mirror-helm-0.3.0.tgz
  • tests-extension/test/e2e/testdata/workloads/case83864/test-mirror-helm-err.tgz
  • tests-extension/test/e2e/testdata/workloads/case84007/config-84007.yaml
  • tests-extension/test/e2e/testdata/workloads/case84007/operators.lst
  • tests-extension/test/e2e/testdata/workloads/ceFile-79215.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72708.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72913.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72917.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72920.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72938-1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72938.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72942.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72948.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72949-1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72949-2.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72971.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72972.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72973.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72982.yaml
  • tests-extension/test/e2e/testdata/workloads/config-72983.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73124.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73359.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73377.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73452.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73783.yaml
  • tests-extension/test/e2e/testdata/workloads/config-73791.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74649.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74650-minor-v1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74650-minor-v2.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74650-patch-v1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74650-patch-v2.yaml
  • tests-extension/test/e2e/testdata/workloads/config-74660.yaml
  • tests-extension/test/e2e/testdata/workloads/config-75422-delete.yaml
  • tests-extension/test/e2e/testdata/workloads/config-75422.yaml
  • tests-extension/test/e2e/testdata/workloads/config-75425.yaml
  • tests-extension/test/e2e/testdata/workloads/config-75437.yaml
  • tests-extension/test/e2e/testdata/workloads/config-75438.yaml
  • tests-extension/test/e2e/testdata/workloads/config-76469.yaml
  • tests-extension/test/e2e/testdata/workloads/config-76489.yaml
  • tests-extension/test/e2e/testdata/workloads/config-76596.yaml
  • tests-extension/test/e2e/testdata/workloads/config-76597-delete.yaml
  • tests-extension/test/e2e/testdata/workloads/config-76597.yaml
  • tests-extension/test/e2e/testdata/workloads/config-77060.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79215.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79217-1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79217.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79408.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79452-v1.yaml
  • tests-extension/test/e2e/testdata/workloads/config-79452-v2.yaml
  • tests-extension/test/e2e/testdata/workloads/config-83582.yaml
  • tests-extension/test/e2e/testdata/workloads/config-83875.yaml
  • tests-extension/test/e2e/testdata/workloads/config-86309.yaml
  • tests-extension/test/e2e/testdata/workloads/config-87992.yaml
  • tests-extension/test/e2e/testdata/workloads/config-88132-digest.yaml
  • tests-extension/test/e2e/testdata/workloads/config-88132-invalid.yaml
  • tests-extension/test/e2e/testdata/workloads/config-88132-target-repo-tag.yaml
  • tests-extension/test/e2e/testdata/workloads/config-88132-target-repo.yaml
  • tests-extension/test/e2e/testdata/workloads/config-88132-target-tag.yaml
  • tests-extension/test/e2e/testdata/workloads/customsub.yaml
  • tests-extension/test/e2e/testdata/workloads/delete-config-72708.yaml
  • tests-extension/test/e2e/testdata/workloads/delete-config-72972.yaml
  • tests-extension/test/e2e/testdata/workloads/delete-config-77061.yaml
  • tests-extension/test/e2e/testdata/workloads/delete-config-79217.yaml
  • tests-extension/test/e2e/testdata/workloads/delete-config-79452.yaml
  • tests-extension/test/e2e/testdata/workloads/ibmcustomsub.yaml
  • tests-extension/test/e2e/testdata/workloads/operatorgroup.yaml
  • tests-extension/test/e2e/testdata/workloads/sa-79215.yaml
  • tests-extension/test/e2e/util.go

Comment thread Dockerfile.tests-extension
Comment thread Dockerfile.tests-extension
Comment thread tests-extension/cmd/main.go
Comment thread tests-extension/go.mod
Comment thread tests-extension/test/e2e/bindata.mk
Comment thread tests-extension/test/e2e/testdata/workloads/sa-79215.yaml
Comment thread tests-extension/test/e2e/util.go
Comment thread tests-extension/test/e2e/util.go
Comment thread tests-extension/test/e2e/util.go
Comment thread tests-extension/test/e2e/util.go
@aguidirh
Copy link
Copy Markdown
Contributor

/retest

Copy link
Copy Markdown
Contributor

@aguidirh aguidirh left a comment

Choose a reason for hiding this comment

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

Thanks for the PR @adolfo-ab

I left some comments based on what I read from the OTE migration doc.

Could you please see why the sanity is failing and if does code rabbit suggestions make sense?

Comment thread Dockerfile.tests-extension Outdated
Comment thread tests-extension/Makefile Outdated
Comment thread tests-extension/cmd/main.go
Comment thread tests-extension/test/e2e/oc_mirror_v2.go
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

Summary by CodeRabbit

  • Tests

  • Added comprehensive end-to-end testing framework with extensive test coverage for mirror operations, including operator catalogs, platform configurations, and image handling scenarios.

  • Chores

  • Added build infrastructure and Docker support for test extension compilation and deployment.

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 openshift-eng/jira-lifecycle-plugin repository.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
Dockerfile.tests-extension (1)

8-18: Reduce drift by delegating build steps to tests-extension/Makefile.

Lines 8-15 duplicate vendoring/bindata/build logic already maintained in tests-extension/Makefile. Calling the Make target here keeps flags and generation flow in one place.

Proposed refactor
 RUN cd tests-extension && \
-    GOTOOLCHAIN=auto go mod vendor && \
-    GOPATH=$(go env GOPATH) && \
-    GOFLAGS= go install github.com/go-bindata/go-bindata/v3/go-bindata@latest && \
-    $GOPATH/bin/go-bindata -nocompress \
-        -pkg testdata -o test/e2e/testdata/bindata.go -prefix "testdata" test/e2e/testdata/... && \
-    gofmt -s -w test/e2e/testdata/bindata.go && \
-    CGO_ENABLED=0 GO_COMPLIANCE_POLICY="exempt_all" GOTOOLCHAIN=auto go build -mod=vendor -o bin/oc-mirror-tests-ext ./cmd && \
+    $(MAKE) build && \
     cd bin && \
     tar -czvf oc-mirror-test-extension.tar.gz oc-mirror-tests-ext && \
     rm -f oc-mirror-tests-ext
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Dockerfile.tests-extension` around lines 8 - 18, The
Dockerfile.tests-extension RUN block duplicates vendoring, bindata generation,
formatting and build steps that are already implemented in
tests-extension/Makefile; replace the multi-step RUN sequence with a single make
invocation (e.g., call the appropriate Makefile target such as the
tests-extension Makefile's vendor/bindata/build or a combined target) so that
Docker delegates GOTOOLCHAIN, go mod vendor, go-bindata generation, gofmt, and
the CGO_DISABLED build to the Makefile; ensure the Docker RUN uses `cd
tests-extension && make <target>` (the target name present in the Makefile) and
then archives the produced binary in bin/oc-mirror-tests-ext as before.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests-extension/Makefile`:
- Around line 20-24: Add missing phony targets to the Makefile: declare "all"
and "test" in the .PHONY list and implement simple targets named all and test
consistent with other project Makefiles (e.g., make all should depend on build;
make test should run the project's test command or a placeholder invocation used
elsewhere). Update the .PHONY line to include all and test and add the
corresponding target stubs (all: build and test: <test-command>) so the file
matches the project's Makefile conventions.

---

Nitpick comments:
In `@Dockerfile.tests-extension`:
- Around line 8-18: The Dockerfile.tests-extension RUN block duplicates
vendoring, bindata generation, formatting and build steps that are already
implemented in tests-extension/Makefile; replace the multi-step RUN sequence
with a single make invocation (e.g., call the appropriate Makefile target such
as the tests-extension Makefile's vendor/bindata/build or a combined target) so
that Docker delegates GOTOOLCHAIN, go mod vendor, go-bindata generation, gofmt,
and the CGO_DISABLED build to the Makefile; ensure the Docker RUN uses `cd
tests-extension && make <target>` (the target name present in the Makefile) and
then archives the produced binary in bin/oc-mirror-tests-ext as before.
🪄 Autofix (Beta)

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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 00021127-eafd-477a-bde0-685fbdd6cc16

📥 Commits

Reviewing files that changed from the base of the PR and between 5a0a9d2 and c5890a5.

📒 Files selected for processing (2)
  • Dockerfile.tests-extension
  • tests-extension/Makefile

Comment thread tests-extension/Makefile
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 14, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

Summary by CodeRabbit

  • New Features

  • Added a test extension binary and CLI-based test runner.

  • Tests

  • Added comprehensive end-to-end test suites and many new test fixtures covering operator catalogs, platform/channel scenarios, additional images, deletion workflows, and Helm/Subscription templates.

  • Added test utilities to manage registries, polling/verification helpers, and signature validation helpers.

  • Chores

  • Added build and container image packaging support and updated ignore patterns.

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 openshift-eng/jira-lifecycle-plugin repository.

@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/origin#31006

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 14, 2026

@adolfo-ab: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/7c82a9e0-37f1-11f1-8f47-552584c66ffc-0

@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/origin#31006

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 15, 2026

@adolfo-ab: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/3268a3e0-38c4-11f1-8097-e51627f73738-0

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 15, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target either version "5.0." or "openshift-5.0.", but it targets "openshift-4.22" instead.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

Summary by CodeRabbit

  • New Features

  • Added a test extension CLI and packaged test extension binary for distributions.

  • Tests

  • Added comprehensive end-to-end test suites, many new test fixtures (operators, platforms/channels, additional/blocked images, delete flows, Helm/Subscription templates).

  • Added e2e test utilities for registry setup, polling/verification, and signature validation.

  • Chores

  • Added build and container packaging support and updated ignore patterns.

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 openshift-eng/jira-lifecycle-plugin repository.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

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 the current code and only fix it if needed.

Inline comments:
In `@Dockerfile.tests-extension`:
- Around line 30-34: The LABEL instruction for com.redhat.component is malformed
due to a newline inside the quoted value; fix the LABEL block so the
com.redhat.component value is a single continuous quoted string (e.g.,
com.redhat.component="...-extension") and preserve the line-continuation
backslashes for other labels if needed; ensure no stray newline or unmatched
quote remains in the LABEL statement so the Docker build no longer fails.
🪄 Autofix (Beta)

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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: baee69a5-1025-4af8-879e-4c2f97230579

📥 Commits

Reviewing files that changed from the base of the PR and between 7d9bac2 and 1aa5934.

📒 Files selected for processing (5)
  • Dockerfile.tests-extension
  • images/cli/Dockerfile.ci
  • tests-extension/cmd/main.go
  • tests-extension/test/e2e/oc_mirror_v2.go
  • tests-extension/test/e2e/testdata/bindata.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • tests-extension/cmd/main.go

Comment thread Dockerfile.tests-extension
@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/origin#31006

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 15, 2026

@adolfo-ab: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/dc7638b0-38d9-11f1-8041-6bf03a0e77d4-0

@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 16, 2026

@adolfo-ab: This pull request references CLID-479 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target either version "5.0." or "openshift-5.0.", but it targets "openshift-4.22" instead.

Details

In response to this:

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Github / Jira issue:

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Expected Outcome

Please describe the outcome expected from the tests.

Summary by CodeRabbit

  • New Features

  • Added a packaged test-extension CLI and distributed test extension binary.

  • Tests

  • Added comprehensive e2e test suites with many new fixtures covering operators, channels/platforms, additional/blocked images, delete flows, Helm/subscription scenarios.

  • Added e2e test utilities for registry lifecycle, polling/verification, bindata handling, and signature validation.

  • Chores

  • Added build and container packaging support and updated ignore patterns.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 16, 2026

@adolfo-ab: 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.

@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/origin#31006

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 16, 2026

@adolfo-ab: it appears that you have attempted to use some version of the payload command, but your comment was incorrectly formatted and cannot be acted upon. See the docs for usage info.

@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/payload-job-with-prs periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn openshift/origin#31006

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 16, 2026

@adolfo-ab: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/5710bbd0-3999-11f1-8b65-54119c798fb5-0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants