Skip to content

Conversation

@Phaow
Copy link

@Phaow Phaow commented Jan 27, 2026

User description

  • Graduate MutableCSINodeAllocatableCount to GA.

PR Type

Enhancement


Description

  • Graduate MutableCSINodeAllocatableCount feature gate to GA

  • Enable feature in Default profile alongside preview profiles

  • Update feature gate documentation and manifest files

  • Reorder feature in documentation table to GA section


Diagram Walkthrough

flowchart LR
  A["MutableCSINodeAllocatableCount<br/>Feature Gate"] -->|Add Default profile| B["Enable in DevPreview,<br/>TechPreview, Default"]
  B -->|Update manifests| C["Move to GA section<br/>in featuregates"]
  C -->|Update docs| D["Reorder in features.md<br/>documentation table"]
Loading

File Walkthrough

Relevant files
Enhancement
features.go
Enable MutableCSINodeAllocatableCount in Default profile 

features/features.go

  • Add configv1.Default to the enableIn() call for
    FeatureGateMutableCSINodeAllocatableCount
  • Fix indentation formatting for FeatureGateKMSEncryption definition
+7/-7     
Documentation
features.md
Move MutableCSINodeAllocatableCount to GA documentation   

features.md

  • Remove MutableCSINodeAllocatableCount from preview-only section
  • Add MutableCSINodeAllocatableCount to GA section with enabled status
    across all profiles
  • Reorder feature in documentation table to reflect GA graduation
+1/-1     
Configuration changes
featureGate-Hypershift-Default.yaml
Move feature to Default section in Hypershift manifest     

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-3     
featureGate-SelfManagedHA-Default.yaml
Move feature to Default section in SelfManagedHA manifest

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-3     

Special notes for your reviewer:

  • MutableCSINodeAllocatableCount is a featuregate we have the same name in both upstream and downstream. In downstream we only add an parameter to the aws ebs csidriver(enable the feature) by our operator. In addition, it is expected only support for aws currently. Even if Azure/Gcloud started support it, it won't be enabled automatically. We still need use our driver operator enable it set the parameter to csidriver object. It should be fully tested before we enable it for other csi drivers which start to support it.
  • We have 2 mock tests with [Feature:OffByDefault] tag and real e2e for aws 3 tests(in Suite:openshift/conformance/serial), total test count is 5.
[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] [Feature:OffByDefault] Dynamic Allocatable Count should observe dynamic changes in CSINode allocatable count
[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] [Feature:OffByDefault] Attach Limit Exceeded should transition pod to failed state when attachment limit exceeded
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should be set the nodeAllocatableUpdatePeriodSeconds correctly by driver operator [Suite:openshift/conformance/serial]
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should automatically update CSINode allocatable count when instance attached ENI count changes [Suite:openshift/conformance/serial]
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should immediately update CSINode allocatable count when ResourceExhausted errors occur [Suite:openshift/conformance/serial]

@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

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 27, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 27, 2026

@Phaow: This pull request references STOR-2878 which is a valid jira issue.

Details

In response to this:

  • Graduate MutableCSINodeAllocatableCount to GA.

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 the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 27, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

Hello @Phaow! 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-robot
Copy link

openshift-ci-robot commented Jan 27, 2026

@Phaow: This pull request references STOR-2878 which is a valid jira issue.

Details

In response to this:

User description

  • Graduate MutableCSINodeAllocatableCount to GA.

PR Type

Enhancement


Description

  • Graduate MutableCSINodeAllocatableCount feature gate to GA

  • Enable feature in Default profile alongside preview profiles

  • Update feature gate documentation and manifest files

  • Reorder feature in documentation table to GA section


Diagram Walkthrough

flowchart LR
 A["MutableCSINodeAllocatableCount<br/>Feature Gate"] -->|Add Default profile| B["Enable in DevPreview,<br/>TechPreview, Default"]
 B -->|Update manifests| C["Move to GA section<br/>in featuregates"]
 C -->|Update docs| D["Reorder in features.md<br/>documentation table"]
Loading

File Walkthrough

Relevant files
Enhancement
features.go
Enable MutableCSINodeAllocatableCount in Default profile 

features/features.go

  • Add configv1.Default to the enableIn() call for
    FeatureGateMutableCSINodeAllocatableCount
  • Fix indentation formatting for FeatureGateKMSEncryption definition
+7/-7     
Documentation
features.md
Move MutableCSINodeAllocatableCount to GA documentation   

features.md

  • Remove MutableCSINodeAllocatableCount from preview-only section
  • Add MutableCSINodeAllocatableCount to GA section with enabled status
    across all profiles
  • Reorder feature in documentation table to reflect GA graduation
+1/-1     
Configuration changes
featureGate-Hypershift-Default.yaml
Move feature to Default section in Hypershift manifest     

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-3     
featureGate-SelfManagedHA-Default.yaml
Move feature to Default section in SelfManagedHA manifest

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-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.

@coderabbitai
Copy link

coderabbitai bot commented Jan 27, 2026

📝 Walkthrough

Walkthrough

This pull request moves the MutableCSINodeAllocatableCount feature from disabled to enabled in multiple FeatureGate manifests (Hypershift-Default, Hypershift-OKD, SelfManagedHA-Default, SelfManagedHA-OKD), reorders its row in features.md (removed then reintroduced elsewhere), and updates features.go to enable FeatureGateSigstoreImageVerification and FeatureGateSigstoreImageVerificationPKI for Default and OKD in addition to existing tiers. No exported/public signatures were changed.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change - graduating MutableCSINodeAllocatableCount feature to GA status, which aligns with the primary objective shown across all file modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description clearly describes graduating the MutableCSINodeAllocatableCount feature gate to GA, enabling it in Default profile, and updating documentation and manifest files accordingly.

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

✨ Finishing touches
  • 📝 Generate docstrings

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

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 27, 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: Passed

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: Passed

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: Passed

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: Passed

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: Passed

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: Passed

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 openshift-ci bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jan 27, 2026
@qodo-code-review
Copy link

qodo-code-review bot commented Jan 27, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Simplify feature gate enablement for GA

To correctly reflect the feature's GA status, remove the redundant
DevPreviewNoUpgrade and TechPreviewNoUpgrade feature sets from the enableIn
call, leaving only configv1.Default.

features/features.go [927-933]

 	FeatureGateMutableCSINodeAllocatableCount = newFeatureGate("MutableCSINodeAllocatableCount").
 							reportProblemsToJiraComponent("Storage / Kubernetes External Components").
 							contactPerson("jsafrane").
 							productScope(kubernetes).
 							enhancementPR("https://github.com/kubernetes/enhancements/issues/4876").
-							enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default).
+							enableIn(configv1.Default).
 							mustRegister()

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly points out that for a GA feature, enablement in DevPreviewNoUpgrade and TechPreviewNoUpgrade is redundant, improving code clarity and correctly reflecting the feature's lifecycle status.

Medium
  • Update

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

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

@Phaow
Copy link
Author

Phaow commented Jan 28, 2026

/test unit

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 28, 2026

PR-Agent: could not fine a component named unit in a supported language in this PR.

Signed-off-by: Penghao <pewang@redhat.com>
@Phaow Phaow force-pushed the graduate-mutable-csinode-allocatablecount branch from ab0c5a1 to a0c674f Compare January 28, 2026 01:43
@openshift-ci openshift-ci bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jan 28, 2026
@Phaow
Copy link
Author

Phaow commented Jan 28, 2026

/test minor-e2e-upgrade-minor

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 28, 2026

PR-Agent: could not fine a component named minor-e2e-upgrade-minor in a supported language in this PR.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 28, 2026

@Phaow: 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/verify-feature-promotion a0c674f link true /test verify-feature-promotion

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

openshift-ci-robot commented Jan 29, 2026

@Phaow: This pull request references STOR-2878 which is a valid jira issue.

Details

In response to this:

User description

  • Graduate MutableCSINodeAllocatableCount to GA.

PR Type

Enhancement


Description

  • Graduate MutableCSINodeAllocatableCount feature gate to GA

  • Enable feature in Default profile alongside preview profiles

  • Update feature gate documentation and manifest files

  • Reorder feature in documentation table to GA section


Diagram Walkthrough

flowchart LR
 A["MutableCSINodeAllocatableCount<br/>Feature Gate"] -->|Add Default profile| B["Enable in DevPreview,<br/>TechPreview, Default"]
 B -->|Update manifests| C["Move to GA section<br/>in featuregates"]
 C -->|Update docs| D["Reorder in features.md<br/>documentation table"]
Loading

File Walkthrough

Relevant files
Enhancement
features.go
Enable MutableCSINodeAllocatableCount in Default profile 

features/features.go

  • Add configv1.Default to the enableIn() call for
    FeatureGateMutableCSINodeAllocatableCount
  • Fix indentation formatting for FeatureGateKMSEncryption definition
+7/-7     
Documentation
features.md
Move MutableCSINodeAllocatableCount to GA documentation   

features.md

  • Remove MutableCSINodeAllocatableCount from preview-only section
  • Add MutableCSINodeAllocatableCount to GA section with enabled status
    across all profiles
  • Reorder feature in documentation table to reflect GA graduation
+1/-1     
Configuration changes
featureGate-Hypershift-Default.yaml
Move feature to Default section in Hypershift manifest     

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-3     
featureGate-SelfManagedHA-Default.yaml
Move feature to Default section in SelfManagedHA manifest

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml

  • Remove MutableCSINodeAllocatableCount from TechPreviewNoUpgrade
    section
  • Add MutableCSINodeAllocatableCount to Default section
  • Reflect graduation from preview to GA status
+3/-3     

Special notes for your reviewer:

  • MutableCSINodeAllocatableCount is a featuregate we have the same name in both upstream and downstream. In downstream we only add an parameter to the aws ebs csidriver(enable the feature) by our operator. In addition, it is expected only support for aws currently. Even if Azure/Gcloud started support it, it won't be enabled automatically. We still need use our driver operator enable it set the parameter to csidriver object. It should be fully tested before we enable it for other csi drivers which start to support it.
  • We have 2 mock tests with [Feature:OffByDefault] tag and real e2e for aws 3 tests(in Suite:openshift/conformance/serial), total test count is 5.
[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] [Feature:OffByDefault] Dynamic Allocatable Count should observe dynamic changes in CSINode allocatable count
[sig-storage] MutableCSINodeAllocatableCount [FeatureGate:MutableCSINodeAllocatableCount] [Beta] [Feature:OffByDefault] Attach Limit Exceeded should transition pod to failed state when attachment limit exceeded
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should be set the nodeAllocatableUpdatePeriodSeconds correctly by driver operator [Suite:openshift/conformance/serial]
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should automatically update CSINode allocatable count when instance attached ENI count changes [Suite:openshift/conformance/serial]
[sig-storage][FeatureGate:MutableCSINodeAllocatableCount][Jira:"Storage"][Serial][Driver: ebs.csi.aws.com] should immediately update CSINode allocatable count when ResourceExhausted errors occur [Suite:openshift/conformance/serial]

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.

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

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. 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.

2 participants