Skip to content

Enable possibility to use capabilities in images jobs - #4964

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jmguzik:cherry-pick-approved
May 7, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jmguzik:cherry-pick-approved

Conversation

@jmguzik

@jmguzik jmguzik commented Feb 25, 2026 •

Copy link
Copy Markdown
Contributor

Make capabilities and additional_architectures equivalent during transition. Both fields are merged into a unified capabilities list via AllCapabilities(). For architecture-specific logic (e.g. ResolveMultiArch), ArchitectureCapabilities() filters the merged list against valid architecture strings.

  • Add AllCapabilities() and ArchitectureCapabilities() helpers
  • Mark AdditionalArchitectures as deprecated in favor of Capabilities
  • Update prowgen, validation, project_image, and image-graph-generator to use the new helpers instead of accessing fields directly
  • Add validation for Capabilities values
  • Fix Capabilities comment on image build config (was "test runs")

Summary by CodeRabbit

  • New Features

    • New Capabilities field plus helpers to unify and filter capability/architecture lists; multi-arch behavior now derives from capability data.
  • Deprecations

    • AdditionalArchitectures deprecated; both fields supported during transition.
  • CI / Tests

    • Job generation switched to capability-based labels; added fixtures and tests for multi-arch and mixed scenarios; ppc64le label fixed.
  • Validation

    • Validation now consults the canonical set of valid architectures and rejects malformed capability names.

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci
openshift-ci Bot requested review from liangxia and smg247 February 25, 2026 09:48
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 25, 2026
@coderabbitai

coderabbitai Bot commented Feb 25, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds a new Capabilities []string field and related helpers (AllCapabilities, ArchitectureCapabilities, ValidArchitectures) to image build configs; switches multi-arch detection, job labeling, and validation to use capabilities (while remaining compatible with legacy AdditionalArchitectures). Tests and fixtures updated; duplicate declaration block present in the diff.

Changes

Capability-driven multi-arch and labeling

