Skip to content

Commit 8119e57

Browse files
authored
Merge pull request kubernetes#126791 from Jefftree/feature-gate-port
chore: port all non deprecated, non apiserver/controller-manager referenced features to versioned
2 parents 48d6d55 + e1893bf commit 8119e57

File tree

4 files changed

+1426
-884
lines changed

4 files changed

+1426
-884
lines changed

pkg/features/kube_features.go

Lines changed: 20 additions & 227 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,13 @@ const (
7878
AuthorizeNodeWithSelectors featuregate.Feature = "AuthorizeNodeWithSelectors"
7979

8080
// owner: @ahmedtd
81-
// alpha: v1.26
81+
// alpha: v1.27
8282
//
8383
// Enable ClusterTrustBundle objects and Kubelet integration.
8484
ClusterTrustBundle featuregate.Feature = "ClusterTrustBundle"
8585

8686
// owner: @ahmedtd
87-
// alpha: v1.28
87+
// alpha: v1.29
8888
//
8989
// Enable ClusterTrustBundle Kubelet projected volumes. Depends on ClusterTrustBundle.
9090
ClusterTrustBundleProjection featuregate.Feature = "ClusterTrustBundleProjection"
@@ -328,7 +328,7 @@ const (
328328
// kep: https://kep.k8s.io/3329
329329
// alpha: v1.25
330330
// beta: v1.26
331-
// stable: v1.31
331+
// GA: v1.31
332332
//
333333
// Allow users to specify handling of pod failures based on container exit codes
334334
// and pod conditions.
@@ -406,7 +406,7 @@ const (
406406
// kep: http://kep.k8s.io/3836
407407
// alpha: v1.28
408408
// beta: v1.30
409-
// stable: v1.31
409+
// GA: v1.31
410410
//
411411
// Implement connection draining for terminating nodes for
412412
// `externalTrafficPolicy: Cluster` services.
@@ -432,7 +432,7 @@ const (
432432
// owner: @sanposhiho
433433
// kep: https://kep.k8s.io/3633
434434
// alpha: v1.29
435-
// beta: v1.30
435+
// beta: v1.31
436436
//
437437
// Enables the MatchLabelKeys and MismatchLabelKeys in PodAffinity and PodAntiAffinity.
438438
MatchLabelKeysInPodAffinity featuregate.Feature = "MatchLabelKeysInPodAffinity"
@@ -560,7 +560,7 @@ const (
560560
// kep: https://kep.k8s.io/3329
561561
// alpha: v1.25
562562
// beta: v1.26
563-
// stable: v1.31
563+
// GA: v1.31
564564
//
565565
// Enables support for appending a dedicated pod condition indicating that
566566
// the pod is being deleted due to a disruption.
@@ -574,7 +574,7 @@ const (
574574
PodIndexLabel featuregate.Feature = "PodIndexLabel"
575575

576576
// owner: @ddebroy, @kannon92
577-
// alpha: v1.25
577+
// alpha: v1.28
578578
// beta: v1.29
579579
//
580580
// Enables reporting of PodReadyToStartContainersCondition condition in pod status after pod
@@ -602,7 +602,7 @@ const (
602602
// kep: https://kep.k8s.io/3521
603603
// alpha: v1.26
604604
// beta: v1.27
605-
// stable: v1.30
605+
// GA: v1.30
606606
//
607607
// Enable users to specify when a Pod is ready for scheduling.
608608
PodSchedulingReadiness featuregate.Feature = "PodSchedulingReadiness"
@@ -677,6 +677,7 @@ const (
677677
// owner: @danielvegamyhre
678678
// kep: https://kep.k8s.io/2413
679679
// beta: v1.27
680+
// GA: v1.31
680681
//
681682
// Allows mutating spec.completions for Indexed job when done in tandem with
682683
// spec.parallelism. Specifically, spec.completions is mutable iff spec.completions
@@ -758,7 +759,7 @@ const (
758759
SizeMemoryBackedVolumes featuregate.Feature = "SizeMemoryBackedVolumes"
759760

760761
// owner: @mattcary
761-
// alpha: v1.22
762+
// alpha: v1.23
762763
// beta: v1.27
763764
//
764765
// Enables policies controlling deletion of PVCs created by a StatefulSet.
@@ -767,7 +768,7 @@ const (
767768
// owner: @psch
768769
// alpha: v1.26
769770
// beta: v1.27
770-
// stable: v1.31
771+
// GA: v1.31
771772
//
772773
// Enables a StatefulSet to start from an arbitrary non zero ordinal
773774
StatefulSetStartOrdinal featuregate.Feature = "StatefulSetStartOrdinal"
@@ -911,7 +912,7 @@ const (
911912
ImageMaximumGCAge featuregate.Feature = "ImageMaximumGCAge"
912913

913914
// owner: @saschagrunert
914-
// alpha: v1.28
915+
// alpha: v1.29
915916
//
916917
// Enables user namespace support for Pod Security Standards. Enabling this
917918
// feature will modify all Pod Security Standard rules to allow setting:
@@ -979,226 +980,10 @@ func init() {
979980
// Entries are separated from each other with blank lines to avoid sweeping gofmt changes
980981
// when adding or removing one entry.
981982
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
982-
CrossNamespaceVolumeDataSource: {Default: false, PreRelease: featuregate.Alpha},
983-
984983
AllowDNSOnlyNodeCSR: {Default: false, PreRelease: featuregate.Deprecated}, // remove after 1.33
985984

986-
AnyVolumeDataSource: {Default: true, PreRelease: featuregate.Beta}, // on by default in 1.24
987-
988-
AppArmor: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
989-
990-
AppArmorFields: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
991-
992-
AuthorizeNodeWithSelectors: {Default: false, PreRelease: featuregate.Alpha},
993-
994-
ClusterTrustBundle: {Default: false, PreRelease: featuregate.Alpha},
995-
996-
ClusterTrustBundleProjection: {Default: false, PreRelease: featuregate.Alpha},
997-
998-
CPUCFSQuotaPeriod: {Default: false, PreRelease: featuregate.Alpha},
999-
1000-
CPUManager: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.26
1001-
1002-
CPUManagerPolicyAlphaOptions: {Default: false, PreRelease: featuregate.Alpha},
1003-
1004-
CPUManagerPolicyBetaOptions: {Default: true, PreRelease: featuregate.Beta},
1005-
1006-
CPUManagerPolicyOptions: {Default: true, PreRelease: featuregate.Beta},
1007-
1008-
CSIMigrationPortworx: {Default: true, PreRelease: featuregate.Beta}, // On by default (requires Portworx CSI driver)
1009-
1010-
CSIVolumeHealth: {Default: false, PreRelease: featuregate.Alpha},
1011-
1012-
CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
1013-
1014-
ContainerCheckpoint: {Default: true, PreRelease: featuregate.Beta},
1015-
1016-
CronJobsScheduledAnnotation: {Default: true, PreRelease: featuregate.Beta},
1017-
1018-
DisableAllocatorDualWrite: {Default: false, PreRelease: featuregate.Alpha}, // remove after MultiCIDRServiceAllocator is GA
1019-
1020-
DisableCloudProviders: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
1021-
1022-
DisableKubeletCloudCredentialProviders: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
1023-
1024985
DisableNodeKubeProxyVersion: {Default: false, PreRelease: featuregate.Deprecated}, // default on in 1.33
1025986

1026-
DevicePluginCDIDevices: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
1027-
1028-
DRAControlPlaneController: {Default: false, PreRelease: featuregate.Alpha},
1029-
1030-
DynamicResourceAllocation: {Default: false, PreRelease: featuregate.Alpha},
1031-
1032-
EventedPLEG: {Default: false, PreRelease: featuregate.Alpha},
1033-
1034-
ExecProbeTimeout: {Default: true, PreRelease: featuregate.GA}, // lock to default and remove after v1.22 based on KEP #1972 update
1035-
1036-
RetryGenerateName: {Default: true, PreRelease: featuregate.Beta},
1037-
1038-
GracefulNodeShutdown: {Default: true, PreRelease: featuregate.Beta},
1039-
1040-
GracefulNodeShutdownBasedOnPodPriority: {Default: true, PreRelease: featuregate.Beta},
1041-
1042-
HPAContainerMetrics: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
1043-
1044-
HonorPVReclaimPolicy: {Default: true, PreRelease: featuregate.Beta},
1045-
1046-
ImageMaximumGCAge: {Default: true, PreRelease: featuregate.Beta},
1047-
1048-
InTreePluginPortworxUnregister: {Default: false, PreRelease: featuregate.Alpha},
1049-
1050-
JobBackoffLimitPerIndex: {Default: true, PreRelease: featuregate.Beta},
1051-
1052-
JobManagedBy: {Default: false, PreRelease: featuregate.Alpha},
1053-
1054-
JobPodFailurePolicy: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
1055-
1056-
JobPodReplacementPolicy: {Default: true, PreRelease: featuregate.Beta},
1057-
1058-
JobSuccessPolicy: {Default: true, PreRelease: featuregate.Beta},
1059-
1060-
KubeletCgroupDriverFromCRI: {Default: true, PreRelease: featuregate.Beta},
1061-
1062-
KubeletInUserNamespace: {Default: false, PreRelease: featuregate.Alpha},
1063-
1064-
KubeletPodResourcesDynamicResources: {Default: false, PreRelease: featuregate.Alpha},
1065-
1066-
KubeletPodResourcesGet: {Default: false, PreRelease: featuregate.Alpha},
1067-
1068-
KubeletSeparateDiskGC: {Default: true, PreRelease: featuregate.Beta},
1069-
1070-
KubeletTracing: {Default: true, PreRelease: featuregate.Beta},
1071-
1072-
KubeProxyDrainingTerminatingNodes: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.31; remove in 1.33
1073-
1074-
LocalStorageCapacityIsolationFSQuotaMonitoring: {Default: false, PreRelease: featuregate.Beta},
1075-
1076-
LogarithmicScaleDown: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
1077-
1078-
MatchLabelKeysInPodAffinity: {Default: true, PreRelease: featuregate.Beta},
1079-
1080-
MatchLabelKeysInPodTopologySpread: {Default: true, PreRelease: featuregate.Beta},
1081-
1082-
MaxUnavailableStatefulSet: {Default: false, PreRelease: featuregate.Alpha},
1083-
1084-
MemoryManager: {Default: true, PreRelease: featuregate.Beta},
1085-
1086-
MemoryQoS: {Default: false, PreRelease: featuregate.Alpha},
1087-
1088-
MinDomainsInPodTopologySpread: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
1089-
1090-
MultiCIDRServiceAllocator: {Default: false, PreRelease: featuregate.Beta},
1091-
1092-
NewVolumeManagerReconstruction: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
1093-
1094-
NFTablesProxyMode: {Default: true, PreRelease: featuregate.Beta},
1095-
1096-
NodeLogQuery: {Default: false, PreRelease: featuregate.Beta},
1097-
1098-
NodeOutOfServiceVolumeDetach: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.31
1099-
1100-
NodeSwap: {Default: true, PreRelease: featuregate.Beta},
1101-
1102-
PDBUnhealthyPodEvictionPolicy: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
1103-
1104-
PersistentVolumeLastPhaseTransitionTime: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
1105-
1106-
PodAndContainerStatsFromCRI: {Default: false, PreRelease: featuregate.Alpha},
1107-
1108-
PodDeletionCost: {Default: true, PreRelease: featuregate.Beta},
1109-
1110-
PodDisruptionConditions: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.33
1111-
1112-
PodReadyToStartContainersCondition: {Default: true, PreRelease: featuregate.Beta},
1113-
1114-
PodHostIPs: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
1115-
1116-
PodLifecycleSleepAction: {Default: true, PreRelease: featuregate.Beta},
1117-
1118-
PodSchedulingReadiness: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.30; remove in 1.32
1119-
1120-
PortForwardWebsockets: {Default: true, PreRelease: featuregate.Beta},
1121-
1122-
ProcMountType: {Default: false, PreRelease: featuregate.Beta},
1123-
1124-
QOSReserved: {Default: false, PreRelease: featuregate.Alpha},
1125-
1126-
RecoverVolumeExpansionFailure: {Default: false, PreRelease: featuregate.Alpha},
1127-
1128-
ReloadKubeletServerCertificateFile: {Default: true, PreRelease: featuregate.Beta},
1129-
1130-
ResourceHealthStatus: {Default: false, PreRelease: featuregate.Alpha},
1131-
1132-
RotateKubeletServerCertificate: {Default: true, PreRelease: featuregate.Beta},
1133-
1134-
RuntimeClassInImageCriAPI: {Default: false, PreRelease: featuregate.Alpha},
1135-
1136-
ElasticIndexedJob: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.31, remove in 1.32
1137-
1138-
SchedulerQueueingHints: {Default: false, PreRelease: featuregate.Beta},
1139-
1140-
SeparateTaintEvictionController: {Default: true, PreRelease: featuregate.Beta},
1141-
1142-
ServiceAccountTokenJTI: {Default: true, PreRelease: featuregate.Beta},
1143-
1144-
ServiceAccountTokenPodNodeInfo: {Default: true, PreRelease: featuregate.Beta},
1145-
1146-
ServiceAccountTokenNodeBinding: {Default: true, PreRelease: featuregate.Beta},
1147-
1148-
ServiceAccountTokenNodeBindingValidation: {Default: true, PreRelease: featuregate.Beta},
1149-
1150-
ServiceTrafficDistribution: {Default: true, PreRelease: featuregate.Beta},
1151-
1152-
SidecarContainers: {Default: true, PreRelease: featuregate.Beta},
1153-
1154-
SizeMemoryBackedVolumes: {Default: true, PreRelease: featuregate.Beta},
1155-
1156-
StatefulSetAutoDeletePVC: {Default: true, PreRelease: featuregate.Beta},
1157-
1158-
StatefulSetStartOrdinal: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.31, remove in 1.33
1159-
1160-
StorageVersionMigrator: {Default: false, PreRelease: featuregate.Alpha},
1161-
1162-
TopologyAwareHints: {Default: true, PreRelease: featuregate.Beta},
1163-
1164-
TopologyManagerPolicyAlphaOptions: {Default: false, PreRelease: featuregate.Alpha},
1165-
1166-
TopologyManagerPolicyBetaOptions: {Default: true, PreRelease: featuregate.Beta},
1167-
1168-
TopologyManagerPolicyOptions: {Default: true, PreRelease: featuregate.Beta},
1169-
1170-
TranslateStreamCloseWebsocketRequests: {Default: true, PreRelease: featuregate.Beta},
1171-
1172-
UnknownVersionInteroperabilityProxy: {Default: false, PreRelease: featuregate.Alpha},
1173-
1174-
VolumeCapacityPriority: {Default: false, PreRelease: featuregate.Alpha},
1175-
1176-
UserNamespacesSupport: {Default: false, PreRelease: featuregate.Beta},
1177-
1178-
WinDSR: {Default: false, PreRelease: featuregate.Alpha},
1179-
1180-
WinOverlay: {Default: true, PreRelease: featuregate.Beta},
1181-
1182-
WindowsHostNetwork: {Default: true, PreRelease: featuregate.Alpha},
1183-
1184-
NodeInclusionPolicyInPodTopologySpread: {Default: true, PreRelease: featuregate.Beta},
1185-
1186-
SELinuxMountReadWriteOncePod: {Default: true, PreRelease: featuregate.Beta},
1187-
1188-
InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
1189-
1190-
PodIndexLabel: {Default: true, PreRelease: featuregate.Beta},
1191-
1192-
LoadBalancerIPMode: {Default: true, PreRelease: featuregate.Beta},
1193-
1194-
UserNamespacesPodSecurityStandards: {Default: false, PreRelease: featuregate.Alpha},
1195-
1196-
SELinuxMount: {Default: false, PreRelease: featuregate.Alpha},
1197-
1198-
SupplementalGroupsPolicy: {Default: false, PreRelease: featuregate.Alpha},
1199-
1200-
ImageVolume: {Default: false, PreRelease: featuregate.Alpha},
1201-
1202987
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
1203988
// unintentionally on either side:
1204989

@@ -1269,6 +1054,14 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
12691054

12701055
apiextensionsfeatures.CustomResourceFieldSelectors: {Default: true, PreRelease: featuregate.Beta},
12711056

1057+
// features with duplicate definition in apiserver/controller-manager
1058+
1059+
CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
1060+
1061+
InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
1062+
1063+
RetryGenerateName: {Default: true, PreRelease: featuregate.Beta},
1064+
12721065
// features that enable backwards compatibility but are scheduled to be removed
12731066
// ...
12741067
HPAScaleToZero: {Default: false, PreRelease: featuregate.Alpha},

0 commit comments

Comments
 (0)