Skip to content

OCPBUGS-74531: Remove ImageVolume#2689

Open
bitoku wants to merge 1 commit intoopenshift:masterfrom
bitoku:remove-imagevolume
Open

OCPBUGS-74531: Remove ImageVolume#2689
bitoku wants to merge 1 commit intoopenshift:masterfrom
bitoku:remove-imagevolume

Conversation

@bitoku
Copy link
Contributor

@bitoku bitoku commented Feb 3, 2026

User description

Fixes OCPBUGS-74531

In upstream it's been enabled by default since 1.35 (= 4.22).
https://github.com/kubernetes/kubernetes/pull/135195/changes


PR Type

Enhancement


Description

  • Remove ImageVolume feature gate from codebase

  • Feature enabled by default in upstream since 1.35

  • Update feature gate configurations across all profiles

  • Clean up generated OpenAPI and feature documentation


Diagram Walkthrough

flowchart LR
  A["ImageVolume Feature Gate"] -- "Remove from" --> B["Feature Definitions"]
  A -- "Remove from" --> C["Feature Gate Manifests"]
  A -- "Remove from" --> D["OpenAPI Specs"]
  B --> E["Cleaned Codebase"]
  C --> E
  D --> E
Loading

File Walkthrough

Relevant files
Enhancement
2 files
features.go
Remove ImageVolume feature gate definition                             
+0/-8     
zz_generated.openapi.go
Update OpenAPI spec removing ImageVolume                                 
+345/-69144
Documentation
1 files
features.md
Remove ImageVolume from feature documentation                       
+0/-1     
Configuration changes
8 files
featureGate-Hypershift-DevPreviewNoUpgrade.yaml
Remove ImageVolume from Hypershift DevPreview                       
+0/-3     
featureGate-Hypershift-TechPreviewNoUpgrade.yaml
Remove ImageVolume from Hypershift TechPreview                     
+0/-3     
featureGate-Hypershift-OKD.yaml
Remove ImageVolume from Hypershift OKD                                     
+0/-3     
featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
Remove ImageVolume from SelfManagedHA DevPreview                 
+0/-3     
featureGate-SelfManagedHA-OKD.yaml
Remove ImageVolume from SelfManagedHA OKD                               
+0/-3     
featureGate-Hypershift-Default.yaml
Remove ImageVolume from Hypershift Default                             
+0/-3     
featureGate-SelfManagedHA-Default.yaml
Remove ImageVolume from SelfManagedHA Default                       
+0/-3     
featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
Remove ImageVolume from SelfManagedHA TechPreview               
+0/-3     

@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels Feb 3, 2026
@openshift-ci-robot
Copy link

@bitoku: This pull request references Jira Issue OCPBUGS-74531, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @lyman9966

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Fixes OCPBUGS-74531

In upstream it's been enabled by default since 1.35 (= 4.22).
https://github.com/kubernetes/kubernetes/pull/135195/changes

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

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

@coderabbitai
Copy link

coderabbitai bot commented Feb 3, 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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: 89ee036a-057e-413e-8d85-99b0814352b3

📥 Commits

Reviewing files that changed from the base of the PR and between a22b844 and b1d6d75.

📒 Files selected for processing (10)
  • features.md
  • features/features.go
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-TechPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-TechPreviewNoUpgrade.yaml
💤 Files with no reviewable changes (10)
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
  • features/features.go
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-TechPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-DevPreviewNoUpgrade.yaml
  • features.md
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-TechPreviewNoUpgrade.yaml

📝 Walkthrough

Walkthrough

The pull request removes all references to the ImageVolume feature gate. Changes include deletion of the FeatureGateImageVolume declaration in features/features.go, removal of the ImageVolume row from features.md, and removal of ImageVolume entries from multiple FeatureGate YAML manifests for Hypershift and SelfManagedHA across Default, DevPreviewNoUpgrade, OKD, and TechPreviewNoUpgrade configurations. No other code or configuration was added or modified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'OCPBUGS-74531: Remove ImageVolume' directly and clearly describes the main change—removal of the ImageVolume feature gate from the codebase.
Description check ✅ Passed The description is well-detailed and directly related to the changeset, explaining the rationale (upstream enabled by default), the scope of changes, and providing a diagram and file walkthrough.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed PR removes ImageVolume feature gate from configuration files and manifests with no modifications to Ginkgo test files.
Test Structure And Quality ✅ Passed This custom check is not applicable to this PR. No Ginkgo test files were added, modified, or removed; only feature gate declarations, documentation, and YAML manifests were changed.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

