Skip to content

Commit 67bdb11

Browse files
authored
Merge pull request kubernetes#130121 from yongruilin/featuregate-unversion-clean
[compatibility version] clean using unversioned featuregate
2 parents 664d405 + a2c739f commit 67bdb11

File tree

8 files changed

+894
-921
lines changed

8 files changed

+894
-921
lines changed

hack/verify-test-featuregates.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ fi
4343

4444

4545
# ensure all generic features are added in alphabetic order
46-
lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/versioned_kube_features.go)
46+
lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/kube_features.go)
4747
sorted_lines=$(echo "$lines" | sort -f)
4848
if [[ "$lines" != "$sorted_lines" ]]; then
4949
echo "Generic features in pkg/features/kube_features.go not sorted" >&2

pkg/features/kube_features.go

Lines changed: 868 additions & 8 deletions
Large diffs are not rendered by default.

pkg/features/kube_features_test.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
func TestKubeFeaturesRegistered(t *testing.T) {
2929
registeredFeatures := utilfeature.DefaultFeatureGate.DeepCopy().GetAll()
3030

31-
for featureName := range defaultKubernetesFeatureGates {
31+
for featureName := range defaultVersionedKubernetesFeatureGates {
3232
if _, ok := registeredFeatures[featureName]; !ok {
3333
t.Errorf("The feature gate %q is not registered in the DefaultFeatureGate", featureName)
3434
}
@@ -59,9 +59,6 @@ func TestAllRegisteredFeaturesExpected(t *testing.T) {
5959
if err := clientfeatures.AddFeaturesToExistingFeatureGates(&clientAdapter{knownFeatureGates}); err != nil {
6060
t.Fatal(err)
6161
}
62-
if err := knownFeatureGates.Add(defaultKubernetesFeatureGates); err != nil {
63-
t.Fatal(err)
64-
}
6562
if err := knownFeatureGates.AddVersioned(defaultVersionedKubernetesFeatureGates); err != nil {
6663
t.Fatal(err)
6764
}
@@ -88,9 +85,6 @@ func TestEnsureAlphaGatesAreNotSwitchedOnByDefault(t *testing.T) {
8885
}
8986
}
9087

91-
for feature, spec := range defaultKubernetesFeatureGates {
92-
checkAlphaGates(feature, spec)
93-
}
9488
for feature, specs := range defaultVersionedKubernetesFeatureGates {
9589
for _, spec := range specs {
9690
checkAlphaGates(feature, spec)

pkg/features/versioned_kube_features.go

Lines changed: 0 additions & 890 deletions
This file was deleted.

staging/src/k8s.io/apiserver/pkg/features/kube_features.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ const (
246246
)
247247

248248
func init() {
249-
runtime.Must(utilfeature.DefaultMutableFeatureGate.Add(defaultKubernetesFeatureGates)) //nolint:forbidigo // TODO(https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/4330-compatibility-versions): Remove this once we complete the migration to versioned feature gates
250249
runtime.Must(utilfeature.DefaultMutableFeatureGate.AddVersioned(defaultVersionedKubernetesFeatureGates))
251250
}
252251

@@ -418,7 +417,3 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
418417
{Version: version.MustParse("1.32"), Default: true, PreRelease: featuregate.Beta},
419418
},
420419
}
421-
422-
// defaultKubernetesFeatureGates consists of legacy unversioned Kubernetes-specific feature keys.
423-
// Please do not add to this struct and use defaultVersionedKubernetesFeatureGates instead.
424-
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{}

test/e2e/framework/internal/unittests/bugs/bugs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ ERROR: some/relative/path/buggy.go:200: with spaces
122122
`
123123
// Used by unittests/list-tests. It's sorted by test name, not source code location.
124124
ListTestsOutput = `The following spec names can be used with 'ginkgo run --focus/skip':
125-
../bugs/bugs.go:100: [sig-testing] abc space1 space2 [Feature:no-such-feature] [Feature:feature-foo] [Environment:no-such-env] [Environment:Linux] [FeatureGate:no-such-feature-gate] [Feature:OffByDefault] [FeatureGate:TestAlphaFeature] [Alpha] [Feature:OffByDefault] [FeatureGate:TestBetaFeature] [Beta] [Feature:OffByDefault] [FeatureGate:TestGAFeature] [Feature:OffByDefault] [Conformance] [NodeConformance] [Slow] [Serial] [Disruptive] [custom-label] xyz x [foo] should [bar]
126-
../bugs/bugs.go:95: [sig-testing] abc space1 space2 [Feature:no-such-feature] [Feature:feature-foo] [Environment:no-such-env] [Environment:Linux] [FeatureGate:no-such-feature-gate] [Feature:OffByDefault] [FeatureGate:TestAlphaFeature] [Alpha] [Feature:OffByDefault] [FeatureGate:TestBetaFeature] [Beta] [Feature:OffByDefault] [FeatureGate:TestGAFeature] [Feature:OffByDefault] [Conformance] [NodeConformance] [Slow] [Serial] [Disruptive] [custom-label] xyz y [foo] should [bar]
125+
../bugs/bugs.go:100: [sig-testing] abc space1 space2 [Feature:no-such-feature] [Feature:feature-foo] [Environment:no-such-env] [Environment:Linux] [FeatureGate:no-such-feature-gate] [Feature:OffByDefault] [FeatureGate:TestAlphaFeature] [Alpha] [Feature:OffByDefault] [FeatureGate:TestBetaFeature] [Beta] [FeatureGate:TestGAFeature] [Conformance] [NodeConformance] [Slow] [Serial] [Disruptive] [custom-label] xyz x [foo] should [bar]
126+
../bugs/bugs.go:95: [sig-testing] abc space1 space2 [Feature:no-such-feature] [Feature:feature-foo] [Environment:no-such-env] [Environment:Linux] [FeatureGate:no-such-feature-gate] [Feature:OffByDefault] [FeatureGate:TestAlphaFeature] [Alpha] [Feature:OffByDefault] [FeatureGate:TestBetaFeature] [Beta] [FeatureGate:TestGAFeature] [Conformance] [NodeConformance] [Slow] [Serial] [Disruptive] [custom-label] xyz y [foo] should [bar]
127127
128128
`
129129

test/e2e/framework/internal/unittests/bugs/features/features.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package features
1818

1919
import (
2020
"k8s.io/apimachinery/pkg/util/runtime"
21+
"k8s.io/apimachinery/pkg/util/version"
2122
utilfeature "k8s.io/apiserver/pkg/util/feature"
2223
"k8s.io/component-base/featuregate"
2324
)
@@ -29,11 +30,20 @@ const (
2930
)
3031

3132
func init() {
32-
runtime.Must(utilfeature.DefaultMutableFeatureGate.Add(testFeatureGates)) //nolint:forbidigo // Part of a unit test.
33+
runtime.Must(utilfeature.DefaultMutableFeatureGate.AddVersioned(testFeatureGates))
3334
}
3435

35-
var testFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
36-
Alpha: {PreRelease: featuregate.Alpha},
37-
Beta: {PreRelease: featuregate.Beta},
38-
GA: {PreRelease: featuregate.GA},
36+
var testFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
37+
Alpha: {
38+
{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
39+
},
40+
Beta: {
41+
{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
42+
{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
43+
},
44+
GA: {
45+
{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
46+
{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
47+
{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
48+
},
3949
}

test/e2e/framework/internal/unittests/features/kube_features.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package features
1818

1919
import (
2020
"k8s.io/apimachinery/pkg/util/runtime"
21+
"k8s.io/apimachinery/pkg/util/version"
2122
utilfeature "k8s.io/apiserver/pkg/util/feature"
2223
"k8s.io/component-base/featuregate"
2324
)
@@ -27,9 +28,12 @@ const (
2728
)
2829

2930
func init() {
30-
runtime.Must(utilfeature.DefaultMutableFeatureGate.Add(defaultKubernetesFeatureGates)) //nolint:forbidigo // Part of a unit test.
31+
runtime.Must(utilfeature.DefaultMutableFeatureGate.AddVersioned(defaultVersionedKubernetesFeatureGates))
3132
}
3233

33-
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
34-
Test: {Default: false, PreRelease: featuregate.Alpha},
34+
var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
35+
Test: {
36+
{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
37+
{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
38+
},
3539
}

0 commit comments

Comments
 (0)