k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/test/e2e/feature/feature.go (about) 1 /* 2 Copyright 2023 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 // Package feature contains pre-defined features used by test/e2e and/or 18 // test/e2e_node. 19 package feature 20 21 import ( 22 "k8s.io/kubernetes/test/e2e/framework" 23 ) 24 25 var ( 26 // Please keep the list in alphabetical order. 27 28 // TODO: document the feature (owning SIG, when to use this feature for a test) 29 APIServerIdentity = framework.WithFeature(framework.ValidFeatures.Add("APIServerIdentity")) 30 31 // TODO: document the feature (owning SIG, when to use this feature for a test) 32 AppArmor = framework.WithFeature(framework.ValidFeatures.Add("AppArmor")) 33 34 // TODO: document the feature (owning SIG, when to use this feature for a test) 35 BootstrapTokens = framework.WithFeature(framework.ValidFeatures.Add("BootstrapTokens")) 36 37 // TODO: document the feature (owning SIG, when to use this feature for a test) 38 BoundServiceAccountTokenVolume = framework.WithFeature(framework.ValidFeatures.Add("BoundServiceAccountTokenVolume")) 39 40 // TODO: document the feature (owning SIG, when to use this feature for a test) 41 CloudProvider = framework.WithFeature(framework.ValidFeatures.Add("CloudProvider")) 42 43 // TODO: document the feature (owning SIG, when to use this feature for a test) 44 ClusterAutoscalerScalability1 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability1")) 45 46 // TODO: document the feature (owning SIG, when to use this feature for a test) 47 ClusterAutoscalerScalability2 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability2")) 48 49 // TODO: document the feature (owning SIG, when to use this feature for a test) 50 ClusterAutoscalerScalability3 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability3")) 51 52 // TODO: document the feature (owning SIG, when to use this feature for a test) 53 ClusterAutoscalerScalability4 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability4")) 54 55 // TODO: document the feature (owning SIG, when to use this feature for a test) 56 ClusterAutoscalerScalability5 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability5")) 57 58 // TODO: document the feature (owning SIG, when to use this feature for a test) 59 ClusterAutoscalerScalability6 = framework.WithFeature(framework.ValidFeatures.Add("ClusterAutoscalerScalability6")) 60 61 // TODO: document the feature (owning SIG, when to use this feature for a test) 62 ClusterDowngrade = framework.WithFeature(framework.ValidFeatures.Add("ClusterDowngrade")) 63 64 // TODO: document the feature (owning SIG, when to use this feature for a test) 65 ClusterScaleUpBypassScheduler = framework.WithFeature(framework.ValidFeatures.Add("ClusterScaleUpBypassScheduler")) 66 67 // TODO: document the feature (owning SIG, when to use this feature for a test) 68 ClusterSizeAutoscalingGpu = framework.WithFeature(framework.ValidFeatures.Add("ClusterSizeAutoscalingGpu")) 69 70 // TODO: document the feature (owning SIG, when to use this feature for a test) 71 ClusterSizeAutoscalingScaleDown = framework.WithFeature(framework.ValidFeatures.Add("ClusterSizeAutoscalingScaleDown")) 72 73 // TODO: document the feature (owning SIG, when to use this feature for a test) 74 ClusterSizeAutoscalingScaleUp = framework.WithFeature(framework.ValidFeatures.Add("ClusterSizeAutoscalingScaleUp")) 75 76 // TODO: document the feature (owning SIG, when to use this feature for a test) 77 ClusterTrustBundle = framework.WithFeature(framework.ValidFeatures.Add("ClusterTrustBundle")) 78 79 // TODO: document the feature (owning SIG, when to use this feature for a test) 80 ClusterTrustBundleProjection = framework.WithFeature(framework.ValidFeatures.Add("ClusterTrustBundleProjection")) 81 82 // TODO: document the feature (owning SIG, when to use this feature for a test) 83 ClusterUpgrade = framework.WithFeature(framework.ValidFeatures.Add("ClusterUpgrade")) 84 85 // TODO: document the feature (owning SIG, when to use this feature for a test) 86 ComprehensiveNamespaceDraining = framework.WithFeature(framework.ValidFeatures.Add("ComprehensiveNamespaceDraining")) 87 88 // TODO: document the feature (owning SIG, when to use this feature for a test) 89 CPUManager = framework.WithFeature(framework.ValidFeatures.Add("CPUManager")) 90 91 // TODO: document the feature (owning SIG, when to use this feature for a test) 92 CustomMetricsAutoscaling = framework.WithFeature(framework.ValidFeatures.Add("CustomMetricsAutoscaling")) 93 94 // TODO: document the feature (owning SIG, when to use this feature for a test) 95 DeviceManager = framework.WithFeature(framework.ValidFeatures.Add("DeviceManager")) 96 97 // TODO: document the feature (owning SIG, when to use this feature for a test) 98 DevicePluginProbe = framework.WithFeature(framework.ValidFeatures.Add("DevicePluginProbe")) 99 100 // TODO: document the feature (owning SIG, when to use this feature for a test) 101 Downgrade = framework.WithFeature(framework.ValidFeatures.Add("Downgrade")) 102 103 // TODO: document the feature (owning SIG, when to use this feature for a test) 104 DynamicResourceAllocation = framework.WithFeature(framework.ValidFeatures.Add("DynamicResourceAllocation")) 105 106 // TODO: document the feature (owning SIG, when to use this feature for a test) 107 EphemeralStorage = framework.WithFeature(framework.ValidFeatures.Add("EphemeralStorage")) 108 109 // TODO: document the feature (owning SIG, when to use this feature for a test) 110 Example = framework.WithFeature(framework.ValidFeatures.Add("Example")) 111 112 // TODO: document the feature (owning SIG, when to use this feature for a test) 113 ExperimentalResourceUsageTracking = framework.WithFeature(framework.ValidFeatures.Add("ExperimentalResourceUsageTracking")) 114 115 // TODO: document the feature (owning SIG, when to use this feature for a test) 116 Flexvolumes = framework.WithFeature(framework.ValidFeatures.Add("Flexvolumes")) 117 118 // TODO: document the feature (owning SIG, when to use this feature for a test) 119 GKENodePool = framework.WithFeature(framework.ValidFeatures.Add("GKENodePool")) 120 121 // TODO: document the feature (owning SIG, when to use this feature for a test) 122 GPUClusterDowngrade = framework.WithFeature(framework.ValidFeatures.Add("GPUClusterDowngrade")) 123 124 // TODO: document the feature (owning SIG, when to use this feature for a test) 125 GPUClusterUpgrade = framework.WithFeature(framework.ValidFeatures.Add("GPUClusterUpgrade")) 126 127 // TODO: document the feature (owning SIG, when to use this feature for a test) 128 GPUDevicePlugin = framework.WithFeature(framework.ValidFeatures.Add("GPUDevicePlugin")) 129 130 // TODO: document the feature (owning SIG, when to use this feature for a test) 131 GPUMasterUpgrade = framework.WithFeature(framework.ValidFeatures.Add("GPUMasterUpgrade")) 132 133 // TODO: document the feature (owning SIG, when to use this feature for a test) 134 GPUUpgrade = framework.WithFeature(framework.ValidFeatures.Add("GPUUpgrade")) 135 136 // TODO: document the feature (owning SIG, when to use this feature for a test) 137 HAMaster = framework.WithFeature(framework.ValidFeatures.Add("HAMaster")) 138 139 // TODO: document the feature (owning SIG, when to use this feature for a test) 140 HPA = framework.WithFeature(framework.ValidFeatures.Add("HPA")) 141 142 // owning-sig: sig-storage 143 // kep: https://kep.k8s.io/2680 144 // test-infra jobs: 145 // - pull-kubernetes-e2e-storage-kind-alpha-features (need manual trigger) 146 // - ci-kubernetes-e2e-storage-kind-alpha-features 147 // 148 // When this label is added to a test, it means that the cluster must be created 149 // with the feature-gate "HonorPVReclaimPolicy=true". 150 // 151 // Once the feature are stable, this label should be removed and these tests will 152 // be run by default on any cluster. The test-infra job also should be updated to 153 // not focus on this feature anymore. 154 HonorPVReclaimPolicy = framework.WithFeature(framework.ValidFeatures.Add("HonorPVReclaimPolicy")) 155 156 // TODO: document the feature (owning SIG, when to use this feature for a test) 157 HugePages = framework.WithFeature(framework.ValidFeatures.Add("HugePages")) 158 159 // Owner: sig-network 160 // Marks tests that require a conforming implementation of 161 // Ingress.networking.k8s.io to be present. 162 Ingress = framework.WithFeature(framework.ValidFeatures.Add("Ingress")) 163 164 // TODO: document the feature (owning SIG, when to use this feature for a test) 165 InPlacePodVerticalScaling = framework.WithFeature(framework.ValidFeatures.Add("InPlacePodVerticalScaling")) 166 167 // Owner: sig-network 168 // Marks tests that require a cluster with dual-stack pod and service networks. 169 IPv6DualStack = framework.WithFeature(framework.ValidFeatures.Add("IPv6DualStack")) 170 171 // TODO: document the feature (owning SIG, when to use this feature for a test) 172 Kind = framework.WithFeature(framework.ValidFeatures.Add("Kind")) 173 174 // TODO: document the feature (owning SIG, when to use this feature for a test) 175 KubeletCredentialProviders = framework.WithFeature(framework.ValidFeatures.Add("KubeletCredentialProviders")) 176 177 // TODO: document the feature (owning SIG, when to use this feature for a test) 178 KubeletSecurity = framework.WithFeature(framework.ValidFeatures.Add("KubeletSecurity")) 179 180 // TODO: document the feature (owning SIG, when to use this feature for a test) 181 KubeProxyDaemonSetDowngrade = framework.WithFeature(framework.ValidFeatures.Add("KubeProxyDaemonSetDowngrade")) 182 183 // TODO: document the feature (owning SIG, when to use this feature for a test) 184 KubeProxyDaemonSetUpgrade = framework.WithFeature(framework.ValidFeatures.Add("KubeProxyDaemonSetUpgrade")) 185 186 // TODO: document the feature (owning SIG, when to use this feature for a test) 187 KubeProxyDaemonSetMigration = framework.WithFeature(framework.ValidFeatures.Add("KubeProxyDaemonSetMigration")) 188 189 // TODO: document the feature (owning SIG, when to use this feature for a test) 190 LabelSelector = framework.WithFeature(framework.ValidFeatures.Add("LabelSelector")) 191 192 // Owner: sig-network 193 // Marks tests that require a cloud provider that implements LoadBalancer Services 194 LoadBalancer = framework.WithFeature(framework.ValidFeatures.Add("LoadBalancer")) 195 196 // TODO: document the feature (owning SIG, when to use this feature for a test) 197 LocalStorageCapacityIsolation = framework.WithFeature(framework.ValidFeatures.Add("LocalStorageCapacityIsolation")) 198 199 // TODO: document the feature (owning SIG, when to use this feature for a test) 200 LocalStorageCapacityIsolationQuota = framework.WithFeature(framework.ValidFeatures.Add("LocalStorageCapacityIsolationQuota")) 201 202 // TODO: document the feature (owning SIG, when to use this feature for a test) 203 MasterUpgrade = framework.WithFeature(framework.ValidFeatures.Add("MasterUpgrade")) 204 205 // TODO: document the feature (owning SIG, when to use this feature for a test) 206 MemoryManager = framework.WithFeature(framework.ValidFeatures.Add("MemoryManager")) 207 208 // Owner: sig-network 209 // Marks tests that require working external DNS. 210 NetworkingDNS = framework.WithFeature(framework.ValidFeatures.Add("Networking-DNS")) 211 212 // Owner: sig-network 213 // Marks tests that require connectivity to the Internet via IPv4 214 NetworkingIPv4 = framework.WithFeature(framework.ValidFeatures.Add("Networking-IPv4")) 215 216 // Owner: sig-network 217 // Marks tests that require connectivity to the Internet via IPv6 218 NetworkingIPv6 = framework.WithFeature(framework.ValidFeatures.Add("Networking-IPv6")) 219 220 // Owner: sig-network 221 // Marks a single test that creates potentially-disruptive amounts of network 222 // traffic between nodes. 223 NetworkingPerformance = framework.WithFeature(framework.ValidFeatures.Add("Networking-Performance")) 224 225 // Owner: sig-network 226 // Marks tests that require a conforming implementation of 227 // NetworkPolicy.networking.k8s.io to be present. 228 NetworkPolicy = framework.WithFeature(framework.ValidFeatures.Add("NetworkPolicy")) 229 230 // TODO: document the feature (owning SIG, when to use this feature for a test) 231 NodeAuthenticator = framework.WithFeature(framework.ValidFeatures.Add("NodeAuthenticator")) 232 233 // TODO: document the feature (owning SIG, when to use this feature for a test) 234 NodeAuthorizer = framework.WithFeature(framework.ValidFeatures.Add("NodeAuthorizer")) 235 236 // TODO: document the feature (owning SIG, when to use this feature for a test) 237 NodeLogQuery = framework.WithFeature(framework.ValidFeatures.Add("NodeLogQuery")) 238 239 // TODO: document the feature (owning SIG, when to use this feature for a test) 240 NodeOutOfServiceVolumeDetach = framework.WithFeature(framework.ValidFeatures.Add("NodeOutOfServiceVolumeDetach")) 241 242 // Owner: sig-network 243 // Marks a single test that tests pod-to-pod connectivity between every pair of nodes. 244 NoSNAT = framework.WithFeature(framework.ValidFeatures.Add("NoSNAT")) 245 246 // TODO: document the feature (owning SIG, when to use this feature for a test) 247 PersistentVolumeLastPhaseTransitionTime = framework.WithFeature(framework.ValidFeatures.Add("PersistentVolumeLastPhaseTransitionTime")) 248 249 // Owner: sig-network 250 // Marks a single test that tests cluster DNS performance with many services. 251 PerformanceDNS = framework.WithFeature(framework.ValidFeatures.Add("PerformanceDNS")) 252 253 // TODO: document the feature (owning SIG, when to use this feature for a test) 254 PodGarbageCollector = framework.WithFeature(framework.ValidFeatures.Add("PodGarbageCollector")) 255 256 // TODO: document the feature (owning SIG, when to use this feature for a test) 257 PodLifecycleSleepAction = framework.WithFeature(framework.ValidFeatures.Add("PodLifecycleSleepAction")) 258 259 // TODO: document the feature (owning SIG, when to use this feature for a test) 260 PodPriority = framework.WithFeature(framework.ValidFeatures.Add("PodPriority")) 261 262 // TODO: document the feature (owning SIG, when to use this feature for a test) 263 PodReadyToStartContainersCondition = framework.WithFeature(framework.ValidFeatures.Add("PodReadyToStartContainersCondition")) 264 265 // TODO: document the feature (owning SIG, when to use this feature for a test) 266 PodResources = framework.WithFeature(framework.ValidFeatures.Add("PodResources")) 267 268 // TODO: document the feature (owning SIG, when to use this feature for a test) 269 Reboot = framework.WithFeature(framework.ValidFeatures.Add("Reboot")) 270 271 // TODO: document the feature (owning SIG, when to use this feature for a test) 272 ReclaimPolicy = framework.WithFeature(framework.ValidFeatures.Add("ReclaimPolicy")) 273 274 // TODO: document the feature (owning SIG, when to use this feature for a test) 275 RecoverVolumeExpansionFailure = framework.WithFeature(framework.ValidFeatures.Add("RecoverVolumeExpansionFailure")) 276 277 // RelaxedEnvironmentVariableValidation used when we verify whether the pod can consume all printable ASCII characters as environment variable names, 278 // and whether the pod can consume configmap/secret that key starts with a number. 279 RelaxedEnvironmentVariableValidation = framework.WithFeature(framework.ValidFeatures.Add("RelaxedEnvironmentVariableValidation")) 280 281 // TODO: document the feature (owning SIG, when to use this feature for a test) 282 Recreate = framework.WithFeature(framework.ValidFeatures.Add("Recreate")) 283 284 // TODO: document the feature (owning SIG, when to use this feature for a test) 285 RegularResourceUsageTracking = framework.WithFeature(framework.ValidFeatures.Add("RegularResourceUsageTracking")) 286 287 // Owner: sig-network 288 // Marks tests that require a pod networking implementation that supports SCTP 289 // traffic between pods. 290 SCTPConnectivity = framework.WithFeature(framework.ValidFeatures.Add("SCTPConnectivity")) 291 292 // TODO: document the feature (owning SIG, when to use this feature for a test) 293 SeccompDefault = framework.WithFeature(framework.ValidFeatures.Add("SeccompDefault")) 294 295 // Owner: sig-storage 296 // This feature marks tests that need all schedulable Linux nodes in the cluster to have SELinux enabled. 297 SELinux = framework.WithFeature(framework.ValidFeatures.Add("SELinux")) 298 299 // Owner: sig-storage 300 // This feature marks tests that need SELinuxMountReadWriteOncePod feature gate enabled and SELinuxMount **disabled**. 301 // This is a temporary feature to allow testing of metrics when SELinuxMount is disabled. 302 // TODO: remove when SELinuxMount feature gate is enabled by default. 303 SELinuxMountReadWriteOncePodOnly = framework.WithFeature(framework.ValidFeatures.Add("SELinuxMountReadWriteOncePodOnly")) 304 305 // Owner: sig-network 306 // Marks tests of KEP-1880 that require the `MultiCIDRServiceAllocator` feature gate 307 // and the networking.k8s.io/v1alpha1 API. 308 ServiceCIDRs = framework.WithFeature(framework.ValidFeatures.Add("ServiceCIDRs")) 309 310 // TODO: document the feature (owning SIG, when to use this feature for a test) 311 SidecarContainers = framework.WithFeature(framework.ValidFeatures.Add("SidecarContainers")) 312 313 // TODO: document the feature (owning SIG, when to use this feature for a test) 314 StackdriverAcceleratorMonitoring = framework.WithFeature(framework.ValidFeatures.Add("StackdriverAcceleratorMonitoring")) 315 316 // TODO: document the feature (owning SIG, when to use this feature for a test) 317 StackdriverCustomMetrics = framework.WithFeature(framework.ValidFeatures.Add("StackdriverCustomMetrics")) 318 319 // TODO: document the feature (owning SIG, when to use this feature for a test) 320 StackdriverExternalMetrics = framework.WithFeature(framework.ValidFeatures.Add("StackdriverExternalMetrics")) 321 322 // TODO: document the feature (owning SIG, when to use this feature for a test) 323 StackdriverMetadataAgent = framework.WithFeature(framework.ValidFeatures.Add("StackdriverMetadataAgent")) 324 325 // TODO: document the feature (owning SIG, when to use this feature for a test) 326 StackdriverMonitoring = framework.WithFeature(framework.ValidFeatures.Add("StackdriverMonitoring")) 327 328 // TODO: document the feature (owning SIG, when to use this feature for a test) 329 StandaloneMode = framework.WithFeature(framework.ValidFeatures.Add("StandaloneMode")) 330 331 // TODO: document the feature (owning SIG, when to use this feature for a test) 332 StatefulSet = framework.WithFeature(framework.ValidFeatures.Add("StatefulSet")) 333 334 // TODO: document the feature (owning SIG, when to use this feature for a test) 335 StatefulSetStartOrdinal = framework.WithFeature(framework.ValidFeatures.Add("StatefulSetStartOrdinal")) 336 337 // TODO: document the feature (owning SIG, when to use this feature for a test) 338 StatefulUpgrade = framework.WithFeature(framework.ValidFeatures.Add("StatefulUpgrade")) 339 340 // TODO: document the feature (owning SIG, when to use this feature for a test) 341 StorageProvider = framework.WithFeature(framework.ValidFeatures.Add("StorageProvider")) 342 343 // TODO: document the feature (owning SIG, when to use this feature for a test) 344 StorageVersionAPI = framework.WithFeature(framework.ValidFeatures.Add("StorageVersionAPI")) 345 346 // Owner: sig-network 347 // Marks tests that require a cluster with Topology Hints enabled. 348 TopologyHints = framework.WithFeature(framework.ValidFeatures.Add("Topology Hints")) 349 350 // Owner: sig-network 351 // Marks tests that require a cluster with Traffic Distribution enabled. 352 TrafficDistribution = framework.WithFeature(framework.ValidFeatures.Add("Traffic Distribution")) 353 354 // TODO: document the feature (owning SIG, when to use this feature for a test) 355 TopologyManager = framework.WithFeature(framework.ValidFeatures.Add("TopologyManager")) 356 357 // TODO: document the feature (owning SIG, when to use this feature for a test) 358 Upgrade = framework.WithFeature(framework.ValidFeatures.Add("Upgrade")) 359 360 // TODO: document the feature (owning SIG, when to use this feature for a test) 361 UserNamespacesSupport = framework.WithFeature(framework.ValidFeatures.Add("UserNamespacesSupport")) 362 363 // Owned by SIG Node 364 // Can be used when the UserNamespacesPodSecurityStandards kubelet feature 365 // gate is enabled to relax the application of Pod Security Standards in a 366 // controlled way. 367 UserNamespacesPodSecurityStandards = framework.WithFeature(framework.ValidFeatures.Add("UserNamespacesPodSecurityStandards")) 368 369 // TODO: document the feature (owning SIG, when to use this feature for a test) 370 ValidatingAdmissionPolicy = framework.WithFeature(framework.ValidFeatures.Add("ValidatingAdmissionPolicy")) 371 372 // TODO: document the feature (owning SIG, when to use this feature for a test) 373 Volumes = framework.WithFeature(framework.ValidFeatures.Add("Volumes")) 374 375 // TODO: document the feature (owning SIG, when to use this feature for a test) 376 VolumeSnapshotDataSource = framework.WithFeature(framework.ValidFeatures.Add("VolumeSnapshotDataSource")) 377 378 // TODO: document the feature (owning SIG, when to use this feature for a test) 379 VolumeSourceXFS = framework.WithFeature(framework.ValidFeatures.Add("VolumeSourceXFS")) 380 381 // TODO: document the feature (owning SIG, when to use this feature for a test) 382 Vsphere = framework.WithFeature(framework.ValidFeatures.Add("vsphere")) 383 384 // TODO: document the feature (owning SIG, when to use this feature for a test) 385 WatchList = framework.WithFeature(framework.ValidFeatures.Add("WatchList")) 386 387 // TODO: document the feature (owning SIG, when to use this feature for a test) 388 Windows = framework.WithFeature(framework.ValidFeatures.Add("Windows")) 389 390 // TODO: document the feature (owning SIG, when to use this feature for a test) 391 WindowsHostProcessContainers = framework.WithFeature(framework.ValidFeatures.Add("WindowsHostProcessContainers")) 392 393 // TODO: document the feature (owning SIG, when to use this feature for a test) 394 WindowsHyperVContainers = framework.WithFeature(framework.ValidFeatures.Add("WindowsHyperVContainers")) 395 396 // Please keep the list in alphabetical order. 397 ) 398 399 func init() { 400 // This prevents adding additional ad-hoc features in tests. 401 framework.ValidFeatures.Freeze() 402 }