@openshift-ci openshift-ci bot requested a review from lyman9966 February 3, 2026 16:10
@openshift-ci-robot
Copy link

@bitoku: This pull request references Jira Issue OCPBUGS-74531, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @lyman9966

Details

In response to this:

User description

Fixes OCPBUGS-74531

In upstream it's been enabled by default since 1.35 (= 4.22).
https://github.com/kubernetes/kubernetes/pull/135195/changes


PR Type

Enhancement


Description

  • Remove ImageVolume feature gate from codebase

  • Feature enabled by default in upstream since 1.35

  • Update feature gate configurations across all profiles

  • Clean up generated OpenAPI and feature documentation


Diagram Walkthrough

flowchart LR
 A["ImageVolume Feature Gate"] -- "Remove from" --> B["Feature Definitions"]
 A -- "Remove from" --> C["Feature Gate Manifests"]
 A -- "Remove from" --> D["OpenAPI Specs"]
 B --> E["Cleaned Codebase"]
 C --> E
 D --> E
Loading

File Walkthrough

Relevant files
Enhancement
2 files
features.go
Remove ImageVolume feature gate definition                             
+0/-8     
zz_generated.openapi.go
Update OpenAPI spec removing ImageVolume                                 
+345/-69144
Documentation
1 files
features.md
Remove ImageVolume from feature documentation                       
+0/-1     
Configuration changes
8 files
featureGate-Hypershift-DevPreviewNoUpgrade.yaml
Remove ImageVolume from Hypershift DevPreview                       
+0/-3     
featureGate-Hypershift-TechPreviewNoUpgrade.yaml
Remove ImageVolume from Hypershift TechPreview                     
+0/-3     
featureGate-Hypershift-OKD.yaml
Remove ImageVolume from Hypershift OKD                                     
+0/-3     
featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
Remove ImageVolume from SelfManagedHA DevPreview                 
+0/-3     
featureGate-SelfManagedHA-OKD.yaml
Remove ImageVolume from SelfManagedHA OKD                               
+0/-3     
featureGate-Hypershift-Default.yaml
Remove ImageVolume from Hypershift Default                             
+0/-3     
featureGate-SelfManagedHA-Default.yaml
Remove ImageVolume from SelfManagedHA Default                       
+0/-3     
featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
Remove ImageVolume from SelfManagedHA TechPreview               
+0/-3     

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.

@qodo-code-review
Copy link

qodo-code-review bot commented Feb 3, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so it cannot be verified whether
any critical actions were added/changed without appropriate audit logging context (user,
timestamp, action, outcome).

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so new/changed identifiers cannot
be reviewed for meaningful naming and self-documenting intent.

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so it cannot be verified whether
new/changed code paths properly handle errors and edge cases with actionable context.

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so it cannot be verified whether
any user-facing errors were introduced/changed to avoid leaking sensitive internal
details.

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so it cannot be verified whether
any new/changed logging is structured and free of sensitive data.

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Diff not provided: The PR diff content is not included (no + lines shown), so it cannot be verified whether
new/changed code introduces external inputs requiring validation/sanitization or impacts
authentication/authorization-sensitive behavior.

Referred Code
package features

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 3, 2026

Hello @bitoku! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci openshift-ci bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 3, 2026
@qodo-code-review
Copy link

qodo-code-review bot commented Feb 3, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Regenerate the incomplete OpenAPI specification

The generated OpenAPI specification file is missing numerous API definitions and
appears incomplete. Regenerate the file using the full code generation process
to ensure its correctness.

Examples:

openapi/generated_openapi/zz_generated.openapi.go [17-19]
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
	return map[string]common.OpenAPIDefinition{
		"k8s.io/api/admissionregistration/v1.AuditAnnotation":                      schema_k8sio_api_admissionregistration_v1_AuditAnnotation(ref),

Solution Walkthrough:

Before:

// openapi/generated_openapi/zz_generated.openapi.go
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
	return map[string]common.OpenAPIDefinition{
		// ... hundreds of API definitions are missing from the map ...
	}
}

