mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-15 22:20:51 +00:00
Migrate apiextensions-apiserver to versioned feature gates
This commit is contained in:
@@ -17,7 +17,6 @@ limitations under the License.
|
|||||||
package features
|
package features
|
||||||
|
|
||||||
import (
|
import (
|
||||||
apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features"
|
|
||||||
"k8s.io/apimachinery/pkg/util/runtime"
|
"k8s.io/apimachinery/pkg/util/runtime"
|
||||||
genericfeatures "k8s.io/apiserver/pkg/features"
|
genericfeatures "k8s.io/apiserver/pkg/features"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
@@ -971,13 +970,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||||||
|
|
||||||
genericfeatures.KMSv1: {Default: false, PreRelease: featuregate.Deprecated},
|
genericfeatures.KMSv1: {Default: false, PreRelease: featuregate.Deprecated},
|
||||||
|
|
||||||
// inherited features from apiextensions-apiserver, relisted here to get a conflict if it is changed
|
|
||||||
// unintentionally on either side:
|
|
||||||
|
|
||||||
apiextensionsfeatures.CRDValidationRatcheting: {Default: true, PreRelease: featuregate.Beta},
|
|
||||||
|
|
||||||
apiextensionsfeatures.CustomResourceFieldSelectors: {Default: true, PreRelease: featuregate.Beta},
|
|
||||||
|
|
||||||
// features with duplicate definition in apiserver/controller-manager
|
// features with duplicate definition in apiserver/controller-manager
|
||||||
|
|
||||||
CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
|
CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
package features
|
package features
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features"
|
||||||
"k8s.io/apimachinery/pkg/util/version"
|
"k8s.io/apimachinery/pkg/util/version"
|
||||||
genericfeatures "k8s.io/apiserver/pkg/features"
|
genericfeatures "k8s.io/apiserver/pkg/features"
|
||||||
"k8s.io/component-base/featuregate"
|
"k8s.io/component-base/featuregate"
|
||||||
@@ -95,6 +96,13 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
|
|||||||
{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
|
{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// inherited features from apiextensions-apiserver, relisted here to get a conflict if it is changed
|
||||||
|
// unintentionally on either side:
|
||||||
|
apiextensionsfeatures.CRDValidationRatcheting: {
|
||||||
|
{Version: version.MustParse("1.28"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
|
||||||
|
},
|
||||||
|
|
||||||
CrossNamespaceVolumeDataSource: {
|
CrossNamespaceVolumeDataSource: {
|
||||||
{Version: version.MustParse("1.26"), Default: false, PreRelease: featuregate.Alpha},
|
{Version: version.MustParse("1.26"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
},
|
},
|
||||||
@@ -109,6 +117,13 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
|
|||||||
{Version: version.MustParse("1.21"), Default: false, PreRelease: featuregate.Alpha},
|
{Version: version.MustParse("1.21"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// inherited features from apiextensions-apiserver, relisted here to get a conflict if it is changed
|
||||||
|
// unintentionally on either side:
|
||||||
|
apiextensionsfeatures.CustomResourceFieldSelectors: {
|
||||||
|
{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
|
||||||
|
},
|
||||||
|
|
||||||
DevicePluginCDIDevices: {
|
DevicePluginCDIDevices: {
|
||||||
{Version: version.MustParse("1.28"), Default: false, PreRelease: featuregate.Alpha},
|
{Version: version.MustParse("1.28"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
{Version: version.MustParse("1.29"), Default: true, PreRelease: featuregate.Beta},
|
{Version: version.MustParse("1.29"), Default: true, PreRelease: featuregate.Beta},
|
||||||
|
@@ -17,6 +17,8 @@ limitations under the License.
|
|||||||
package features
|
package features
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/util/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/util/version"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
"k8s.io/component-base/featuregate"
|
"k8s.io/component-base/featuregate"
|
||||||
)
|
)
|
||||||
@@ -30,6 +32,7 @@ const (
|
|||||||
|
|
||||||
// owner: @alexzielenski
|
// owner: @alexzielenski
|
||||||
// alpha: v1.28
|
// alpha: v1.28
|
||||||
|
// beta: v1.30
|
||||||
//
|
//
|
||||||
// Ignores errors raised on unchanged fields of Custom Resources
|
// Ignores errors raised on unchanged fields of Custom Resources
|
||||||
// across UPDATE/PATCH requests.
|
// across UPDATE/PATCH requests.
|
||||||
@@ -37,6 +40,8 @@ const (
|
|||||||
|
|
||||||
// owner: @jpbetz
|
// owner: @jpbetz
|
||||||
// alpha: v1.30
|
// alpha: v1.30
|
||||||
|
// beta: v1.31
|
||||||
|
// ga: v1.32
|
||||||
//
|
//
|
||||||
// CustomResourceDefinitions may include SelectableFields to declare which fields
|
// CustomResourceDefinitions may include SelectableFields to declare which fields
|
||||||
// may be used as field selectors.
|
// may be used as field selectors.
|
||||||
@@ -44,13 +49,22 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
utilfeature.DefaultMutableFeatureGate.Add(defaultKubernetesFeatureGates)
|
runtime.Must(utilfeature.DefaultMutableFeatureGate.AddVersioned(defaultVersionedKubernetesFeatureGates))
|
||||||
}
|
}
|
||||||
|
|
||||||
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
|
// defaultVersionedKubernetesFeatureGates consists of all known Kubernetes-specific feature keys with VersionedSpecs.
|
||||||
// To add a new feature, define a key for it above and add it here. The features will be
|
// To add a new feature, define a key for it above and add it below. The features will be
|
||||||
// available throughout Kubernetes binaries.
|
// available throughout Kubernetes binaries.
|
||||||
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
|
// To support n-3 compatibility version, features may only be removed 3 releases after graduation.
|
||||||
CRDValidationRatcheting: {Default: true, PreRelease: featuregate.Beta},
|
//
|
||||||
CustomResourceFieldSelectors: {Default: true, PreRelease: featuregate.Beta},
|
// Entries are alphabetized.
|
||||||
|
var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
|
||||||
|
CRDValidationRatcheting: {
|
||||||
|
{Version: version.MustParse("1.28"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
|
||||||
|
},
|
||||||
|
CustomResourceFieldSelectors: {
|
||||||
|
{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user