Layer / File(s) Summary
Data Shape / API
pkg/api/types.go
Add Capabilities []string to ProjectDirectoryImageBuildStepConfiguration, export ValidArchitectures, and add methods AllCapabilities() and ArchitectureCapabilities() (note: identical public declarations appear twice in the diff).
Core Multi-arch Logic
pkg/steps/project_image.go
Use s.config.ArchitectureCapabilities() instead of AdditionalArchitectures when inserting image architectures.
Graph / Operator
pkg/image-graph-generator/operator.go
Compute multiArch via len(image.ArchitectureCapabilities()) > 0 instead of checking AdditionalArchitectures.
Job Generation / Labeling
pkg/prowgen/prowgen.go
Replace injectArchitectureLabels with injectCapabilitiesForImgJobs and emit capability/<cap> labels based on AllCapabilities() (call site updates).
Validation
pkg/validation/config.go
Replace local arch set with api.ValidArchitectures; validate Capabilities entries (ignore ones that are valid architectures, otherwise validate as qualified label values); build error messages from api.ValidArchitectures.
Tests & Fixtures
pkg/prowgen/prowgen_test.go, pkg/prowgen/testdata/*zz_fixture*
Add tests for multi-arch via capabilities, update existing tests/fixtures (ppc64le key rename, move some entries from AdditionalArchitectures into Capabilities), and add new fixture for mixed capability scenarios.

Sequence Diagram(s)

sequenceDiagram
  participant Author as Config Author
  participant API as pkg/api (types)
  participant Validator as pkg/validation
  participant Prowgen as pkg/prowgen
  participant Operator as pkg/image-graph-generator / pkg/steps

  Author->>API: define image build (Capabilities, AdditionalArchitectures)
  API->>Validator: provide config for validation
  Validator->>API: validate Capabilities against ValidArchitectures / qualified-name rules
  API->>Prowgen: expose AllCapabilities() / ArchitectureCapabilities()
  Prowgen->>Prowgen: generate jobs, add labels capability/<cap> for each AllCapabilities()
  Prowgen->>Operator: include capability/architecture metadata in produced job info
  Operator->>Operator: use ArchitectureCapabilities() to determine multi-arch behavior
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 12 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Coverage For New Features ⚠️ Warning New methods AllCapabilities() and ArchitectureCapabilities() in pkg/api/types.go lack unit tests. Capabilities validation in pkg/validation/config.go has no test coverage. Add unit tests for AllCapabilities/ArchitectureCapabilities in types_test.go and Capabilities validation in config_test.go.
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: introducing capability-based labeling for image jobs, replacing the previous architecture-only approach.
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.
Go Error Handling ✅ Passed Error handling patterns are proper. New methods called on safe values. UpdateImage errors checked. No panic() or ignored errors introduced.
Stable And Deterministic Test Names ✅ Passed Test names are stable and deterministic with no dynamic content or Ginkgo tests.
Test Structure And Quality ✅ Passed Ginkgo test check not applicable. PR uses Go table-driven tests, not Ginkgo. Tests follow appropriate patterns: single responsibility, meaningful error messages, proper fixtures.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests were added in this PR. The PR modifies CI tooling code and adds unit tests using Go's standard testing package, not Ginkgo. This check does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests are added in this PR. Changes are confined to API types, unit tests (Go testing package), and prowgen utilities for image capability labeling.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI tooling configuration and validation logic. It does not create, modify, or define Kubernetes manifests, operators, or scheduling constraints. Check not applicable.
Ote Binary Stdout Contract ✅ Passed PR modifies library/utility packages with no process-level code. No OTE binaries affected, no stdout writes detected.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests added. Changes limited to type definitions, internal logic, unit tests, and YAML fixtures. Check not applicable.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

@jmguzik
jmguzik force-pushed the cherry-pick-approved branch from 68b738a to 87ba8c5 Compare February 25, 2026 09:57

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 (2)
pkg/validation/config.go (1)

326-333: Capability validation error message lacks guidance for non-architecture values.

When a capability fails IsQualifiedName, the error only says "invalid capability: <cap>" without describing what format is expected (unlike the architecture error at Line 323 which lists valid values). Users won't know to use a qualified name format.

📝 Proposed improvement
 		if err := validation.IsQualifiedName(cap); len(err) > 0 {
-			validationErrors = append(validationErrors, ctxN.errorf("invalid capability: %s", cap))
+			validationErrors = append(validationErrors, ctxN.errorf("invalid capability %q: must be a valid architecture (%s) or a qualified name (e.g. 'org.io/feature')", cap, strings.Join(sets.List(api.ValidArchitectures), ", ")))
 		}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/validation/config.go` around lines 326 - 333, The capability validation
loop over image.Capabilities currently reports "invalid capability: %s" when
validation.IsQualifiedName(cap) fails; update this to provide guidance like
"capability must be a qualified name (DNS subdomain format), e.g.
<domain>/<name>: %s" so users know the expected format; modify the error
produced by ctxN.errorf in that branch (near the loop that checks
api.ValidArchitectures and calls validation.IsQualifiedName) to include this
explanatory text or a short reference to "qualified name" / "DNS subdomain"
format.
pkg/api/types.go (1)

2853-2855: append aliasing in AllCapabilities() is safe but worth noting.

append(p.Capabilities, p.AdditionalArchitectures...) could mutate p.Capabilities's underlying array if it has spare capacity. The result is immediately consumed by sets.New[string](...), so no observable aliasing occurs here, but it's a subtle pattern. An explicit copy or slices.Concat would be safer if the method is ever reused elsewhere.

♻️ Safer alternative
 func (p *ProjectDirectoryImageBuildStepConfiguration) AllCapabilities() []string {
-	return sets.List(sets.New[string](append(p.Capabilities, p.AdditionalArchitectures...)...))
+	combined := make([]string, 0, len(p.Capabilities)+len(p.AdditionalArchitectures))
+	combined = append(combined, p.Capabilities...)
+	combined = append(combined, p.AdditionalArchitectures...)
+	return sets.List(sets.New[string](combined...))
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/api/types.go` around lines 2853 - 2855, The current AllCapabilities
method uses append(p.Capabilities, p.AdditionalArchitectures...) which can
mutate p.Capabilities' underlying array; to avoid aliasing, create a fresh slice
before combining (e.g., allocate a new slice of
len(p.Capabilities)+len(p.AdditionalArchitectures) and copy p.Capabilities and
p.AdditionalArchitectures into it) and pass that new slice to
sets.New[string](...) so
ProjectDirectoryImageBuildStepConfiguration.AllCapabilities returns a set list
without mutating p.Capabilities; alternatively use slices.Concat/slices.Clone to
produce a non-aliased combined slice prior to calling sets.New.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_merge_capabilities_and_architecture_labels.yaml`:
- Around line 1-17: Test fixtures use the incorrect architecture string
"ppc64-le" (with a hyphen) which doesn't match ValidArchitectures (contains
"ppc64le"), causing injectCapabilitiesForImgJobs to add labels like
capability/ppc64-le while ResolveMultiArch and ArchitectureCapabilities filter
it out; fix the fixtures by replacing all occurrences of "ppc64-le" with
"ppc64le" (e.g., in test data and fixtures used by the test that passes
AdditionalArchitectures: []string{"ppc64-le"}) so ValidArchitectures.Has(...)
will succeed and ResolveMultiArch, ArchitectureCapabilities and AllCapabilities
behave consistently with injectCapabilitiesForImgJobs.

---

Nitpick comments:
In `@pkg/api/types.go`:
- Around line 2853-2855: The current AllCapabilities method uses
append(p.Capabilities, p.AdditionalArchitectures...) which can mutate
p.Capabilities' underlying array; to avoid aliasing, create a fresh slice before
combining (e.g., allocate a new slice of
len(p.Capabilities)+len(p.AdditionalArchitectures) and copy p.Capabilities and
p.AdditionalArchitectures into it) and pass that new slice to
sets.New[string](...) so
ProjectDirectoryImageBuildStepConfiguration.AllCapabilities returns a set list
without mutating p.Capabilities; alternatively use slices.Concat/slices.Clone to
produce a non-aliased combined slice prior to calling sets.New.

In `@pkg/validation/config.go`:
- Around line 326-333: The capability validation loop over image.Capabilities
currently reports "invalid capability: %s" when validation.IsQualifiedName(cap)
fails; update this to provide guidance like "capability must be a qualified name
(DNS subdomain format), e.g. <domain>/<name>: %s" so users know the expected
format; modify the error produced by ctxN.errorf in that branch (near the loop
that checks api.ValidArchitectures and calls validation.IsQualifiedName) to
include this explanatory text or a short reference to "qualified name" / "DNS
subdomain" format.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 9908494 and 68b738a.

⛔ Files ignored due to path filters (2)
  • pkg/api/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • pkg/webreg/zz_generated.ci_operator_reference.go is excluded by !**/zz_generated*
