Skip to content

CNV-92360: v1 API version: make feature gate names case-insensitive - #4384

Merged
kubevirt-prow[bot] merged 6 commits into
kubevirt:mainfrom
nunnatsa:fg-case-insensitive
Jul 9, 2026
Merged

kubevirt-prow[bot] merged 6 commits into
kubevirt:mainfrom
nunnatsa:fg-case-insensitive

Conversation

@nunnatsa

@nunnatsa nunnatsa commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

What this PR does / why we need it:
In v1beta1 API version, the feature gate name were field names and so they always started with a lower case letter. Many feature gates are actually proxy to KubeVirt feature gate, where they are starting with an upper case letter. This may be confusing and error prompt.

To solve this, HCO now treats the feature gate names as case-insensitive; i.e setting a feature gate in any casing will work to enable or disable the feature.

The CRD now also prevent multiple feature gates with the same name, case-insensitive.

Implementing this change, exposed a hidden bug, where v1 only feature gates (that are no exist yet) do not survive v1 => v1beta1 => v1 conversion (e.g. when editing or patching the CR using v1beta1, the API server call the conversion webhook to return the CR in v1beta1, and when it is write back to ETCD, the conversion webhook is called again to store in v1).

This PR also solves this issue using the v1-only-field mechanism.

Jira Ticket:

https://redhat.atlassian.net/browse/CNV-92360

Release note:

v1 API version: make feature gate names case-insensitive

@kubevirt-prow kubevirt-prow Bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. dco-signoff: no Indicates the PR's author has not DCO signed all their commits. labels Jul 8, 2026
@coveralls

coveralls commented Jul 8, 2026 •

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 29002673961

Coverage increased (+0.006%) to 81.537%

Details

  • Coverage increased (+0.006%) from the base build.
  • Patch coverage: 18 of 18 lines across 3 files are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 13882
Covered Lines: 11319
Line Coverage: 81.54%
Coverage Strength: 2.18 hits per line

💛 - Coveralls

@coderabbitai

coderabbitai Bot commented Jul 8, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4f39f147-9e74-402b-a7dc-16f63e194305

📥 Commits

Reviewing files that changed from the base of the PR and between 346094a and 188f957.

⛔ Files ignored due to path filters (1)
  • api/v1beta1/zz_generated.featuregates_conversion.go is excluded by !**/zz_generated.*
📒 Files selected for processing (19)
  • Makefile
  • api/v1/featuregates/feature_gates.go
  • api/v1/featuregates/feature_gates_test.go
  • api/v1beta1/conversion.go
  • api/v1beta1/conversion_test.go
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • deploy/crds/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • hack/build-manifests.sh
  • pkg/featuregatedetails/feature_gates.go
  • pkg/featuregatedetails/feature_gates_test.go
  • pkg/webhooks/mutator/hyperConvergedMutator.go
  • pkg/webhooks/mutator/mutate_mdev_test.go
  • tests/func-tests/feature_gates_test.go
  • tests/func-tests/hyperconverged.go
  • tools/csv-merger/generated-crd.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • tools/manifest-templator/generated-crd.yaml
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • kubevirt/hyperconverged-cluster-operator (manual)
  • kubevirt/monitoring (manual)
🚧 Files skipped from review as they are similar to previous changes (14)
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • tools/csv-merger/generated-crd.yaml
  • tools/manifest-templator/generated-crd.yaml
  • deploy/crds/hco00.crd.yaml
  • hack/build-manifests.sh
  • api/v1/featuregates/feature_gates_test.go
  • tests/func-tests/hyperconverged.go
  • tests/func-tests/feature_gates_test.go
  • api/v1beta1/conversion.go
  • tools/fg-conversion-generator/conversion.go.tmpl
  • api/v1/featuregates/feature_gates.go
  • api/v1beta1/conversion_test.go

📝 Walkthrough

Walkthrough

This PR makes HyperConverged feature-gate lookup case-insensitive, updates feature-gate JSON/defaulting behavior, and adds validation for name length, array size, and case-insensitive uniqueness across the CRD and generated manifests. v1beta1 conversion now stores the full FeatureGates list in the annotation and restores it back into v1, with generator template, unit tests, and functional tests updated accordingly. The Makefile and build-manifests.sh switch from the old gogenerate-crd-creator flow to generate-crd and prepare-tools-crd.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Warning

