diff options
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/features')
-rw-r--r-- | vendor/k8s.io/kubernetes/pkg/features/kube_features.go | 242 |
1 files changed, 211 insertions, 31 deletions
diff --git a/vendor/k8s.io/kubernetes/pkg/features/kube_features.go b/vendor/k8s.io/kubernetes/pkg/features/kube_features.go index 7920d4bc5..c2fb4896d 100644 --- a/vendor/k8s.io/kubernetes/pkg/features/kube_features.go +++ b/vendor/k8s.io/kubernetes/pkg/features/kube_features.go @@ -17,6 +17,7 @@ limitations under the License. package features import ( + apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features" genericfeatures "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" ) @@ -28,29 +29,14 @@ const ( // // alpha: v1.X // MyFeature utilfeature.Feature = "MyFeature" - // owner: @timstclair + // owner: @tallclair // beta: v1.4 AppArmor utilfeature.Feature = "AppArmor" - // owner: @girishkalele - // alpha: v1.4 - ExternalTrafficLocalOnly utilfeature.Feature = "AllowExtTrafficLocalEndpoints" - - // owner: @saad-ali - // alpha: v1.3 - DynamicVolumeProvisioning utilfeature.Feature = "DynamicVolumeProvisioning" - // owner: @mtaufen // alpha: v1.4 DynamicKubeletConfig utilfeature.Feature = "DynamicKubeletConfig" - // owner: timstclair - // alpha: v1.5 - // - // StreamingProxyRedirects controls whether the apiserver should intercept (and follow) - // redirects from the backend (Kubelet) for streaming requests (exec/attach/port-forward). - StreamingProxyRedirects utilfeature.Feature = genericfeatures.StreamingProxyRedirects - // owner: @pweil- // alpha: v1.5 // @@ -67,21 +53,22 @@ const ( // Note: This feature is not supported for `BestEffort` pods. ExperimentalCriticalPodAnnotation utilfeature.Feature = "ExperimentalCriticalPodAnnotation" - // owner: @davidopp - // alpha: v1.6 - // - // Determines if affinity defined in annotations should be processed - // TODO: remove when alpha support for affinity is removed - AffinityInAnnotations utilfeature.Feature = "AffinityInAnnotations" - // owner: @vishh // alpha: v1.6 // + // This is deprecated and will be removed in v1.11. Use DevicePlugins instead. + // // Enables support for GPUs as a schedulable resource. // Only Nvidia GPUs are supported as of v1.6. // Works only with Docker Container Runtime. Accelerators utilfeature.Feature = "Accelerators" + // owner: @jiayingz + // beta: v1.10 + // + // Enables support for Device Plugins + DevicePlugins utilfeature.Feature = "DevicePlugins" + // owner: @gmarek // alpha: v1.6 // @@ -104,7 +91,7 @@ const ( // the API server as the certificate approaches expiration. RotateKubeletClientCertificate utilfeature.Feature = "RotateKubeletClientCertificate" - // owner: @msau + // owner: @msau42 // alpha: v1.7 // // A new volume type that supports local disks on a node. @@ -115,6 +102,165 @@ const ( // // New local storage types to support local storage capacity isolation LocalStorageCapacityIsolation utilfeature.Feature = "LocalStorageCapacityIsolation" + + // owner: @gnufied + // alpha: v1.8 + // Ability to Expand persistent volumes + ExpandPersistentVolumes utilfeature.Feature = "ExpandPersistentVolumes" + + // owner: @verb + // alpha: v1.10 + // + // Allows running a "debug container" in a pod namespaces to troubleshoot a running pod. + DebugContainers utilfeature.Feature = "DebugContainers" + + // owner: @verb + // alpha: v1.10 + // + // Allows all containers in a pod to share a process namespace. + PodShareProcessNamespace utilfeature.Feature = "PodShareProcessNamespace" + + // owner: @bsalamat + // alpha: v1.8 + // + // Add priority to pods. Priority affects scheduling and preemption of pods. + PodPriority utilfeature.Feature = "PodPriority" + + // owner: @resouer + // alpha: v1.8 + // + // Enable equivalence class cache for scheduler. + EnableEquivalenceClassCache utilfeature.Feature = "EnableEquivalenceClassCache" + + // owner: @k82cn + // alpha: v1.8 + // + // Taint nodes based on their condition status for 'NetworkUnavailable', + // 'MemoryPressure', 'OutOfDisk' and 'DiskPressure'. + TaintNodesByCondition utilfeature.Feature = "TaintNodesByCondition" + + // owner: @jsafrane + // beta: v1.10 + // + // Enable mount propagation of volumes. + MountPropagation utilfeature.Feature = "MountPropagation" + + // owner: @ConnorDoyle + // alpha: v1.8 + // + // Alternative container-level CPU affinity policies. + CPUManager utilfeature.Feature = "CPUManager" + + // owner: @derekwaynecarr + // beta: v1.10 + // + // Enable pods to consume pre-allocated huge pages of varying page sizes + HugePages utilfeature.Feature = "HugePages" + + // owner @brendandburns + // alpha: v1.9 + // + // Enable nodes to exclude themselves from service load balancers + ServiceNodeExclusion utilfeature.Feature = "ServiceNodeExclusion" + + // owner @brendandburns + // deprecated: v1.10 + // + // Enable the service proxy to contact external IP addresses. Note this feature is present + // only for backward compatibility, it will be removed in the 1.11 release. + ServiceProxyAllowExternalIPs utilfeature.Feature = "ServiceProxyAllowExternalIPs" + + // owner: @jsafrane + // alpha: v1.9 + // + // Enable running mount utilities in containers. + MountContainers utilfeature.Feature = "MountContainers" + + // owner: @msau42 + // alpha: v1.9 + // + // Extend the default scheduler to be aware of PV topology and handle PV binding + // Before moving to beta, resolve Kubernetes issue #56180 + VolumeScheduling utilfeature.Feature = "VolumeScheduling" + + // owner: @vladimirvivien + // alpha: v1.9 + // + // Enable mount/attachment of Container Storage Interface (CSI) backed PVs + CSIPersistentVolume utilfeature.Feature = "CSIPersistentVolume" + + // owner @MrHohn + // beta: v1.10 + // + // Support configurable pod DNS parameters. + CustomPodDNS utilfeature.Feature = "CustomPodDNS" + + // owner: @screeley44 + // alpha: v1.9 + // + // Enable Block volume support in containers. + BlockVolume utilfeature.Feature = "BlockVolume" + + // owner: @pospispa + // beta: v1.10 + // + // Postpone deletion of a PV or a PVC when they are being used + StorageObjectInUseProtection utilfeature.Feature = "StorageObjectInUseProtection" + + // owner: @aveshagarwal + // alpha: v1.9 + // + // Enable resource limits priority function + ResourceLimitsPriorityFunction utilfeature.Feature = "ResourceLimitsPriorityFunction" + + // owner: @m1093782566 + // beta: v1.9 + // + // Implement IPVS-based in-cluster service load balancing + SupportIPVSProxyMode utilfeature.Feature = "SupportIPVSProxyMode" + + // owner: @dims + // alpha: v1.10 + // + // Implement support for limiting pids in pods + SupportPodPidsLimit utilfeature.Feature = "SupportPodPidsLimit" + + // owner: @feiskyer + // alpha: v1.10 + // + // Enable Hyper-V containers on Windows + HyperVContainer utilfeature.Feature = "HyperVContainer" + + // owner: @joelsmith + // deprecated: v1.10 + // + // Mount secret, configMap, downwardAPI and projected volumes ReadOnly. Note: this feature + // gate is present only for backward compatibility, it will be removed in the 1.11 release. + ReadOnlyAPIDataVolumes utilfeature.Feature = "ReadOnlyAPIDataVolumes" + + // owner: @k82cn + // alpha: v1.10 + // + // Schedule DaemonSet Pods by default scheduler instead of DaemonSet controller + NoDaemonSetScheduler utilfeature.Feature = "NoDaemonSetScheduler" + + // owner: @mikedanese + // alpha: v1.10 + // + // Implement TokenRequest endpoint on service account resources. + TokenRequest utilfeature.Feature = "TokenRequest" + + // owner: @Random-Liu + // alpha: v1.10 + // + // Enable container log rotation for cri container runtime + CRIContainerLogRotation utilfeature.Feature = "CRIContainerLogRotation" + + // owner: @verult + // beta: v1.10 + // + // Enables the regional PD feature on GCE. + GCERegionalPersistentDisk utilfeature.Feature = "GCERegionalPersistentDisk" ) func init() { @@ -125,22 +271,56 @@ func init() { // To add a new feature, define a key for it above and add it here. The features will be // available throughout Kubernetes binaries. var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureSpec{ - ExternalTrafficLocalOnly: {Default: true, PreRelease: utilfeature.GA}, AppArmor: {Default: true, PreRelease: utilfeature.Beta}, DynamicKubeletConfig: {Default: false, PreRelease: utilfeature.Alpha}, - DynamicVolumeProvisioning: {Default: true, PreRelease: utilfeature.Alpha}, ExperimentalHostUserNamespaceDefaultingGate: {Default: false, PreRelease: utilfeature.Beta}, ExperimentalCriticalPodAnnotation: {Default: false, PreRelease: utilfeature.Alpha}, - AffinityInAnnotations: {Default: false, PreRelease: utilfeature.Alpha}, Accelerators: {Default: false, PreRelease: utilfeature.Alpha}, + DevicePlugins: {Default: true, PreRelease: utilfeature.Beta}, TaintBasedEvictions: {Default: false, PreRelease: utilfeature.Alpha}, RotateKubeletServerCertificate: {Default: false, PreRelease: utilfeature.Alpha}, - RotateKubeletClientCertificate: {Default: false, PreRelease: utilfeature.Alpha}, - PersistentLocalVolumes: {Default: false, PreRelease: utilfeature.Alpha}, + RotateKubeletClientCertificate: {Default: true, PreRelease: utilfeature.Beta}, + PersistentLocalVolumes: {Default: true, PreRelease: utilfeature.Beta}, LocalStorageCapacityIsolation: {Default: false, PreRelease: utilfeature.Alpha}, + HugePages: {Default: true, PreRelease: utilfeature.Beta}, + DebugContainers: {Default: false, PreRelease: utilfeature.Alpha}, + PodShareProcessNamespace: {Default: false, PreRelease: utilfeature.Alpha}, + PodPriority: {Default: false, PreRelease: utilfeature.Alpha}, + EnableEquivalenceClassCache: {Default: false, PreRelease: utilfeature.Alpha}, + TaintNodesByCondition: {Default: false, PreRelease: utilfeature.Alpha}, + MountPropagation: {Default: true, PreRelease: utilfeature.Beta}, + ExpandPersistentVolumes: {Default: false, PreRelease: utilfeature.Alpha}, + CPUManager: {Default: true, PreRelease: utilfeature.Beta}, + ServiceNodeExclusion: {Default: false, PreRelease: utilfeature.Alpha}, + MountContainers: {Default: false, PreRelease: utilfeature.Alpha}, + VolumeScheduling: {Default: true, PreRelease: utilfeature.Beta}, + CSIPersistentVolume: {Default: true, PreRelease: utilfeature.Beta}, + CustomPodDNS: {Default: true, PreRelease: utilfeature.Beta}, + BlockVolume: {Default: false, PreRelease: utilfeature.Alpha}, + StorageObjectInUseProtection: {Default: true, PreRelease: utilfeature.Beta}, + ResourceLimitsPriorityFunction: {Default: false, PreRelease: utilfeature.Alpha}, + SupportIPVSProxyMode: {Default: true, PreRelease: utilfeature.Beta}, + SupportPodPidsLimit: {Default: false, PreRelease: utilfeature.Alpha}, + HyperVContainer: {Default: false, PreRelease: utilfeature.Alpha}, + NoDaemonSetScheduler: {Default: false, PreRelease: utilfeature.Alpha}, + TokenRequest: {Default: false, PreRelease: utilfeature.Alpha}, + CRIContainerLogRotation: {Default: false, PreRelease: utilfeature.Alpha}, + GCERegionalPersistentDisk: {Default: true, PreRelease: utilfeature.Beta}, // inherited features from generic apiserver, relisted here to get a conflict if it is changed // unintentionally on either side: - StreamingProxyRedirects: {Default: true, PreRelease: utilfeature.Beta}, - genericfeatures.AdvancedAuditing: {Default: false, PreRelease: utilfeature.Alpha}, + genericfeatures.StreamingProxyRedirects: {Default: true, PreRelease: utilfeature.Beta}, + genericfeatures.AdvancedAuditing: {Default: true, PreRelease: utilfeature.Beta}, + genericfeatures.APIResponseCompression: {Default: false, PreRelease: utilfeature.Alpha}, + genericfeatures.Initializers: {Default: false, PreRelease: utilfeature.Alpha}, + genericfeatures.APIListChunking: {Default: true, PreRelease: utilfeature.Beta}, + + // inherited features from apiextensions-apiserver, relisted here to get a conflict if it is changed + // unintentionally on either side: + apiextensionsfeatures.CustomResourceValidation: {Default: true, PreRelease: utilfeature.Beta}, + apiextensionsfeatures.CustomResourceSubresources: {Default: false, PreRelease: utilfeature.Alpha}, + + // features that enable backwards compatibility but are scheduled to be removed + ServiceProxyAllowExternalIPs: {Default: false, PreRelease: utilfeature.Deprecated}, + ReadOnlyAPIDataVolumes: {Default: true, PreRelease: utilfeature.Deprecated}, } |