From b5d4551ac7cc6a096b0239033879bead5c023021 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 21 Apr 2021 22:29:30 +0000 Subject: [PATCH 1/2] Promote NamespaceDefaultLabelName to GA Lock to default for 1.22 Co-authored-by: Jay Vyas --- pkg/features/kube_features.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 2751253a462..e47383461ff 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -748,6 +748,7 @@ const ( // owner: @jayunit100 @abhiraut @rikatz // beta: v1.21 + // ga: v1.22 // // Labels all namespaces with a default label "kubernetes.io/metadata.name: " NamespaceDefaultLabelName featuregate.Feature = "NamespaceDefaultLabelName" @@ -869,7 +870,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS ServiceInternalTrafficPolicy: {Default: false, PreRelease: featuregate.Alpha}, SuspendJob: {Default: false, PreRelease: featuregate.Alpha}, KubeletPodResourcesGetAllocatable: {Default: false, PreRelease: featuregate.Alpha}, - NamespaceDefaultLabelName: {Default: true, PreRelease: featuregate.Beta}, // graduate to GA and lock to default in 1.22, remove in 1.24 + NamespaceDefaultLabelName: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.24 CSIVolumeHealth: {Default: false, PreRelease: featuregate.Alpha}, // inherited features from generic apiserver, relisted here to get a conflict if it is changed From 176c07dfddbd20994a438a0ce35a68766990cd81 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 21 Apr 2021 23:50:58 +0000 Subject: [PATCH 2/2] fix up test for setting default namespace labels --- pkg/apis/core/v1/defaults_test.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pkg/apis/core/v1/defaults_test.go b/pkg/apis/core/v1/defaults_test.go index b20fee58f61..eb0f00c654d 100644 --- a/pkg/apis/core/v1/defaults_test.go +++ b/pkg/apis/core/v1/defaults_test.go @@ -1417,9 +1417,6 @@ func TestSetDefaultNamespace(t *testing.T) { } func TestSetDefaultNamespaceLabels(t *testing.T) { - // Although this is defaulted to true, it's still worth to enable the feature gate during the test - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NamespaceDefaultLabelName, true)() - theNs := "default-ns-labels-are-great" s := &v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -1432,22 +1429,6 @@ func TestSetDefaultNamespaceLabels(t *testing.T) { if s2.ObjectMeta.Labels[v1.LabelMetadataName] != theNs { t.Errorf("Expected default namespace label value of %v, but got %v", theNs, s2.ObjectMeta.Labels[v1.LabelMetadataName]) } - - // And let's disable the FG and check if it still defaults creating the labels - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NamespaceDefaultLabelName, false)() - - theNs = "default-ns-labels-are-not-that-great" - s = &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: theNs, - }, - } - obj2 = roundTrip(t, runtime.Object(s)) - s2 = obj2.(*v1.Namespace) - - if _, ok := s2.ObjectMeta.Labels[v1.LabelMetadataName]; ok { - t.Errorf("Default namespace shouldn't exist here, as the feature gate is disabled %v", s) - } } func TestSetDefaultPodSpecHostNetwork(t *testing.T) {