Review ran into problems

🔥 Problems

Linked repositories: Your configuration references 13 linked repositories, but your current plan allows 10. Analyzed kubevirt/kubevirt, kubevirt/containerized-data-importer, kubevirt/ssp-operator, kubevirt/cluster-network-addons-operator, kubevirt/hostpath-provisioner-operator, kubevirt/application-aware-quota, kubevirt/managed-tenant-quota, kubevirt/hyperconverged-cluster-operator, kubevirt/monitoring, kubevirt/community, skipped kubevirt/enhancements, kubevirt/project-infra, kubevirt/kubevirtci.


Linked repositories: Public OSS repositories can only analyze public repositories installed in this organization. Analyzed kubevirt/hyperconverged-cluster-operator, kubevirt/monitoring, skipped kubevirt/kubevirt, kubevirt/containerized-data-importer, kubevirt/ssp-operator, kubevirt/cluster-network-addons-operator, kubevirt/hostpath-provisioner-operator, kubevirt/application-aware-quota, kubevirt/managed-tenant-quota, kubevirt/community.


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.

@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: 5

🧹 Nitpick comments (1)
tools/fg-conversion-generator/conversion.go.tmpl (1)

34-46: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Prefer the shared State constant over the "Enabled" string literal.

The nil-aware enable/disable/delete logic traces correctly for both alpha (default off) and beta (default on) gates. One nit on Line 39: the effective-state check compares against the literal "Enabled", while the package already exports hcofg.Enabled. Using the constant keeps the generated code aligned with the rest of the codebase and avoids drift if the enum value ever changes.

♻️ Proposed tweak
-		v1Enabled = v1Found && ((*out)[v1Idx].State == nil || *((*out)[v1Idx].State) == "Enabled")
+		v1Enabled = v1Found && ((*out)[v1Idx].State == nil || *((*out)[v1Idx].State) == hcofg.Enabled)
🤖 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 `@tools/fg-conversion-generator/conversion.go.tmpl` around lines 34 - 46,
Update the enable/disable/delete generation logic in conversion.go.tmpl so the
effective-state check in the conversion block uses the shared hcofg.Enabled
constant instead of the hardcoded "Enabled" string. Keep the nil-aware behavior
in the FieldName handling unchanged, and adjust the comparison around v1Enabled
to reference the exported constant so generated code stays consistent with the
rest of the codebase.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@api/v1/featuregates/feature_gates_test.go`:
- Line 196: The test case label in feature_gates_test.go is misleading because
it says “disabled” even though the expectation for declarativeHotplugVolumes is
BeTrue() when a known beta gate is absent from the list. Update the Entry
description to match the actual beta-gate behavior, using the surrounding Ginkgo
Entry names in the feature gate test table as the reference so it clearly
reflects that the gate is enabled by default when not listed.

In `@hack/build-manifests.sh`:
- Line 294: The manifest-splitting command in build-manifests.sh uses an
unquoted ${TOOLS} expansion and an unnecessary cat pipe. Update the invocation
around the manifest-splitter call to quote the TOOLS path to prevent
word-splitting/globbing, and replace the cat | pattern with input redirection
while keeping the same --operator-name="hco" behavior.

In `@tests/func-tests/feature_gates_test.go`:
- Around line 81-82: The “all upper case” test case in feature_gates_test is not
actually using an upper-case value, so it duplicates the lower-case path instead
of covering the intended rejection case. Update the call in the addFeatureGate
assertion to pass the upper-case feature gate value (matching the existing
ToUpper-based helper used elsewhere) and keep the By description aligned with
the input being exercised.
- Around line 90-101: The JSON patch in addFeatureGate is wrapping the feature
gate entry in an array, which makes the appended item the wrong shape for
/spec/featureGates/-. Update the patch payload so the value is a single object
with the name field, and keep the change localized in addFeatureGate to ensure
the feature gate list receives one FeatureGate entry as intended.

In `@tests/func-tests/hyperconverged.go`:
- Line 175: The cleanup patch in PatchHCO is malformed JSON and currently cannot
remove /spec/featureGates, which breaks RestoreDefaultFeatureGates cleanup. Fix
the JSON patch string so it is valid and includes the complete remove operation,
using the PatchHCO call in RestoreDefaultFeatureGates as the target to update.
Ensure the resulting patch is syntactically correct so DeferCleanup in
feature_gates_test.go can reliably clear feature gates.

---

Nitpick comments:
In `@tools/fg-conversion-generator/conversion.go.tmpl`:
- Around line 34-46: Update the enable/disable/delete generation logic in
conversion.go.tmpl so the effective-state check in the conversion block uses the
shared hcofg.Enabled constant instead of the hardcoded "Enabled" string. Keep
the nil-aware behavior in the FieldName handling unchanged, and adjust the
comparison around v1Enabled to reference the exported constant so generated code
stays consistent with the rest of the codebase.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 13839c4b-ff40-4da1-8a37-92a29228b77e

📥 Commits

Reviewing files that changed from the base of the PR and between 147109a and 069cfe3.

⛔ Files ignored due to path filters (1)
  • api/v1beta1/zz_generated.featuregates_conversion.go is excluded by !**/zz_generated.*
📒 Files selected for processing (15)
  • Makefile
  • api/v1/featuregates/feature_gates.go
  • api/v1/featuregates/feature_gates_test.go
  • api/v1beta1/conversion.go
  • api/v1beta1/conversion_test.go
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • deploy/crds/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • hack/build-manifests.sh
  • tests/func-tests/feature_gates_test.go
  • tests/func-tests/hyperconverged.go
  • tools/csv-merger/generated-crd.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • tools/manifest-templator/generated-crd.yaml
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • kubevirt/hyperconverged-cluster-operator (manual)
  • kubevirt/monitoring (manual)

Comment thread api/v1/featuregates/feature_gates_test.go Outdated
Comment thread hack/build-manifests.sh Outdated
Comment thread tests/func-tests/feature_gates_test.go Outdated
Comment thread tests/func-tests/feature_gates_test.go Outdated
Comment thread tests/func-tests/hyperconverged.go Outdated
@nunnatsa
nunnatsa force-pushed the fg-case-insensitive branch from 069cfe3 to 74f9cea Compare July 8, 2026 12:48
@kubevirt-prow kubevirt-prow Bot added dco-signoff: yes Indicates the PR's author has DCO signed all their commits. and removed dco-signoff: no Indicates the PR's author has not DCO signed all their commits. labels Jul 8, 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)
Makefile (1)

83-83: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Redundant build-crd-creator prerequisite in build-manifests.

build-crd-creator is already transitively satisfied through prepare-tools-crd → generate-crd → build-crd-creator. The direct listing is harmless but redundant, and build-manifests.sh no longer invokes crd-creator directly (the "Write HCO CRDs" block was removed).

🧹 Proposed cleanup
-build-manifests: build-crd-creator prepare-tools-crd build-csv-merger build-manifest-splitter build-manifest-templator
+build-manifests: prepare-tools-crd build-csv-merger build-manifest-splitter build-manifest-templator
🤖 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 `@Makefile` at line 83, Remove the redundant build-crd-creator prerequisite
from build-manifests in the Makefile, since prepare-tools-crd already pulls it
in transitively through generate-crd and the build-manifests.sh flow no longer
calls crd-creator directly. Keep build-manifests depending on prepare-tools-crd
and the other required targets (build-csv-merger, build-manifest-splitter,
build-manifest-templator) so the dependency chain stays intact.
🤖 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 `@Makefile`:
- Line 83: Remove the redundant build-crd-creator prerequisite from
build-manifests in the Makefile, since prepare-tools-crd already pulls it in
transitively through generate-crd and the build-manifests.sh flow no longer
calls crd-creator directly. Keep build-manifests depending on prepare-tools-crd
and the other required targets (build-csv-merger, build-manifest-splitter,
build-manifest-templator) so the dependency chain stays intact.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b4197c77-07b0-4f32-8087-14925c868411

📥 Commits

Reviewing files that changed from the base of the PR and between 069cfe3 and 74f9cea.

⛔ Files ignored due to path filters (1)
  • api/v1beta1/zz_generated.featuregates_conversion.go is excluded by !**/zz_generated.*
📒 Files selected for processing (15)
  • Makefile
  • api/v1/featuregates/feature_gates.go
  • api/v1/featuregates/feature_gates_test.go
  • api/v1beta1/conversion.go
  • api/v1beta1/conversion_test.go
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • deploy/crds/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • hack/build-manifests.sh
  • tests/func-tests/feature_gates_test.go
  • tests/func-tests/hyperconverged.go
  • tools/csv-merger/generated-crd.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • tools/manifest-templator/generated-crd.yaml
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • kubevirt/hyperconverged-cluster-operator (manual)
  • kubevirt/monitoring (manual)
🚧 Files skipped from review as they are similar to previous changes (13)
  • deploy/crds/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • tools/csv-merger/generated-crd.yaml
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • tools/manifest-templator/generated-crd.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • api/v1/featuregates/feature_gates_test.go
  • tests/func-tests/feature_gates_test.go
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • tests/func-tests/hyperconverged.go
  • api/v1/featuregates/feature_gates.go
  • api/v1beta1/conversion_test.go
  • api/v1beta1/conversion.go

@nunnatsa
nunnatsa force-pushed the fg-case-insensitive branch from 74f9cea to bab0ba1 Compare July 8, 2026 13:30

@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 (2)
tests/func-tests/feature_gates_test.go (2)

90-110: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Call GinkgoHelper() in addFeatureGate for better failure attribution.

addFeatureGate is a test helper function. As per func-tests guidelines, helper functions should call GinkgoHelper() so failures point to the calling It block rather than the helper internals.

🔧 Proposed fix
 func addFeatureGate(ctx context.Context, cli client.Client, fgName string) error {
+	GinkgoHelper()
 	const (

As per path instructions: "In helper functions, use GinkgoHelper() (not Gomega offset functions)."

🤖 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 `@tests/func-tests/feature_gates_test.go` around lines 90 - 110, addFeatureGate
is a test helper, so it should mark itself with GinkgoHelper() to keep failures
attributed to the calling It block instead of the helper internals. Update the
addFeatureGate function in feature_gates_test.go to invoke GinkgoHelper() at the
start of the helper, alongside the existing retry.RetryOnConflict logic, without
changing its patching behavior or error handling.

Source: Path instructions


21-87: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add Ginkgo Labels to categorize the test suite.

The Describe and It blocks have no Ginkgo labels. As per func-tests guidelines, functional tests should be categorized with labels for filtering and traceability.

🏷️ Suggested labels
-var _ = Describe("test feature gates", func() {
+var _ = Describe("test feature gates", Label("feature-gates"), func() {

Individual It blocks could also carry labels such as Label("casings") or Label("validation") depending on the desired granularity.

As per path instructions: "Categorize tests with Ginkgo Labels."

🤖 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 `@tests/func-tests/feature_gates_test.go` around lines 21 - 87, The
feature-gate test suite in the Describe and It blocks needs Ginkgo labels so it
can be filtered and categorized consistently. Add the appropriate Label
annotations to the top-level Describe("test feature gates", ...) and to each It
block in feature_gates_test.go, using symbols like Describe and the individual
It descriptions to distinguish cases such as casing and validation. Keep the
labels aligned with func-test conventions so the suite is traceable and easy to
select by category.

Source: Path instructions

🤖 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 `@tests/func-tests/feature_gates_test.go`:
- Around line 90-110: addFeatureGate is a test helper, so it should mark itself
with GinkgoHelper() to keep failures attributed to the calling It block instead
of the helper internals. Update the addFeatureGate function in
feature_gates_test.go to invoke GinkgoHelper() at the start of the helper,
alongside the existing retry.RetryOnConflict logic, without changing its
patching behavior or error handling.
- Around line 21-87: The feature-gate test suite in the Describe and It blocks
needs Ginkgo labels so it can be filtered and categorized consistently. Add the
appropriate Label annotations to the top-level Describe("test feature gates",
...) and to each It block in feature_gates_test.go, using symbols like Describe
and the individual It descriptions to distinguish cases such as casing and
validation. Keep the labels aligned with func-test conventions so the suite is
traceable and easy to select by category.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 763861ff-6ca2-4d58-af40-c6496f46cfdb

📥 Commits

Reviewing files that changed from the base of the PR and between 74f9cea and bab0ba1.

⛔ Files ignored due to path filters (1)
  • api/v1beta1/zz_generated.featuregates_conversion.go is excluded by !**/zz_generated.*
📒 Files selected for processing (15)
  • Makefile
  • api/v1/featuregates/feature_gates.go
  • api/v1/featuregates/feature_gates_test.go
  • api/v1beta1/conversion.go
  • api/v1beta1/conversion_test.go
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • deploy/crds/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • hack/build-manifests.sh
  • tests/func-tests/feature_gates_test.go
  • tests/func-tests/hyperconverged.go
  • tools/csv-merger/generated-crd.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • tools/manifest-templator/generated-crd.yaml
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • kubevirt/hyperconverged-cluster-operator (manual)
  • kubevirt/monitoring (manual)
✅ Files skipped from review due to trivial changes (2)
  • tools/manifest-templator/generated-crd.yaml
  • tools/csv-merger/generated-crd.yaml
🚧 Files skipped from review as they are similar to previous changes (11)
  • deploy/olm-catalog/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • deploy/index-image/community-kubevirt-hyperconverged/1.19.0/manifests/hco00.crd.yaml
  • config/crd/bases/hco.kubevirt.io_hyperconvergeds.yaml
  • tools/fg-conversion-generator/conversion.go.tmpl
  • deploy/crds/hco00.crd.yaml
  • api/v1/featuregates/feature_gates.go
  • api/v1/featuregates/feature_gates_test.go
  • api/v1beta1/conversion_test.go
  • tests/func-tests/hyperconverged.go
  • api/v1beta1/conversion.go
  • hack/build-manifests.sh

@nunnatsa
nunnatsa force-pushed the fg-case-insensitive branch 3 times, most recently from 346094a to e572d71 Compare July 8, 2026 15:15
@hco-bot

hco-bot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

hco-e2e-upgrade-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-operator-sdk-sno-aws

@kubevirt-prow

kubevirt-prow Bot commented Jul 8, 2026

Copy link
Copy Markdown

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-upgrade-operator-sdk-sno-aws

Details

In response to this:

hco-e2e-upgrade-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-operator-sdk-sno-aws

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.

@hco-bot

hco-bot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

hco-e2e-upgrade-prev-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-aws
hco-e2e-operator-sdk-gcp, hco-e2e-operator-sdk-azure lanes succeeded.
/override ci/prow/hco-e2e-operator-sdk-aws

@kubevirt-prow

kubevirt-prow Bot commented Jul 8, 2026

Copy link
Copy Markdown

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-operator-sdk-aws, ci/prow/hco-e2e-upgrade-prev-operator-sdk-aws

Details

In response to this:

hco-e2e-upgrade-prev-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-aws
hco-e2e-operator-sdk-gcp, hco-e2e-operator-sdk-azure lanes succeeded.
/override ci/prow/hco-e2e-operator-sdk-aws

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.

nunnatsa added 6 commits July 9, 2026 10:47
Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
Also, make sure the feature gate are unique in the FeatureGates list.

Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
we only marshal the FeatureGate state field if it disabled, but k8s
marshling sometimes keeps it even if it Enabled, so for consistency, we
now marshaling the state field if exists, no matter its value.

Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
The automatic conversion only handles feature gates that are defined in
both v1beta1 and v1 API versions. Any feature gate tat is not defined in
v1beta1, will be lost in conversion.

This commit preserves all v1 feature gates using the v1-only-fields
mechanism.

Signed-off-by: Nahshon Unna Tsameret <nunnatsa@redhat.com>
@nunnatsa
nunnatsa force-pushed the fg-case-insensitive branch from e572d71 to 188f957 Compare July 9, 2026 07:48
@sonarqubecloud

sonarqubecloud Bot commented Jul 9, 2026

Copy link
Copy Markdown

@hco-bot

hco-bot commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

hco-e2e-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-aws
hco-e2e-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-gcp

@kubevirt-prow

kubevirt-prow Bot commented Jul 9, 2026

Copy link
Copy Markdown

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-operator-sdk-aws, ci/prow/hco-e2e-operator-sdk-gcp

Details

In response to this:

hco-e2e-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-aws
hco-e2e-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-operator-sdk-gcp

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

openshift-ci Bot commented Jul 9, 2026 •

Copy link
Copy Markdown

@nunnatsa: The following tests 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/hco-e2e-upgrade-operator-sdk-aws 188f957 link true /test hco-e2e-upgrade-operator-sdk-aws
ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-aws 188f957 link false /test hco-e2e-upgrade-prev-operator-sdk-sno-aws

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.

@nunnatsa

nunnatsa commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

/override-bot

@hco-bot

hco-bot commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

hco-e2e-upgrade-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-operator-sdk-aws
hco-e2e-upgrade-prev-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-aws

@kubevirt-prow

kubevirt-prow Bot commented Jul 9, 2026

Copy link
Copy Markdown

@hco-bot: Overrode contexts on behalf of hco-bot: ci/prow/hco-e2e-upgrade-operator-sdk-aws, ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-aws

Details

In response to this:

hco-e2e-upgrade-operator-sdk-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-operator-sdk-aws
hco-e2e-upgrade-prev-operator-sdk-sno-azure lane succeeded.
/override ci/prow/hco-e2e-upgrade-prev-operator-sdk-sno-aws

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.

@avlitman

avlitman commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

/lgtm
/approve

@kubevirt-prow kubevirt-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 9, 2026
@kubevirt-prow

kubevirt-prow Bot commented Jul 9, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: avlitman

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

@kubevirt-prow kubevirt-prow Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 9, 2026
@nunnatsa

nunnatsa commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

/test pull-hyperconverged-cluster-operator-unit-test-s390x

@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown

@nunnatsa: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

/test ci-index-hco-bundle
/test ci-index-hco-upgrade-operator-sdk-bundle
/test hco-e2e-consecutive-operator-sdk-upgrades-aws
/test hco-e2e-consecutive-operator-sdk-upgrades-azure
/test hco-e2e-kv-smoke-azure
/test hco-e2e-kv-smoke-gcp
/test hco-e2e-operator-sdk-aws
/test hco-e2e-operator-sdk-azure
/test hco-e2e-operator-sdk-gcp
/test hco-e2e-upgrade-operator-sdk-aws
/test hco-e2e-upgrade-operator-sdk-azure
/test hco-e2e-upgrade-prev-operator-sdk-aws
/test hco-e2e-upgrade-prev-operator-sdk-azure

The following commands are available to trigger optional jobs:

/test hco-e2e-operator-sdk-sno-aws
/test hco-e2e-operator-sdk-sno-azure
/test hco-e2e-upgrade-operator-sdk-sno-aws
/test hco-e2e-upgrade-operator-sdk-sno-azure
/test hco-e2e-upgrade-prev-operator-sdk-sno-aws
/test hco-e2e-upgrade-prev-operator-sdk-sno-azure
/test images

Use /test all to run all jobs.

Details

In response to this:

/test pull-hyperconverged-cluster-operator-unit-test-s390x

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.

@nunnatsa

nunnatsa commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

pull-hyperconverged-cluster-operator-unit-test-s390x lane is not starting. It seems the s390x server is down.

/override pull-hyperconverged-cluster-operator-unit-test-s390x

@kubevirt-prow

kubevirt-prow Bot commented Jul 9, 2026

Copy link
Copy Markdown

@nunnatsa: Overrode contexts on behalf of nunnatsa: pull-hyperconverged-cluster-operator-unit-test-s390x

Details

In response to this:

pull-hyperconverged-cluster-operator-unit-test-s390x lane is not starting. It seems the s390x server is down.

/override pull-hyperconverged-cluster-operator-unit-test-s390x

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.

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. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. lgtm Indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants