Skip to content

NO-JIRA: Common provider manifest fixtures#498

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
openshift-cloud-team:provider-test-fixtures
Mar 25, 2026
Merged

NO-JIRA: Common provider manifest fixtures#498
openshift-merge-bot[bot] merged 1 commit intoopenshift:mainfrom
openshift-cloud-team:provider-test-fixtures

Conversation

@mdbooth
Copy link
Copy Markdown
Contributor

@mdbooth mdbooth commented Mar 20, 2026

Adds some common test fixtures for various packages which use them.

@openshift-ci-robot
Copy link
Copy Markdown

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: LGTM mode

@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 20, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@mdbooth: This pull request explicitly references no jira issue.

Details

In response to this:

Adds some common test fixtures for various packages which use them.

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.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 44eaf4b8-1185-4c40-bd7f-12185e198ef2

📥 Commits

Reviewing files that changed from the base of the PR and between 8bfdfda and ef61031.

📒 Files selected for processing (6)
  • pkg/controllers/revision/helpers_test.go
  • pkg/controllers/revision/revision_controller_test.go
  • pkg/controllers/revision/suite_test.go
  • pkg/revisiongenerator/helpers_test.go
  • pkg/revisiongenerator/revision_test.go
  • pkg/test/provider_fixtures.go
💤 Files with no reviewable changes (1)
  • pkg/controllers/revision/helpers_test.go
🚧 Files skipped from review as they are similar to previous changes (3)
  • pkg/revisiongenerator/helpers_test.go
  • pkg/revisiongenerator/revision_test.go
  • pkg/controllers/revision/revision_controller_test.go

Walkthrough

Removed ad-hoc filesystem-based test manifest helpers and updated tests to use a new test fixtures builder in pkg/test/provider_fixtures.go that constructs providerimages.ProviderImageManifests (optionally writing combined manifest YAML to the test temp dir); tests no longer mutate ManifestsPath or create temp manifest files during setup.

Changes

Cohort / File(s) Summary
Removed controller test helpers
pkg/controllers/revision/helpers_test.go
Deleted test-only helpers (configMapYAML, ensureManifestPaths) and removed imports; newManagerWrapper stopped calling ensureManifestPaths, so ProviderImageManifests are no longer auto-populated with temp manifest paths.
Controller tests: fixture wiring
pkg/controllers/revision/revision_controller_test.go, pkg/controllers/revision/suite_test.go
Replaced in-file hardcoded provider-image fixture values with package-level variables populated by a new setupProviderFixtures() called in BeforeSuite; removed auto-fill of manifest paths when cloning fixtures.
Revision generator tests/helpers updated
pkg/revisiongenerator/helpers_test.go, pkg/revisiongenerator/revision_test.go
Removed temp-file helper (writeManifestFile) and direct filesystem usage; tests now build providerimages.ProviderImageManifests via test.NewProviderImageManifests(...).With...().Build() and use test.MultiDoc / test.ConfigMapYAML for YAML content.
New test fixtures module
pkg/test/provider_fixtures.go
Added test.ProviderImageManifestsBuilder with NewProviderImageManifests(tb, name) and fluent With* methods plus Build() (writes combined manifests to tb.TempDir() when manifests provided). Added YAML helper generators (ConfigMapYAML, NamespaceYAML, DeploymentYAML, ClusterRoleYAML, CRDToYAML, MultiDoc, SHA256Pad).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

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

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

@openshift-ci openshift-ci Bot requested review from nrb and racheljpg March 20, 2026 12:28
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.

🧹 Nitpick comments (1)
pkg/test/provider_fixtures.go (1)

141-144: Map iteration order is non-deterministic for multi-key data maps.

When ConfigMapYAML is called with a custom multi-key data map, the YAML output order varies between runs due to Go's randomized map iteration. This could cause flaky tests if the output is used in content hashing. Current usage appears safe (single-key defaults), but consider sorting keys if multi-key maps become common.