📒 Files selected for processing (8)
  • pkg/api/types.go
  • pkg/image-graph-generator/operator.go
  • pkg/prowgen/prowgen.go
  • pkg/prowgen/prowgen_test.go
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_merge_capabilities_and_architecture_labels.yaml
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_multiarch_postsubmit_images__using_capabilities.yaml
  • pkg/steps/project_image.go
  • pkg/validation/config.go

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
pkg/api/types.go (1)

2853-2855: Prefer copy-first before append in AllCapabilities() to ensure p.Capabilities is never modified by the append operation.

Line 2854 appends directly to p.Capabilities, which can modify its backing array if it has capacity. For a public API method, copy-first is safer defensive programming and avoids subtle backing-array mutations.

♻️ Suggested refactor
 func (p *ProjectDirectoryImageBuildStepConfiguration) AllCapabilities() []string {
-	return sets.List(sets.New[string](append(p.Capabilities, p.AdditionalArchitectures...)...))
+	caps := append([]string{}, p.Capabilities...)
+	caps = append(caps, p.AdditionalArchitectures...)
+	return sets.List(sets.New[string](caps...))
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/api/types.go` around lines 2853 - 2855, The AllCapabilities method
mutates p.Capabilities by appending p.AdditionalArchitectures directly; fix it
by making a copy of p.Capabilities first, append AdditionalArchitectures to that
copy, then pass the combined slice into sets.New/sets.List. Update
ProjectDirectoryImageBuildStepConfiguration.AllCapabilities to create a new
slice (copy of p.Capabilities), do append(copy, p.AdditionalArchitectures...),
and use sets.New[string](combined...) so the original p.Capabilities backing
array is never modified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/prowgen/prowgen_test.go`:
- Around line 745-746: Update the test inputs that use the non-canonical
architecture token "ppc64-le" to the canonical "ppc64le" so capability-based
filtering matches the production code; specifically, locate the Capabilities
slices in the test cases (the Capabilities: []string{"arm64", "ppc64-le"}
entries in prowgen_test.go) and replace "ppc64-le" with "ppc64le" in both
occurrences (the block around the first mention and the block around the later
mention at lines referenced in the review).

In `@pkg/validation/config.go`:
- Around line 326-332: The capability validation currently lets values with
slashes through because it only checks validation.IsQualifiedName; update the
loop over image.Capabilities to also reject values that are not valid Kubernetes
label values by invoking validation.IsValidLabelValue(cap) and appending
ctxN.errorf("invalid capability: %s", cap) when that check fails (in addition to
the existing api.ValidArchitectures and IsQualifiedName checks); this ensures
the values used later in prowgen (labels[fmt.Sprintf("capability/%s", c)] = c)
conform to label value requirements.

---

Nitpick comments:
In `@pkg/api/types.go`:
- Around line 2853-2855: The AllCapabilities method mutates p.Capabilities by
appending p.AdditionalArchitectures directly; fix it by making a copy of
p.Capabilities first, append AdditionalArchitectures to that copy, then pass the
combined slice into sets.New/sets.List. Update
ProjectDirectoryImageBuildStepConfiguration.AllCapabilities to create a new
slice (copy of p.Capabilities), do append(copy, p.AdditionalArchitectures...),
and use sets.New[string](combined...) so the original p.Capabilities backing
array is never modified.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 68b738a and 87ba8c5.

⛔ Files ignored due to path filters (2)
  • pkg/api/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • pkg/webreg/zz_generated.ci_operator_reference.go is excluded by !**/zz_generated*
📒 Files selected for processing (8)
  • pkg/api/types.go
  • pkg/image-graph-generator/operator.go
  • pkg/prowgen/prowgen.go
  • pkg/prowgen/prowgen_test.go
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_merge_capabilities_and_architecture_labels.yaml
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_multiarch_postsubmit_images__using_capabilities.yaml
  • pkg/steps/project_image.go
  • pkg/validation/config.go
🚧 Files skipped from review as they are similar to previous changes (3)
  • pkg/steps/project_image.go
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_merge_capabilities_and_architecture_labels.yaml
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_multiarch_postsubmit_images__using_capabilities.yaml

Comment thread pkg/prowgen/prowgen_test.go Outdated
Comment thread pkg/validation/config.go
@jmguzik
jmguzik force-pushed the cherry-pick-approved branch from 87ba8c5 to ef57abd Compare February 25, 2026 11:12
@danilo-gemoli

Copy link
Copy Markdown
Contributor

/lgtm

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

Copy link
Copy Markdown
Member

/lgtm
/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 25, 2026
Comment thread pkg/prowgen/prowgen.go

func injectArchitectureLabels(g *prowJobBaseBuilder, imagesConfig []cioperatorapi.ProjectDirectoryImageBuildStepConfiguration) {
for _, imageConfig := range imagesConfig {
for _, arch := range imageConfig.AdditionalArchitectures {

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.

Will this change break the current behavior?

@jmguzik

jmguzik commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

/unhold

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 6, 2026
@jmguzik

jmguzik commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

/retest

Make capabilities and additional_architectures equivalent during transition.
Both fields are merged into a unified capabilities list via AllCapabilities().
For architecture-specific logic (e.g. ResolveMultiArch), ArchitectureCapabilities()
filters the merged list against valid architecture strings.

- Add AllCapabilities() and ArchitectureCapabilities() helpers
- Mark AdditionalArchitectures as deprecated in favor of Capabilities
- Update prowgen, validation, project_image, and image-graph-generator
  to use the new helpers instead of accessing fields directly
- Add validation for Capabilities values
- Fix Capabilities comment on image build config (was "test runs")

Made with Cursor
Signed-off-by: Jakub Guzik <jguzik@redhat.com>
@jmguzik
jmguzik force-pushed the cherry-pick-approved branch from ef57abd to 6f19cfa Compare May 6, 2026 10:29
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label May 6, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
pkg/api/types.go (1)

2793-2817: Coordinate downstream vendoring for the API type change.

Since ProjectDirectoryImageBuildStepConfiguration in pkg/api gained Capabilities, plan follow-up vendor bumps in known external consumers (e.g., release-controller, ci-chat-bot) to avoid prolonged schema drift.

🤖 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 `@pkg/api/types.go` around lines 2793 - 2817,
ProjectDirectoryImageBuildStepConfiguration gained a new field Capabilities
causing downstream schema drift; update downstream vendors. Locate the API type
ProjectDirectoryImageBuildStepConfiguration in pkg/api (and references to the
Capabilities field) and coordinate bumping the api version in downstream
consumers (e.g., release-controller, ci-chat-bot and any other repos that import
pkg/api) by updating their vendor/module dependencies to the new commit/tag that
includes this change; run their build/tests to catch compile/schema failures and
fix any call sites that assume the older struct (add handling for Capabilities
or default behavior) before merging.
🤖 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.

Nitpick comments:
In `@pkg/api/types.go`:
- Around line 2793-2817: ProjectDirectoryImageBuildStepConfiguration gained a
new field Capabilities causing downstream schema drift; update downstream
vendors. Locate the API type ProjectDirectoryImageBuildStepConfiguration in
pkg/api (and references to the Capabilities field) and coordinate bumping the
api version in downstream consumers (e.g., release-controller, ci-chat-bot and
any other repos that import pkg/api) by updating their vendor/module
dependencies to the new commit/tag that includes this change; run their
build/tests to catch compile/schema failures and fix any call sites that assume
the older struct (add handling for Capabilities or default behavior) before
merging.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 32618165-2a7c-4d3b-b069-826ee0bc8a06

📥 Commits

Reviewing files that changed from the base of the PR and between ef57abd and 6f19cfa.

⛔ Files ignored due to path filters (1)
  • pkg/api/zz_generated.deepcopy.go is excluded by !**/zz_generated*
📒 Files selected for processing (7)
  • pkg/api/types.go
  • pkg/image-graph-generator/operator.go
  • pkg/prowgen/prowgen.go
  • pkg/prowgen/prowgen_test.go
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_merge_capabilities_and_architecture_labels.yaml
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_multiarch_postsubmit_images.yaml
  • pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_multiarch_postsubmit_images__using_capabilities.yaml

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e

@deepsm007

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 6, 2026
@hector-vido

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci

openshift-ci Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: danilo-gemoli, deepsm007, droslean, hector-vido, jmguzik

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:
  • OWNERS [danilo-gemoli,deepsm007,droslean,hector-vido,jmguzik]

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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 7a79153 and 2 for PR HEAD 6f19cfa in total

@deepsm007

Copy link
Copy Markdown
Contributor

/override ci/prow/images

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage.

@openshift-ci

openshift-ci Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

@deepsm007: Overrode contexts on behalf of deepsm007: ci/prow/images

Details

In response to this:

/override ci/prow/images

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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 81f171f into openshift:main May 7, 2026
16 of 17 checks passed
@openshift-ci

openshift-ci Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

@jmguzik: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/breaking-changes 6f19cfa link false /test breaking-changes

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.

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants