mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Merge pull request #106838 from mengjiao-liu/remove-NamespaceDefaultLabelName-feature-gate
Remove feature gate NamespaceDefaultLabelName
This commit is contained in:
commit
2daa3415ec
@ -326,20 +326,17 @@ func SetDefaults_HTTPGetAction(obj *v1.HTTPGetAction) {
|
|||||||
|
|
||||||
// SetDefaults_Namespace adds a default label for all namespaces
|
// SetDefaults_Namespace adds a default label for all namespaces
|
||||||
func SetDefaults_Namespace(obj *v1.Namespace) {
|
func SetDefaults_Namespace(obj *v1.Namespace) {
|
||||||
// TODO, remove the feature gate in 1.22
|
|
||||||
// we can't SetDefaults for nameless namespaces (generateName).
|
// we can't SetDefaults for nameless namespaces (generateName).
|
||||||
// This code needs to be kept in sync with the implementation that exists
|
// This code needs to be kept in sync with the implementation that exists
|
||||||
// in Namespace Canonicalize strategy (pkg/registry/core/namespace)
|
// in Namespace Canonicalize strategy (pkg/registry/core/namespace)
|
||||||
|
|
||||||
// note that this can result in many calls to feature enablement in some cases, but
|
// note that this can result in many calls to feature enablement in some cases, but
|
||||||
// we assume that there's no real cost there.
|
// we assume that there's no real cost there.
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.NamespaceDefaultLabelName) {
|
if len(obj.Name) > 0 {
|
||||||
if len(obj.Name) > 0 {
|
if obj.Labels == nil {
|
||||||
if obj.Labels == nil {
|
obj.Labels = map[string]string{}
|
||||||
obj.Labels = map[string]string{}
|
|
||||||
}
|
|
||||||
obj.Labels[v1.LabelMetadataName] = obj.Name
|
|
||||||
}
|
}
|
||||||
|
obj.Labels[v1.LabelMetadataName] = obj.Name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -695,14 +695,6 @@ const (
|
|||||||
// Enable POD resources API to return allocatable resources
|
// Enable POD resources API to return allocatable resources
|
||||||
KubeletPodResourcesGetAllocatable featuregate.Feature = "KubeletPodResourcesGetAllocatable"
|
KubeletPodResourcesGetAllocatable featuregate.Feature = "KubeletPodResourcesGetAllocatable"
|
||||||
|
|
||||||
// owner: @jayunit100 @abhiraut @rikatz
|
|
||||||
// kep: http://kep.k8s.io/2161
|
|
||||||
// beta: v1.21
|
|
||||||
// ga: v1.22
|
|
||||||
//
|
|
||||||
// Labels all namespaces with a default label "kubernetes.io/metadata.name: <namespaceName>"
|
|
||||||
NamespaceDefaultLabelName featuregate.Feature = "NamespaceDefaultLabelName"
|
|
||||||
|
|
||||||
// owner: @fengzixu
|
// owner: @fengzixu
|
||||||
// alpha: v1.21
|
// alpha: v1.21
|
||||||
//
|
//
|
||||||
@ -956,7 +948,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||||||
LogarithmicScaleDown: {Default: true, PreRelease: featuregate.Beta},
|
LogarithmicScaleDown: {Default: true, PreRelease: featuregate.Beta},
|
||||||
SuspendJob: {Default: true, PreRelease: featuregate.Beta},
|
SuspendJob: {Default: true, PreRelease: featuregate.Beta},
|
||||||
KubeletPodResourcesGetAllocatable: {Default: true, PreRelease: featuregate.Beta},
|
KubeletPodResourcesGetAllocatable: {Default: true, PreRelease: featuregate.Beta},
|
||||||
NamespaceDefaultLabelName: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.24
|
|
||||||
CSIVolumeHealth: {Default: false, PreRelease: featuregate.Alpha},
|
CSIVolumeHealth: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
WindowsHostProcessContainers: {Default: true, PreRelease: featuregate.Beta},
|
WindowsHostProcessContainers: {Default: true, PreRelease: featuregate.Beta},
|
||||||
DisableCloudProviders: {Default: false, PreRelease: featuregate.Alpha},
|
DisableCloudProviders: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
|
@ -28,11 +28,9 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
apistorage "k8s.io/apiserver/pkg/storage"
|
apistorage "k8s.io/apiserver/pkg/storage"
|
||||||
"k8s.io/apiserver/pkg/storage/names"
|
"k8s.io/apiserver/pkg/storage/names"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/core/validation"
|
"k8s.io/kubernetes/pkg/apis/core/validation"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
|
||||||
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
|
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -125,12 +123,10 @@ func (namespaceStrategy) Canonicalize(obj runtime.Object) {
|
|||||||
// GET:
|
// GET:
|
||||||
// Only defaulting will be applied.
|
// Only defaulting will be applied.
|
||||||
ns := obj.(*api.Namespace)
|
ns := obj.(*api.Namespace)
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.NamespaceDefaultLabelName) {
|
if ns.Labels == nil {
|
||||||
if ns.Labels == nil {
|
ns.Labels = map[string]string{}
|
||||||
ns.Labels = map[string]string{}
|
|
||||||
}
|
|
||||||
ns.Labels[v1.LabelMetadataName] = ns.Name
|
|
||||||
}
|
}
|
||||||
|
ns.Labels[v1.LabelMetadataName] = ns.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllowCreateOnUpdate is false for namespaces.
|
// AllowCreateOnUpdate is false for namespaces.
|
||||||
|
@ -22,11 +22,8 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
|
||||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
|
||||||
|
|
||||||
// ensure types are installed
|
// ensure types are installed
|
||||||
_ "k8s.io/kubernetes/pkg/apis/core/install"
|
_ "k8s.io/kubernetes/pkg/apis/core/install"
|
||||||
@ -73,8 +70,6 @@ func TestNamespaceStrategy(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestNamespaceDefaultLabelCanonicalize(t *testing.T) {
|
func TestNamespaceDefaultLabelCanonicalize(t *testing.T) {
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NamespaceDefaultLabelName, true)()
|
|
||||||
|
|
||||||
namespace := &api.Namespace{
|
namespace := &api.Namespace{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo"},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user