♻️ Optional fix for deterministic key ordering
 func ConfigMapYAML(name string, data ...map[string]string) string {
 	d := map[string]string{"key": "value"}
 	if len(data) > 0 {
 		d = data[0]
 	}

+	keys := make([]string, 0, len(d))
+	for k := range d {
+		keys = append(keys, k)
+	}
+	sort.Strings(keys)
+
 	var pairs strings.Builder
-	for k, v := range d {
+	for _, k := range keys {
+		v := d[k]
 		fmt.Fprintf(&pairs, "  %s: %s\n", k, v)
 	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/test/provider_fixtures.go` around lines 141 - 144, The code in
ConfigMapYAML builds YAML by iterating map d into the strings.Builder pairs, but
Go map iteration is non-deterministic; to make output stable for multi-key maps,
collect the keys from d, sort them (e.g., sort.Strings), and then iterate over
the sorted key slice to fmt.Fprintf into pairs instead of ranging directly over
d; update uses of pairs/ConfigMapYAML accordingly to ensure deterministic
ordering.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pkg/test/provider_fixtures.go`:
- Around line 141-144: The code in ConfigMapYAML builds YAML by iterating map d
into the strings.Builder pairs, but Go map iteration is non-deterministic; to
make output stable for multi-key maps, collect the keys from d, sort them (e.g.,
sort.Strings), and then iterate over the sorted key slice to fmt.Fprintf into
pairs instead of ranging directly over d; update uses of pairs/ConfigMapYAML
accordingly to ensure deterministic ordering.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 61a01c55-21c4-4918-92c4-bb5b5671e5bf

📥 Commits

Reviewing files that changed from the base of the PR and between c0e1cef and fd72584.

📒 Files selected for processing (6)
  • pkg/controllers/revision/helpers_test.go
  • pkg/controllers/revision/revision_controller_test.go
  • pkg/controllers/revision/suite_test.go
  • pkg/revisiongenerator/helpers_test.go
  • pkg/revisiongenerator/revision_test.go
  • pkg/test/provider_fixtures.go
💤 Files with no reviewable changes (1)
  • pkg/controllers/revision/helpers_test.go

Comment thread pkg/controllers/revision/suite_test.go Outdated
// Each provider uses its ContentID as the ConfigMap name so that
// different provider sets produce different revision contentIDs.
defaultProviderImgs = []providerimages.ProviderImageManifests{
test.NewTestProvider(tb, "core",
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.

NewTestProvider creates what? What is a provider? Looks like this should actually be NewTestProviderImageManifests?

Comment thread pkg/test/provider_fixtures.go Outdated
)

// ProviderOption configures a test provider created by NewTestProvider.
type ProviderOption func(*providerConfig, string)
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.

Didn't I see another PR making similar builder patterns chain style rather than option style? Maybe be consistent?

NewTestProvider().WithImageRef(...)...

Comment thread pkg/test/provider_fixtures.go Outdated
// CRDAsYAML marshals a CRD object to YAML. Use with GenerateCRD or
// GenerateSchemalessSpecStatusCRD from crdbuilder.go to create CRD fixtures
// for use with WithManifests.
func CRDAsYAML(crd *apiextensionsv1.CustomResourceDefinition) string {
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.

CRDToYaml? It took me a moment to think what a CRDA was and why you were creating a collection of them represented in YAML

@mdbooth mdbooth force-pushed the provider-test-fixtures branch from fd72584 to d28b6d3 Compare March 23, 2026 12:08
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: 2

🧹 Nitpick comments (1)
pkg/test/provider_fixtures.go (1)

91-96: Copy attribute maps to avoid shared mutable test state.

WithAttributes stores the caller map by reference on first set, and Build returns the same map reference. Later mutations can leak across fixtures.

Proposed fix
 func (b *ProviderImageManifestsBuilder) WithAttributes(attrs map[string]string) *ProviderImageManifestsBuilder {
 	if b.attributes == nil {
-		b.attributes = attrs
+		b.attributes = maps.Clone(attrs)
 	} else {
 		maps.Copy(b.attributes, attrs)
 	}
@@
 	p := providerimages.ProviderImageManifests{
 		ProviderMetadata: providerimages.ProviderMetadata{
 			Name:         b.name,
 			InstallOrder: b.installOrder,
 			OCPPlatform:  b.platform,
-			Attributes:   b.attributes,
+			Attributes:   maps.Clone(b.attributes),
 			SelfImageRef: b.selfImageRef,
 		},

As per coding guidelines, **: -Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Also applies to: 117-123

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

In `@pkg/test/provider_fixtures.go` around lines 91 - 96, The WithAttributes
method on ProviderImageManifestsBuilder currently stores the caller's map by
reference which allows shared mutable state to leak; change WithAttributes to
copy the incoming attrs into a new map (e.g., allocate a new map and copy
entries) instead of assigning attrs directly, and also ensure the Build method
of ProviderImageManifestsBuilder returns a copy of the attributes map (not the
internal map pointer) so callers cannot mutate fixture internals; update any
similar helper (the other With* method at the same area) the same way.
🤖 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/test/provider_fixtures.go`:
- Around line 19-25: ConfigMapYAML is producing nondeterministic YAML because it
iterates a Go map directly; update the function to collect the map's keys, sort
them (e.g., using slices.Sort or sort.Strings), and iterate the sorted keys to
build the YAML string so output is deterministic; apply the same sorted-key
approach to the other map-to-YAML helper(s) referenced near the same area to
ensure fixture output is stable across runs.
- Around line 49-58: NewProviderImageManifests can hang because SHA256Pad never
progresses for an empty name; add an explicit guard at the start of
NewProviderImageManifests that checks if name == "" and call tb.Fatalf("provider
name must not be empty") (or tb.Fatal) to fail fast, and apply the same guard to
any other constructor that builds imageRef via SHA256Pad (i.e., any function
that uses SHA256Pad to generate the imageRef) so tests never enter the infinite
loop.

---

Nitpick comments:
In `@pkg/test/provider_fixtures.go`:
- Around line 91-96: The WithAttributes method on ProviderImageManifestsBuilder
currently stores the caller's map by reference which allows shared mutable state
to leak; change WithAttributes to copy the incoming attrs into a new map (e.g.,
allocate a new map and copy entries) instead of assigning attrs directly, and
also ensure the Build method of ProviderImageManifestsBuilder returns a copy of
the attributes map (not the internal map pointer) so callers cannot mutate
fixture internals; update any similar helper (the other With* method at the same
area) the same way.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 4396178a-0fd1-4e32-afd3-6ac3ca7739c4

📥 Commits

Reviewing files that changed from the base of the PR and between fd72584 and d28b6d3.

📒 Files selected for processing (6)
  • pkg/controllers/revision/helpers_test.go
  • pkg/controllers/revision/revision_controller_test.go
  • pkg/controllers/revision/suite_test.go
  • pkg/revisiongenerator/helpers_test.go
  • pkg/revisiongenerator/revision_test.go
  • pkg/test/provider_fixtures.go
💤 Files with no reviewable changes (1)
  • pkg/controllers/revision/helpers_test.go
✅ Files skipped from review due to trivial changes (2)
  • pkg/controllers/revision/suite_test.go
  • pkg/revisiongenerator/helpers_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/revisiongenerator/revision_test.go

Comment on lines +19 to +25
import (
"fmt"
"maps"
"os"
"path/filepath"
"strings"
"testing"
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot Mar 23, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Make ConfigMapYAML deterministic by sorting map keys.

Iterating a Go map produces random order, so fixture output can vary between runs and cause flaky assertions.

Proposed fix
 import (
 	"fmt"
 	"maps"
 	"os"
 	"path/filepath"
+	"sort"
 	"strings"
 	"testing"
@@
 	var pairs strings.Builder
-	for k, v := range d {
+	keys := make([]string, 0, len(d))
+	for k := range d {
+		keys = append(keys, k)
+	}
+	sort.Strings(keys)
+	for _, k := range keys {
+		v := d[k]
 		fmt.Fprintf(&pairs, "  %s: %s\n", k, v)
 	}

As per coding guidelines, **: -Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Also applies to: 154-157

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

In `@pkg/test/provider_fixtures.go` around lines 19 - 25, ConfigMapYAML is
producing nondeterministic YAML because it iterates a Go map directly; update
the function to collect the map's keys, sort them (e.g., using slices.Sort or
sort.Strings), and iterate the sorted keys to build the YAML string so output is
deterministic; apply the same sorted-key approach to the other map-to-YAML
helper(s) referenced near the same area to ensure fixture output is stable
across runs.

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.

@mdbooth we're not using this at the mo, but might be worth doing?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Comment thread pkg/test/provider_fixtures.go
@mdbooth mdbooth force-pushed the provider-test-fixtures branch from d28b6d3 to 8bfdfda Compare March 23, 2026 14:44
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.

♻️ Duplicate comments (2)
pkg/test/provider_fixtures.go (2)

154-157: ⚠️ Potential issue | 🟠 Major

Map iteration produces non-deterministic YAML output.

Go maps iterate in random order, so the generated ConfigMap data keys may appear in different order across runs. This can cause flaky test assertions when comparing YAML strings.

Proposed fix using sorted keys
+	"slices"
+	"sort"
 	"strings"
@@
 	var pairs strings.Builder
+	keys := make([]string, 0, len(d))
 	for k, v := range d {
+		keys = append(keys, k)
+	}
+	sort.Strings(keys)
+	for _, k := range keys {
+		v := d[k]
 		fmt.Fprintf(&pairs, "  %s: %s\n", k, v)
 	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/test/provider_fixtures.go` around lines 154 - 157, The loop that writes
map entries into the strings.Builder "pairs" iterates over map "d" which is
nondeterministic; to fix, collect the keys from "d" into a slice, sort them
(e.g., sort.Strings(keys)), then iterate over the sorted keys and append the
entries to "pairs" (using fmt.Fprintf or pairs.WriteString) so generated YAML
order is stable; update the loop that currently reads "for k, v := range d {
fmt.Fprintf(&pairs, ...)" to the sorted-key approach.

220-232: ⚠️ Potential issue | 🔴 Critical

Empty name causes an infinite loop in SHA256Pad.

When name == "", the loop condition len(padded) < 64 is always true because padded += name never increases the string length. This will hang the test process.

Proposed fix
 func SHA256Pad(name string) string {
+	if name == "" {
+		return strings.Repeat("0", 64)
+	}
+
 	padded := name
 	for len(padded) < 64 {
 		padded += name
 	}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/test/provider_fixtures.go` around lines 220 - 232, SHA256Pad currently
infinite-loops when name == "" because padded += name never grows; add a guard
at the start of SHA256Pad to handle empty input (e.g., if name == "" return
strings.Repeat("0", 64)) so the function returns a valid 64-char hex string
instead of looping; update the SHA256Pad function to short-circuit on empty name
before constructing padded and the hex builder.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@pkg/test/provider_fixtures.go`:
- Around line 154-157: The loop that writes map entries into the strings.Builder
"pairs" iterates over map "d" which is nondeterministic; to fix, collect the
keys from "d" into a slice, sort them (e.g., sort.Strings(keys)), then iterate
over the sorted keys and append the entries to "pairs" (using fmt.Fprintf or
pairs.WriteString) so generated YAML order is stable; update the loop that
currently reads "for k, v := range d { fmt.Fprintf(&pairs, ...)" to the
sorted-key approach.
- Around line 220-232: SHA256Pad currently infinite-loops when name == ""
because padded += name never grows; add a guard at the start of SHA256Pad to
handle empty input (e.g., if name == "" return strings.Repeat("0", 64)) so the
function returns a valid 64-char hex string instead of looping; update the
SHA256Pad function to short-circuit on empty name before constructing padded and
the hex builder.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 434afc1c-3583-4d1f-a8f5-692c2ea49814

📥 Commits

Reviewing files that changed from the base of the PR and between d28b6d3 and 8bfdfda.

📒 Files selected for processing (6)
  • pkg/controllers/revision/helpers_test.go
  • pkg/controllers/revision/revision_controller_test.go
  • pkg/controllers/revision/suite_test.go
  • pkg/revisiongenerator/helpers_test.go
  • pkg/revisiongenerator/revision_test.go
  • pkg/test/provider_fixtures.go
💤 Files with no reviewable changes (1)
  • pkg/controllers/revision/helpers_test.go
🚧 Files skipped from review as they are similar to previous changes (3)
  • pkg/revisiongenerator/revision_test.go
  • pkg/revisiongenerator/helpers_test.go
  • pkg/controllers/revision/revision_controller_test.go

@mdbooth mdbooth force-pushed the provider-test-fixtures branch from 8bfdfda to ef61031 Compare March 23, 2026 17:22
@theobarberbany
Copy link
Copy Markdown
Contributor

one nit / agreement with coderabbit

/lgtm
/approve

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Mar 24, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 24, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: theobarberbany

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-robot
Copy link
Copy Markdown

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-capi-techpreview
/test e2e-aws-ovn
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-techpreview
/test e2e-aws-ovn-techpreview-upgrade
/test e2e-azure-capi-techpreview
/test e2e-azure-ovn-techpreview
/test e2e-azure-ovn-techpreview-upgrade
/test e2e-gcp-capi-techpreview
/test e2e-gcp-ovn-techpreview
/test e2e-metal3-capi-techpreview
/test e2e-openstack-capi-techpreview
/test e2e-openstack-ovn-techpreview
/test e2e-vsphere-capi-techpreview
/test regression-clusterinfra-aws-ipi-techpreview-capi

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 24, 2026
@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

/verified by CI

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 25, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@mdbooth: This PR has been marked as verified by CI.

Details

In response to this:

/verified by CI

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.

@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

/pipeline auto
/retest-required

@openshift-ci-robot
Copy link
Copy Markdown

Pipeline controller notification

The pipeline-auto label has been added to this PR. Second-stage tests will be triggered automatically when all first-stage tests pass.

@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

/test regression-clusterinfra-aws-ipi-techpreview-capi

@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

/test e2e-aws-ovn-serial-1of2

@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

This is wrong, but it'll tell me the right string:
/override e2e-openstack-ovn-techpreview

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 25, 2026

@mdbooth: /override requires failed status contexts, check run or a prowjob name to operate on.
The following unknown contexts/checkruns were given:

  • e2e-openstack-ovn-techpreview

Only the following failed contexts/checkruns were expected:

  • CodeRabbit
  • ci/prow/build
  • ci/prow/e2e-aws-capi-techpreview
  • ci/prow/e2e-aws-ovn
  • ci/prow/e2e-aws-ovn-serial-1of2
  • ci/prow/e2e-aws-ovn-serial-2of2
  • ci/prow/e2e-aws-ovn-techpreview
  • ci/prow/e2e-aws-ovn-techpreview-upgrade
  • ci/prow/e2e-azure-capi-techpreview
  • ci/prow/e2e-azure-ovn-techpreview
  • ci/prow/e2e-azure-ovn-techpreview-upgrade
  • ci/prow/e2e-gcp-capi-techpreview
  • ci/prow/e2e-gcp-ovn-techpreview
  • ci/prow/e2e-metal3-capi-techpreview
  • ci/prow/e2e-openstack-capi-techpreview
  • ci/prow/e2e-openstack-ovn-techpreview
  • ci/prow/e2e-vsphere-capi-techpreview
  • ci/prow/images
  • ci/prow/lint
  • ci/prow/okd-scos-images
  • ci/prow/regression-clusterinfra-aws-ipi-techpreview-capi
  • ci/prow/unit
  • ci/prow/vendor
  • ci/prow/verify-deps
  • pull-ci-openshift-cluster-capi-operator-main-build
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-ovn
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-ovn-serial-1of2
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-ovn-serial-2of2
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-ovn-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-aws-ovn-techpreview-upgrade
  • pull-ci-openshift-cluster-capi-operator-main-e2e-azure-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-azure-ovn-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-azure-ovn-techpreview-upgrade
  • pull-ci-openshift-cluster-capi-operator-main-e2e-gcp-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-gcp-ovn-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-metal3-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-openstack-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-openstack-ovn-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-e2e-vsphere-capi-techpreview
  • pull-ci-openshift-cluster-capi-operator-main-images
  • pull-ci-openshift-cluster-capi-operator-main-lint
  • pull-ci-openshift-cluster-capi-operator-main-okd-scos-images
  • pull-ci-openshift-cluster-capi-operator-main-regression-clusterinfra-aws-ipi-techpreview-capi
  • pull-ci-openshift-cluster-capi-operator-main-unit
  • pull-ci-openshift-cluster-capi-operator-main-vendor
  • pull-ci-openshift-cluster-capi-operator-main-verify-deps
  • tide

If you are trying to override a checkrun that has a space in it, you must put a double quote on the context.

Details

In response to this:

This is wrong, but it'll tell me the right string:
/override e2e-openstack-ovn-techpreview

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.

@mdbooth
Copy link
Copy Markdown
Contributor Author

mdbooth commented Mar 25, 2026

Ignoring permafailing job

/override pull-ci-openshift-cluster-capi-operator-main-e2e-openstack-ovn-techpreview

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 25, 2026

@mdbooth: Overrode contexts on behalf of mdbooth: ci/prow/e2e-openstack-ovn-techpreview

Details

In response to this:

Ignoring permafailing job

/override pull-ci-openshift-cluster-capi-operator-main-e2e-openstack-ovn-techpreview

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-ci-robot
Copy link
Copy Markdown

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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 25, 2026

@mdbooth: 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/e2e-azure-ovn-techpreview ef61031 link false /test e2e-azure-ovn-techpreview

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 49634c3 into openshift:main Mar 25, 2026
24 of 25 checks passed
@mdbooth mdbooth deleted the provider-test-fixtures branch March 25, 2026 15:44
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. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. pipeline-auto verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants