summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/kubernetes/pkg/features
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/k8s.io/kubernetes/pkg/features')
-rw-r--r--vendor/k8s.io/kubernetes/pkg/features/kube_features.go242
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},
}