diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 94b6a0dc2c5..2897688ead4 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -6742,7 +6742,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -7028,7 +7028,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -7582,7 +7582,7 @@ "description": "resourceFieldRef selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -7601,7 +7601,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -8745,7 +8745,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -10508,7 +10508,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -11525,7 +11525,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -12427,7 +12427,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -12683,7 +12683,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } diff --git a/api/openapi-spec/v3/api__v1_openapi.json b/api/openapi-spec/v3/api__v1_openapi.json index 5322607890f..f922d12f520 100644 --- a/api/openapi-spec/v3/api__v1_openapi.json +++ b/api/openapi-spec/v3/api__v1_openapi.json @@ -759,7 +759,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -1074,7 +1074,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -1728,7 +1728,7 @@ "description": "resourceFieldRef selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -1747,7 +1747,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -3070,7 +3070,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -5237,7 +5237,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -6383,7 +6383,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -7405,7 +7405,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -7713,7 +7713,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } diff --git a/api/openapi-spec/v3/apis__apps__v1_openapi.json b/api/openapi-spec/v3/apis__apps__v1_openapi.json index e55d5b279af..e8857155e41 100644 --- a/api/openapi-spec/v3/apis__apps__v1_openapi.json +++ b/api/openapi-spec/v3/apis__apps__v1_openapi.json @@ -1596,7 +1596,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -1677,7 +1677,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -2033,7 +2033,7 @@ "description": "resourceFieldRef selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -2052,7 +2052,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -2852,7 +2852,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -3506,7 +3506,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -4197,7 +4197,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -4565,7 +4565,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -4730,7 +4730,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } diff --git a/api/openapi-spec/v3/apis__batch__v1_openapi.json b/api/openapi-spec/v3/apis__batch__v1_openapi.json index 20795fae38f..786f6501946 100644 --- a/api/openapi-spec/v3/apis__batch__v1_openapi.json +++ b/api/openapi-spec/v3/apis__batch__v1_openapi.json @@ -1003,7 +1003,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -1084,7 +1084,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -1440,7 +1440,7 @@ "description": "resourceFieldRef selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -1459,7 +1459,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -2259,7 +2259,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } @@ -2768,7 +2768,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -3459,7 +3459,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -3827,7 +3827,7 @@ "type": "integer" }, "defaultUser": { - "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" }, @@ -3992,7 +3992,7 @@ "type": "string" }, "user": { - "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "description": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", "format": "int64", "type": "integer" } diff --git a/pkg/api/pod/util_test.go b/pkg/api/pod/util_test.go index 340d7a0b044..26235434cc5 100644 --- a/pkg/api/pod/util_test.go +++ b/pkg/api/pod/util_test.go @@ -2284,259 +2284,277 @@ func TestValidateAllowNonLocalProjectedTokenPathOption(t *testing.T) { } func TestDropAtomicWriteVolumeUserFields(t *testing.T) { - volumesWithUserFields := []api.Volume{ - { - Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ - DefaultUser: ptr.To[int64](1000), - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - }, - { - Name: "downwardapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - DefaultUser: ptr.To[int64](1000), - Items: []api.DownwardAPIVolumeFile{ - { - FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - }, - { - Name: "configmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - DefaultUser: ptr.To[int64](1000), - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - }, - { - Name: "projected", - VolumeSource: api.VolumeSource{ - Projected: &api.ProjectedVolumeSource{ - DefaultUser: ptr.To[int64](1000), - Sources: []api.VolumeProjection{ - { - Secret: &api.SecretProjection{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - { - DownwardAPI: &api.DownwardAPIProjection{ - Items: []api.DownwardAPIVolumeFile{ - { - FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - { - ConfigMap: &api.ConfigMapProjection{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - User: ptr.To[int64](1001), - }, - }, - }, - }, - { - ServiceAccountToken: &api.ServiceAccountTokenProjection{ - Path: "foo", + volumesWithUserFields := func() *[]api.Volume { + return &[]api.Volume{ + { + Name: "secret", + VolumeSource: api.VolumeSource{ + Secret: &api.SecretVolumeSource{ + DefaultUser: ptr.To[int64](1000), + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", User: ptr.To[int64](1001), }, }, - { - ClusterTrustBundle: &api.ClusterTrustBundleProjection{ - Name: new("foo"), - User: ptr.To[int64](1001), - }, - }, - { - PodCertificate: &api.PodCertificateProjection{ - SignerName: "foo.example.com/bar", - User: ptr.To[int64](1001), + }, + }, + }, + { + Name: "downwardapi", + VolumeSource: api.VolumeSource{ + DownwardAPI: &api.DownwardAPIVolumeSource{ + DefaultUser: ptr.To[int64](1000), + Items: []api.DownwardAPIVolumeFile{ + { + FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, + Path: "filename", + User: ptr.To[int64](1001), }, }, }, }, }, - }, + { + Name: "configmap", + VolumeSource: api.VolumeSource{ + ConfigMap: &api.ConfigMapVolumeSource{ + DefaultUser: ptr.To[int64](1000), + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + User: ptr.To[int64](1001), + }, + }, + }, + }, + }, + { + Name: "projected", + VolumeSource: api.VolumeSource{ + Projected: &api.ProjectedVolumeSource{ + DefaultUser: ptr.To[int64](1000), + Sources: []api.VolumeProjection{ + { + Secret: &api.SecretProjection{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + User: ptr.To[int64](1001), + }, + }, + }, + }, + { + DownwardAPI: &api.DownwardAPIProjection{ + Items: []api.DownwardAPIVolumeFile{ + { + FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, + Path: "filename", + User: ptr.To[int64](1001), + }, + }, + }, + }, + { + ConfigMap: &api.ConfigMapProjection{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + User: ptr.To[int64](1001), + }, + }, + }, + }, + { + ServiceAccountToken: &api.ServiceAccountTokenProjection{ + Path: "foo", + User: ptr.To[int64](1001), + }, + }, + { + ClusterTrustBundle: &api.ClusterTrustBundleProjection{ + Name: new("foo"), + User: ptr.To[int64](1001), + }, + }, + { + PodCertificate: &api.PodCertificateProjection{ + SignerName: "foo.example.com/bar", + User: ptr.To[int64](1001), + }, + }, + }, + }, + }, + }, + } + } + + volumesWithoutUserFields := func() *[]api.Volume { + return &[]api.Volume{ + { + Name: "secret", + VolumeSource: api.VolumeSource{ + Secret: &api.SecretVolumeSource{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + }, + }, + }, + }, + }, + { + Name: "downwardapi", + VolumeSource: api.VolumeSource{ + DownwardAPI: &api.DownwardAPIVolumeSource{ + Items: []api.DownwardAPIVolumeFile{ + { + FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, + Path: "filename", + }, + }, + }, + }, + }, + { + Name: "configmap", + VolumeSource: api.VolumeSource{ + ConfigMap: &api.ConfigMapVolumeSource{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + }, + }, + }, + }, + }, + { + Name: "projected", + VolumeSource: api.VolumeSource{ + Projected: &api.ProjectedVolumeSource{ + Sources: []api.VolumeProjection{ + { + Secret: &api.SecretProjection{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + }, + }, + }, + }, + { + DownwardAPI: &api.DownwardAPIProjection{ + Items: []api.DownwardAPIVolumeFile{ + { + FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, + Path: "filename", + }, + }, + }, + }, + { + ConfigMap: &api.ConfigMapProjection{ + Items: []api.KeyToPath{ + { + Key: "key", + Path: "filename", + }, + }, + }, + }, + { + ServiceAccountToken: &api.ServiceAccountTokenProjection{ + Path: "foo", + }, + }, + { + ClusterTrustBundle: &api.ClusterTrustBundleProjection{ + Name: new("foo"), + }, + }, + { + PodCertificate: &api.PodCertificateProjection{ + SignerName: "foo.example.com/bar", + }, + }, + }, + }, + }, + }, + } } testCases := []struct { - description string - atomicWriteVolumeUserFieldsEnabled bool - oldPod *api.PodSpec - newPod *api.PodSpec - wantPod *api.PodSpec + description string + featureEnabled bool + oldPod *api.PodSpec + newPod *api.PodSpec + wantPod *api.PodSpec }{ + { + description: "feature gate disabled, can keep user fields on volumes", + oldPod: &api.PodSpec{ + Volumes: *volumesWithUserFields(), + }, + newPod: &api.PodSpec{ + Volumes: *volumesWithUserFields(), + }, + wantPod: &api.PodSpec{ + Volumes: *volumesWithUserFields(), + }, + }, { description: "feature gate disabled, cannot add user fields to volumes", oldPod: &api.PodSpec{ Volumes: []api.Volume{}, }, newPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, wantPod: &api.PodSpec{ - Volumes: []api.Volume{ - { - Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - }, - }, - }, - }, - }, - { - Name: "downwardapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{ - { - FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, - Path: "filename", - }, - }, - }, - }, - }, - { - Name: "configmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - }, - }, - }, - }, - }, - { - Name: "projected", - VolumeSource: api.VolumeSource{ - Projected: &api.ProjectedVolumeSource{ - Sources: []api.VolumeProjection{ - { - Secret: &api.SecretProjection{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - }, - }, - }, - }, - { - DownwardAPI: &api.DownwardAPIProjection{ - Items: []api.DownwardAPIVolumeFile{ - { - FieldRef: &api.ObjectFieldSelector{APIVersion: "v1", FieldPath: "metadata.name"}, - Path: "filename", - }, - }, - }, - }, - { - ConfigMap: &api.ConfigMapProjection{ - Items: []api.KeyToPath{ - { - Key: "key", - Path: "filename", - }, - }, - }, - }, - { - ServiceAccountToken: &api.ServiceAccountTokenProjection{ - Path: "foo", - }, - }, - { - ClusterTrustBundle: &api.ClusterTrustBundleProjection{ - Name: new("foo"), - }, - }, - { - PodCertificate: &api.PodCertificateProjection{ - SignerName: "foo.example.com/bar", - }, - }, - }, - }, - }, - }, - }, + Volumes: *volumesWithoutUserFields(), }, }, { - description: "feature gate enabled, can keep user fields on volumes", - atomicWriteVolumeUserFieldsEnabled: true, + description: "feature gate enabled, can keep user fields on volumes", + featureEnabled: true, oldPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, newPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, wantPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, }, { - description: "feature gate enabled, can add user fields to volumes", - atomicWriteVolumeUserFieldsEnabled: true, + description: "feature gate enabled, can add user fields to volumes", + featureEnabled: true, oldPod: &api.PodSpec{ Volumes: []api.Volume{}, }, newPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, wantPod: &api.PodSpec{ - Volumes: volumesWithUserFields, + Volumes: *volumesWithUserFields(), }, }, } for _, tc := range testCases { t.Run(tc.description, func(t *testing.T) { - featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AtomicWriteVolumeUserFields, tc.atomicWriteVolumeUserFieldsEnabled) + featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AtomicWriteVolumeUserFields, tc.featureEnabled) dropDisabledAtomicWriteVolumeUserFields(tc.newPod, tc.oldPod) if diff := cmp.Diff(tc.newPod, tc.wantPod); diff != "" { diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index 4b837569f2d..e2071a276b7 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -1299,7 +1299,7 @@ type SecretVolumeSource struct { Optional *bool // The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 @@ -1604,7 +1604,7 @@ type DownwardAPIVolumeSource struct { DefaultMode *int32 // The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 @@ -1629,7 +1629,7 @@ type DownwardAPIVolumeFile struct { Mode *int32 // The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 @@ -1913,7 +1913,7 @@ type ConfigMapVolumeSource struct { Optional *bool // The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 @@ -1965,7 +1965,7 @@ type ServiceAccountTokenProjection struct { Path string // The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 @@ -1995,7 +1995,7 @@ type ClusterTrustBundleProjection struct { // The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 @@ -2074,7 +2074,7 @@ type PodCertificateProjection struct { // The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 @@ -2093,7 +2093,7 @@ type ProjectedVolumeSource struct { DefaultMode *int32 // The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 @@ -2135,7 +2135,7 @@ type KeyToPath struct { Mode *int32 // The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 3fbf46ba100..2b93279671f 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -1245,6 +1245,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate AtomicWriteVolumeUserFields: { {Version: version.MustParse("1.37"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.38"), Default: true, PreRelease: featuregate.Beta}, }, AuthorizePodWebsocketUpgradeCreatePermission: { diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index 9a6ff16c971..438a96b3400 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -20746,7 +20746,7 @@ func schema_k8sio_api_core_v1_ClusterTrustBundleProjection(ref common.ReferenceC }, "user": { SchemaProps: spec.SchemaProps{ - Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -21255,7 +21255,7 @@ func schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref common.ReferenceCallback }, "defaultUser": { SchemaProps: spec.SchemaProps{ - Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -22228,7 +22228,7 @@ func schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref common.ReferenceCallback }, "user": { SchemaProps: spec.SchemaProps{ - Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -22276,7 +22276,7 @@ func schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref common.ReferenceCallba }, "defaultUser": { SchemaProps: spec.SchemaProps{ - Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -24626,7 +24626,7 @@ func schema_k8sio_api_core_v1_KeyToPath(ref common.ReferenceCallback) common.Ope }, "user": { SchemaProps: spec.SchemaProps{ - Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -28139,7 +28139,7 @@ func schema_k8sio_api_core_v1_PodCertificateProjection(ref common.ReferenceCallb }, "user": { SchemaProps: spec.SchemaProps{ - Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -30292,7 +30292,7 @@ func schema_k8sio_api_core_v1_ProjectedVolumeSource(ref common.ReferenceCallback }, "defaultUser": { SchemaProps: spec.SchemaProps{ - Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -31974,7 +31974,7 @@ func schema_k8sio_api_core_v1_SecretVolumeSource(ref common.ReferenceCallback) c }, "defaultUser": { SchemaProps: spec.SchemaProps{ - Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, @@ -32405,7 +32405,7 @@ func schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref common.Reference }, "user": { SchemaProps: spec.SchemaProps{ - Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + Description: "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", Type: []string{"integer"}, Format: "int64", }, diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 7e4b45c89bc..47925834a41 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -490,7 +490,7 @@ message ClusterTrustBundleProjection { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 user = 6; @@ -708,7 +708,7 @@ message ConfigMapVolumeSource { // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 defaultUser = 5; @@ -1258,7 +1258,7 @@ message DownwardAPIVolumeFile { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 user = 5; @@ -1285,7 +1285,7 @@ message DownwardAPIVolumeSource { // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 defaultUser = 3; @@ -2435,7 +2435,7 @@ message KeyToPath { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 user = 4; @@ -4218,7 +4218,7 @@ message PodCertificateProjection { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 user = 8; @@ -5564,7 +5564,7 @@ message ProjectedVolumeSource { // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 defaultUser = 3; @@ -6376,7 +6376,7 @@ message SecretVolumeSource { // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 defaultUser = 5; @@ -6639,7 +6639,7 @@ message ServiceAccountTokenProjection { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional optional int64 user = 4; diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index f42ac7eede2..bceec47d1c8 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -1636,7 +1636,7 @@ type SecretVolumeSource struct { Optional *bool `json:"optional,omitempty" protobuf:"varint,4,opt,name=optional"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 `json:"defaultUser,omitempty" protobuf:"varint,5,opt,name=defaultUser"` @@ -2120,7 +2120,7 @@ type ConfigMapVolumeSource struct { Optional *bool `json:"optional,omitempty" protobuf:"varint,4,opt,name=optional"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 `json:"defaultUser,omitempty" protobuf:"varint,5,opt,name=defaultUser"` @@ -2179,7 +2179,7 @@ type ServiceAccountTokenProjection struct { Path string `json:"path" protobuf:"bytes,3,opt,name=path"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 `json:"user,omitempty" protobuf:"varint,4,opt,name=user"` @@ -2221,7 +2221,7 @@ type ClusterTrustBundleProjection struct { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 `json:"user,omitempty" protobuf:"varint,6,opt,name=user"` @@ -2319,7 +2319,7 @@ type PodCertificateProjection struct { // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 `json:"user,omitempty" protobuf:"varint,8,opt,name=user"` @@ -2342,7 +2342,7 @@ type ProjectedVolumeSource struct { DefaultMode *int32 `json:"defaultMode,omitempty" protobuf:"varint,2,opt,name=defaultMode"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 `json:"defaultUser,omitempty" protobuf:"varint,3,opt,name=defaultUser"` @@ -2448,7 +2448,7 @@ type KeyToPath struct { Mode *int32 `json:"mode,omitempty" protobuf:"varint,3,opt,name=mode"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 `json:"user,omitempty" protobuf:"varint,4,opt,name=user"` @@ -8818,7 +8818,7 @@ type DownwardAPIVolumeSource struct { DefaultMode *int32 `json:"defaultMode,omitempty" protobuf:"varint,2,opt,name=defaultMode"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional DefaultUser *int64 `json:"defaultUser,omitempty" protobuf:"varint,3,opt,name=defaultUser"` @@ -8850,7 +8850,7 @@ type DownwardAPIVolumeFile struct { Mode *int32 `json:"mode,omitempty" protobuf:"varint,4,opt,name=mode"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. // +featureGate=AtomicWriteVolumeUserFields // +optional User *int64 `json:"user,omitempty" protobuf:"varint,5,opt,name=user"` diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index 3d3f44c429f..13289b163e8 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -235,7 +235,7 @@ var map_ClusterTrustBundleProjection = map[string]string{ "labelSelector": "labelSelector selects all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\".", "optional": "optional indicates that if true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", "path": "path is the relative path from the volume root to write the bundle.", - "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (ClusterTrustBundleProjection) SwaggerDoc() map[string]string { @@ -343,7 +343,7 @@ var map_ConfigMapVolumeSource = map[string]string{ "items": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", "defaultMode": "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", "optional": "optional specify whether the ConfigMap or its keys must be defined", - "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (ConfigMapVolumeSource) SwaggerDoc() map[string]string { @@ -548,7 +548,7 @@ var map_DownwardAPIVolumeFile = map[string]string{ "fieldRef": "fieldRef selects a field of the pod: only annotations, labels, name, namespace and uid are supported. Required.", "resourceFieldRef": "resourceFieldRef selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", "mode": "mode is optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (DownwardAPIVolumeFile) SwaggerDoc() map[string]string { @@ -559,7 +559,7 @@ var map_DownwardAPIVolumeSource = map[string]string{ "": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", "items": "items is a list of downward API volume file", "defaultMode": "defaultMode is mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (DownwardAPIVolumeSource) SwaggerDoc() map[string]string { @@ -1023,7 +1023,7 @@ var map_KeyToPath = map[string]string{ "key": "key is the key to project.", "path": "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", "mode": "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (KeyToPath) SwaggerDoc() map[string]string { @@ -1754,7 +1754,7 @@ var map_PodCertificateProjection = map[string]string{ "keyPath": "keyPath is the path to write the key at in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.", "certificateChainPath": "certificateChainPath is the path to write the certificate chain at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.", "userAnnotations": "userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way.\n\nThese values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates.\n\nEntries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field.\n\nSigners should document the keys and values they support. Signers should deny requests that contain keys they do not recognize.", - "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (PodCertificateProjection) SwaggerDoc() map[string]string { @@ -2168,7 +2168,7 @@ var map_ProjectedVolumeSource = map[string]string{ "": "Represents a projected volume source", "sources": "sources is the list of volume projections. Each entry in this list handles one source.", "defaultMode": "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (ProjectedVolumeSource) SwaggerDoc() map[string]string { @@ -2534,7 +2534,7 @@ var map_SecretVolumeSource = map[string]string{ "items": "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", "defaultMode": "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", "optional": "optional field specify whether the Secret or its keys must be defined", - "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "defaultUser": "defaultUser is Optional: The owner UID of the created files by default. The defaultUser field is only used as a fallback when the item-level user field is unset. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (SecretVolumeSource) SwaggerDoc() map[string]string { @@ -2628,7 +2628,7 @@ var map_ServiceAccountTokenProjection = map[string]string{ "audience": "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", "expirationSeconds": "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", "path": "path is the path relative to the mount point of the file to project the token into.", - "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", + "user": "user is Optional: The owner UID of the created file. If specified, the item-level user field takes precedence over defaultUser. (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled.", } func (ServiceAccountTokenProjection) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go index 12e95c97b4b..e0a5de4f661 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go @@ -51,7 +51,7 @@ type ClusterTrustBundleProjectionApplyConfiguration struct { Path *string `json:"path,omitempty"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. User *int64 `json:"user,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go index 158857b8b2a..650f4cbb8bc 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go @@ -49,7 +49,7 @@ type ConfigMapVolumeSourceApplyConfiguration struct { Optional *bool `json:"optional,omitempty"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. DefaultUser *int64 `json:"defaultUser,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go index 327983243a2..20402274be2 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go @@ -39,7 +39,7 @@ type DownwardAPIVolumeFileApplyConfiguration struct { Mode *int32 `json:"mode,omitempty"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. User *int64 `json:"user,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go index 80131505a13..82a2d0cfd62 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go @@ -37,7 +37,7 @@ type DownwardAPIVolumeSourceApplyConfiguration struct { DefaultMode *int32 `json:"defaultMode,omitempty"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. DefaultUser *int64 `json:"defaultUser,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go index 317554c74e9..88ecf7c9d29 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go @@ -39,7 +39,7 @@ type KeyToPathApplyConfiguration struct { Mode *int32 `json:"mode,omitempty"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. User *int64 `json:"user,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/podcertificateprojection.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/podcertificateprojection.go index d5cd66c4a09..ca6364d1797 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/podcertificateprojection.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/podcertificateprojection.go @@ -93,7 +93,7 @@ type PodCertificateProjectionApplyConfiguration struct { UserAnnotations map[string]string `json:"userAnnotations,omitempty"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. User *int64 `json:"user,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go index c00e9ca6c48..1930fde5191 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go @@ -35,7 +35,7 @@ type ProjectedVolumeSourceApplyConfiguration struct { DefaultMode *int32 `json:"defaultMode,omitempty"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. DefaultUser *int64 `json:"defaultUser,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go index a4c37ae01e2..b57c3eb3756 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go @@ -50,7 +50,7 @@ type SecretVolumeSourceApplyConfiguration struct { Optional *bool `json:"optional,omitempty"` // defaultUser is Optional: The owner UID of the created files by default. // The defaultUser field is only used as a fallback when the item-level user field is unset. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. DefaultUser *int64 `json:"defaultUser,omitempty"` } diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go index 93b13a2897b..d44ce854aee 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go @@ -43,7 +43,7 @@ type ServiceAccountTokenProjectionApplyConfiguration struct { Path *string `json:"path,omitempty"` // user is Optional: The owner UID of the created file. // If specified, the item-level user field takes precedence over defaultUser. - // (Alpha) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. + // (Beta) This field requires the AtomicWriteVolumeUserFields feature gate to be enabled. User *int64 `json:"user,omitempty"` } diff --git a/test/compatibility_lifecycle/reference/feature_list.md b/test/compatibility_lifecycle/reference/feature_list.md index 594c6a0d6ea..faa24815805 100644 --- a/test/compatibility_lifecycle/reference/feature_list.md +++ b/test/compatibility_lifecycle/reference/feature_list.md @@ -16,7 +16,7 @@ | AllowServiceExternalIPs | :ballot_box_with_check: 1.0+ | | | | 1.0– | | | [code](https://cs.k8s.io/?q=%5CbAllowServiceExternalIPs%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAllowServiceExternalIPs%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | AllowUnsafeMalformedObjectDeletion | :ballot_box_with_check: 1.37+ | | 1.32–1.36 | 1.37– | | | | [code](https://cs.k8s.io/?q=%5CbAllowUnsafeMalformedObjectDeletion%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAllowUnsafeMalformedObjectDeletion%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | AtomicFIFO | :ballot_box_with_check: 1.36+ | | | 1.36– | | | | [code](https://cs.k8s.io/?q=%5CbAtomicFIFO%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAtomicFIFO%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | -| AtomicWriteVolumeUserFields | | | 1.37– | | | | | [code](https://cs.k8s.io/?q=%5CbAtomicWriteVolumeUserFields%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAtomicWriteVolumeUserFields%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | +| AtomicWriteVolumeUserFields | :ballot_box_with_check: 1.38+ | | 1.37 | 1.38– | | | | [code](https://cs.k8s.io/?q=%5CbAtomicWriteVolumeUserFields%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAtomicWriteVolumeUserFields%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | AuthorizePodWebsocketUpgradeCreatePermission | :ballot_box_with_check: 1.35+ | :closed_lock_with_key: 1.38+ | | 1.35–1.37 | 1.38– | | | [code](https://cs.k8s.io/?q=%5CbAuthorizePodWebsocketUpgradeCreatePermission%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbAuthorizePodWebsocketUpgradeCreatePermission%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | CBORServingAndStorage | | | 1.32– | | | | | [code](https://cs.k8s.io/?q=%5CbCBORServingAndStorage%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbCBORServingAndStorage%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | CPUManagerPolicyAlphaOptions | | | 1.23– | | | | | [code](https://cs.k8s.io/?q=%5CbCPUManagerPolicyAlphaOptions%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbCPUManagerPolicyAlphaOptions%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | diff --git a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml index ac265847d74..d7e0a845ad7 100644 --- a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml +++ b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml @@ -87,6 +87,10 @@ lockToDefault: false preRelease: Alpha version: "1.37" + - default: true + lockToDefault: false + preRelease: Beta + version: "1.38" - name: AuthorizePodWebsocketUpgradeCreatePermission versionedSpecs: - default: true