After:

// openapi/generated_openapi/zz_generated.openapi.go

// After running the full code generation `make update`

func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
	return map[string]common.OpenAPIDefinition{
		"github.com/openshift/api/apps/v1.DeploymentConfig":       schema_openshift_api_apps_v1_DeploymentConfig(ref),
		"github.com/openshift/api/authorization/v1.Role":          schema_openshift_api_authorization_v1_Role(ref),
		"github.com/openshift/api/build/v1.Build":                 schema_openshift_api_build_v1_Build(ref),
		"github.com/openshift/api/image/v1.ImageStream":           schema_openshift_api_image_v1_ImageStream(ref),
		// ... and hundreds more definitions correctly included
	}
}
Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies that the generated OpenAPI spec file is critically incomplete, which would break API clients and tooling if merged.

High
  • Update

@JoelSpeed
Copy link
Contributor

Code generation appears to be out of date here, can you please look at the failure in the verify check and regenerate?

@bitoku bitoku force-pushed the remove-imagevolume branch from cb2183f to 6de7126 Compare February 3, 2026 17:01
@openshift-ci openshift-ci bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Feb 3, 2026
@bitoku bitoku force-pushed the remove-imagevolume branch from 6de7126 to 17ddae3 Compare February 3, 2026 17:59
@openshift-ci openshift-ci bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Feb 3, 2026
@bitoku
Copy link
Contributor Author

bitoku commented Feb 4, 2026

/retest

@JoelSpeed
Copy link
Contributor

/lgtm
/pipeline auto
/verified by CI

Assuming E2Es are passing, then that's the complete verification we need

@openshift-ci-robot
Copy link

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.

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

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

Details

In response to this:

/lgtm
/pipeline auto
/verified by CI

Assuming E2Es are passing, then that's the complete verification we need

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 openshift-ci bot added lgtm Indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Feb 4, 2026
@openshift-ci-robot
Copy link

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-ovn
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-techpreview
/test e2e-aws-serial-1of2
/test e2e-aws-serial-2of2
/test e2e-aws-serial-techpreview-1of2
/test e2e-aws-serial-techpreview-2of2
/test e2e-azure
/test e2e-gcp
/test e2e-upgrade
/test e2e-upgrade-out-of-change

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD e09e5a4 and 2 for PR HEAD 17ddae3 in total

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 9a67b6d and 1 for PR HEAD 17ddae3 in total

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 0acc398 and 0 for PR HEAD 17ddae3 in total

@openshift-ci-robot
Copy link

/hold

Revision 17ddae3 was retested 3 times: holding

@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 4, 2026
@bitoku
Copy link
Contributor Author

bitoku commented Feb 5, 2026

ah sorry it needs 1.35 rebase.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 9, 2026
@bitoku bitoku force-pushed the remove-imagevolume branch from 17ddae3 to a22b844 Compare March 9, 2026 12:07
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Mar 9, 2026
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 9, 2026
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 9, 2026
@bitoku bitoku force-pushed the remove-imagevolume branch from a22b844 to b1d6d75 Compare March 9, 2026 13:24
@openshift-ci-robot
Copy link

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-ovn
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-techpreview
/test e2e-aws-serial-1of2
/test e2e-aws-serial-2of2
/test e2e-aws-serial-techpreview-1of2
/test e2e-aws-serial-techpreview-2of2
/test e2e-azure
/test e2e-gcp
/test e2e-upgrade
/test e2e-upgrade-out-of-change
/test minor-e2e-upgrade-minor

@JoelSpeed
Copy link
Contributor

/lgtm

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

openshift-ci bot commented Mar 9, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: JoelSpeed

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
Copy link
Contributor

openshift-ci bot commented Mar 9, 2026

@bitoku: 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/e2e-aws-serial-techpreview-2of2 b1d6d75 link true /test e2e-aws-serial-techpreview-2of2
ci/prow/e2e-aws-ovn-hypershift b1d6d75 link true /test e2e-aws-ovn-hypershift

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. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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 Review effort 2/5 size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants