Merge pull request #132429 from torredil/kep4876-beta

Promote sig-storage feature `MutableCSINodeAllocatableCount` to Beta
This commit is contained in:
Kubernetes Prow Robot
2025-07-22 13:40:34 -07:00
committed by GitHub
13 changed files with 29 additions and 23 deletions

View File

@@ -17487,7 +17487,7 @@
"type": "string"
},
"nodeAllocatableUpdatePeriodSeconds": {
"description": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"description": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"format": "int64",
"type": "integer"
},
@@ -17984,7 +17984,7 @@
"description": "VolumeError captures an error encountered during a volume operation.",
"properties": {
"errorCode": {
"description": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"description": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"format": "int32",
"type": "integer"
},

View File

@@ -1295,7 +1295,7 @@
"type": "string"
},
"nodeAllocatableUpdatePeriodSeconds": {
"description": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"description": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"format": "int64",
"type": "integer"
},
@@ -1928,7 +1928,7 @@
"description": "VolumeError captures an error encountered during a volume operation.",
"properties": {
"errorCode": {
"description": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"description": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"format": "int32",
"type": "integer"
},

View File

@@ -206,7 +206,7 @@ type VolumeError struct {
// errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.
//
// This is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
// This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
//
// +featureGate=MutableCSINodeAllocatableCount
// +optional
@@ -426,7 +426,7 @@ type CSIDriverSpec struct {
// occur (neither periodic nor upon detecting capacity-related failures), and the
// allocatable.count remains static. The minimum allowed value for this field is 10 seconds.
//
// This is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
// This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
//
// This field is mutable.
//

View File

@@ -1270,7 +1270,8 @@ func TestCSINodeUpdateValidation(t *testing.T) {
//driverName2 := "1io.kubernetes-storage-2-csi-driver3"
//longName := "my-a-b-c-d-c-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-ABCDEFGHIJKLMNOPQRSTUVWXYZ-driver"
nodeID := "nodeA"
// Test with feature gate disabled
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.MutableCSINodeAllocatableCount, false)
old := storage.CSINode{
ObjectMeta: metav1.ObjectMeta{Name: "foo1"},
Spec: storage.CSINodeSpec{

View File

@@ -1402,6 +1402,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
MutableCSINodeAllocatableCount: {
{Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Alpha},
{Version: version.MustParse("1.34"), Default: false, PreRelease: featuregate.Beta},
},
NFTablesProxyMode: {

View File

@@ -52221,7 +52221,7 @@ func schema_k8sio_api_storage_v1_CSIDriverSpec(ref common.ReferenceCallback) com
},
"nodeAllocatableUpdatePeriodSeconds": {
SchemaProps: spec.SchemaProps{
Description: "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
Description: "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
Type: []string{"integer"},
Format: "int64",
},
@@ -52987,7 +52987,7 @@ func schema_k8sio_api_storage_v1_VolumeError(ref common.ReferenceCallback) commo
},
"errorCode": {
SchemaProps: spec.SchemaProps{
Description: "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
Description: "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
Type: []string{"integer"},
Format: "int32",
},
@@ -53687,7 +53687,7 @@ func schema_k8sio_api_storage_v1beta1_CSIDriverSpec(ref common.ReferenceCallback
},
"nodeAllocatableUpdatePeriodSeconds": {
SchemaProps: spec.SchemaProps{
Description: "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
Description: "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
Type: []string{"integer"},
Format: "int64",
},
@@ -54564,7 +54564,7 @@ func schema_k8sio_api_storage_v1beta1_VolumeError(ref common.ReferenceCallback)
},
"errorCode": {
SchemaProps: spec.SchemaProps{
Description: "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
Description: "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
Type: []string{"integer"},
Format: "int32",
},

View File

@@ -218,7 +218,7 @@ message CSIDriverSpec {
// occur (neither periodic nor upon detecting capacity-related failures), and the
// allocatable.count remains static. The minimum allowed value for this field is 10 seconds.
//
// This is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
// This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
//
// This field is mutable.
//
@@ -577,7 +577,7 @@ message VolumeError {
// errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.
//
// This is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
// This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
//
// +featureGate=MutableCSINodeAllocatableCount
// +optional

View File

@@ -229,7 +229,7 @@ type VolumeError struct {
// errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.
//
// This is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
// This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
//
// +featureGate=MutableCSINodeAllocatableCount
// +optional
@@ -436,7 +436,7 @@ type CSIDriverSpec struct {
// occur (neither periodic nor upon detecting capacity-related failures), and the
// allocatable.count remains static. The minimum allowed value for this field is 10 seconds.
//
// This is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
// This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
//
// This field is mutable.
//

View File

@@ -57,7 +57,7 @@ var map_CSIDriverSpec = map[string]string{
"tokenRequests": "tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"<audience>\": {\n \"token\": <token>,\n \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.",
"requiresRepublish": "requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.",
"seLinuxMount": "seLinuxMount specifies if the CSI driver supports \"-o context\" mount option.\n\nWhen \"true\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\n\nWhen \"false\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\nDefault is \"false\".",
"nodeAllocatableUpdatePeriodSeconds": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"nodeAllocatableUpdatePeriodSeconds": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
}
func (CSIDriverSpec) SwaggerDoc() map[string]string {
@@ -221,7 +221,7 @@ var map_VolumeError = map[string]string{
"": "VolumeError captures an error encountered during a volume operation.",
"time": "time represents the time the error was encountered.",
"message": "message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.",
"errorCode": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"errorCode": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
}
func (VolumeError) SwaggerDoc() map[string]string {

View File

@@ -220,7 +220,7 @@ message CSIDriverSpec {
// occur (neither periodic nor upon detecting capacity-related failures), and the
// allocatable.count remains static. The minimum allowed value for this field is 10 seconds.
//
// This is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
// This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
//
// This field is mutable.
//
@@ -619,7 +619,7 @@ message VolumeError {
// errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.
//
// This is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
// This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
//
// +featureGate=MutableCSINodeAllocatableCount
// +optional

View File

@@ -236,7 +236,7 @@ type VolumeError struct {
// errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.
//
// This is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
// This is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.
//
// +featureGate=MutableCSINodeAllocatableCount
// +optional
@@ -449,7 +449,7 @@ type CSIDriverSpec struct {
// occur (neither periodic nor upon detecting capacity-related failures), and the
// allocatable.count remains static. The minimum allowed value for this field is 10 seconds.
//
// This is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
// This is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.
//
// This field is mutable.
//

View File

@@ -57,7 +57,7 @@ var map_CSIDriverSpec = map[string]string{
"tokenRequests": "tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"<audience>\": {\n \"token\": <token>,\n \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.",
"requiresRepublish": "requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.",
"seLinuxMount": "seLinuxMount specifies if the CSI driver supports \"-o context\" mount option.\n\nWhen \"true\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\n\nWhen \"false\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\nDefault is \"false\".",
"nodeAllocatableUpdatePeriodSeconds": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is an alpha feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
"nodeAllocatableUpdatePeriodSeconds": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.",
}
func (CSIDriverSpec) SwaggerDoc() map[string]string {
@@ -242,7 +242,7 @@ var map_VolumeError = map[string]string{
"": "VolumeError captures an error encountered during a volume operation.",
"time": "time represents the time the error was encountered.",
"message": "message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.",
"errorCode": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, alpha field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
"errorCode": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.",
}
func (VolumeError) SwaggerDoc() map[string]string {

View File

@@ -947,6 +947,10 @@
lockToDefault: false
preRelease: Alpha
version: "1.33"
- default: false
lockToDefault: false
preRelease: Beta
version: "1.34"
- name: MutatingAdmissionPolicy
versionedSpecs:
- default: false