Skip to content

Commit 09c4e10

Browse files
authored
Merge pull request kubernetes#74021 from andrewsykim/move-features-component-base
Move feature gate package from k8s.io/apiserver to k8s.io/component-base
2 parents 5268f69 + dcad650 commit 09c4e10

File tree

151 files changed

+1102
-1035
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+1102
-1035
lines changed

cmd/kubeadm/app/features/BUILD

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ go_library(
1212
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/features",
1313
deps = [
1414
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
15-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
15+
"//staging/src/k8s.io/component-base/featuregate:go_default_library",
1616
"//vendor/github.com/pkg/errors:go_default_library",
1717
],
1818
)
@@ -36,6 +36,6 @@ go_test(
3636
embed = [":go_default_library"],
3737
deps = [
3838
"//cmd/kubeadm/app/constants:go_default_library",
39-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
39+
"//staging/src/k8s.io/component-base/featuregate:go_default_library",
4040
],
4141
)

cmd/kubeadm/app/features/features.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
"github.com/pkg/errors"
2626
"k8s.io/apimachinery/pkg/util/version"
27-
utilfeature "k8s.io/apiserver/pkg/util/feature"
27+
"k8s.io/component-base/featuregate"
2828
)
2929

3030
const (
@@ -38,12 +38,12 @@ var coreDNSMessage = "featureGates:CoreDNS has been removed in v1.13\n" +
3838

3939
// InitFeatureGates are the default feature gates for the init command
4040
var InitFeatureGates = FeatureList{
41-
CoreDNS: {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Deprecated}, HiddenInHelpText: true, DeprecationMessage: coreDNSMessage},
41+
CoreDNS: {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Deprecated}, HiddenInHelpText: true, DeprecationMessage: coreDNSMessage},
4242
}
4343

4444
// Feature represents a feature being gated
4545
type Feature struct {
46-
utilfeature.FeatureSpec
46+
featuregate.FeatureSpec
4747
MinimumVersion *version.Version
4848
HiddenInHelpText bool
4949
DeprecationMessage string
@@ -86,7 +86,7 @@ func Enabled(featureList map[string]bool, featureName string) bool {
8686
func Supports(featureList FeatureList, featureName string) bool {
8787
for k, v := range featureList {
8888
if featureName == string(k) {
89-
return v.PreRelease != utilfeature.Deprecated
89+
return v.PreRelease != featuregate.Deprecated
9090
}
9191
}
9292
return false
@@ -110,7 +110,7 @@ func KnownFeatures(f *FeatureList) []string {
110110
}
111111

112112
pre := ""
113-
if v.PreRelease != utilfeature.GA {
113+
if v.PreRelease != featuregate.GA {
114114
pre = fmt.Sprintf("%s - ", v.PreRelease)
115115
}
116116
known = append(known, fmt.Sprintf("%s=true|false (%sdefault=%t)", k, pre, v.Default))
@@ -141,7 +141,7 @@ func NewFeatureGate(f *FeatureList, value string) (map[string]bool, error) {
141141
return nil, errors.Errorf("unrecognized feature-gate key: %s", k)
142142
}
143143

144-
if featureSpec.PreRelease == utilfeature.Deprecated {
144+
if featureSpec.PreRelease == featuregate.Deprecated {
145145
return nil, errors.Errorf("feature-gate key is deprecated: %s", k)
146146
}
147147

@@ -168,7 +168,7 @@ func CheckDeprecatedFlags(f *FeatureList, features map[string]bool) map[string]s
168168
deprecatedMsg[k] = fmt.Sprintf("Unknown feature gate flag: %s", k)
169169
}
170170

171-
if featureSpec.PreRelease == utilfeature.Deprecated {
171+
if featureSpec.PreRelease == featuregate.Deprecated {
172172
if _, ok := deprecatedMsg[k]; !ok {
173173
deprecatedMsg[k] = featureSpec.DeprecationMessage
174174
}

cmd/kubeadm/app/features/features_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ import (
2020
"reflect"
2121
"testing"
2222

23-
utilfeature "k8s.io/apiserver/pkg/util/feature"
23+
"k8s.io/component-base/featuregate"
2424
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
2525
)
2626

2727
func TestKnownFeatures(t *testing.T) {
2828
var someFeatures = FeatureList{
29-
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
30-
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
31-
"feature3": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.GA}},
32-
"hidden": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.GA}, HiddenInHelpText: true},
29+
"feature2": {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Alpha}},
30+
"feature1": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.Beta}},
31+
"feature3": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.GA}},
32+
"hidden": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.GA}, HiddenInHelpText: true},
3333
}
3434

3535
r := KnownFeatures(&someFeatures)
@@ -57,9 +57,9 @@ func TestKnownFeatures(t *testing.T) {
5757

5858
func TestNewFeatureGate(t *testing.T) {
5959
var someFeatures = FeatureList{
60-
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
61-
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}},
62-
"deprecated": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Deprecated}},
60+
"feature1": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.Beta}},
61+
"feature2": {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Alpha}},
62+
"deprecated": {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Deprecated}},
6363
}
6464

6565
var tests = []struct {
@@ -128,8 +128,8 @@ func TestNewFeatureGate(t *testing.T) {
128128

129129
func TestValidateVersion(t *testing.T) {
130130
var someFeatures = FeatureList{
131-
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
132-
"feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}, MinimumVersion: constants.MinimumControlPlaneVersion.WithPreRelease("alpha.1")},
131+
"feature1": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.Beta}},
132+
"feature2": {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Alpha}, MinimumVersion: constants.MinimumControlPlaneVersion.WithPreRelease("alpha.1")},
133133
}
134134

135135
var tests = []struct {
@@ -187,8 +187,8 @@ func TestEnabledDefaults(t *testing.T) {
187187
func TestCheckDeprecatedFlags(t *testing.T) {
188188
dummyMessage := "dummy message"
189189
var someFeatures = FeatureList{
190-
"feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}},
191-
"deprecated": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Deprecated}, DeprecationMessage: dummyMessage},
190+
"feature1": {FeatureSpec: featuregate.FeatureSpec{Default: false, PreRelease: featuregate.Beta}},
191+
"deprecated": {FeatureSpec: featuregate.FeatureSpec{Default: true, PreRelease: featuregate.Deprecated}, DeprecationMessage: dummyMessage},
192192
}
193193

194194
var tests = []struct {

hack/.golint_failures

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,6 @@ staging/src/k8s.io/apiserver/pkg/storage/storagebackend
500500
staging/src/k8s.io/apiserver/pkg/storage/testing
501501
staging/src/k8s.io/apiserver/pkg/storage/tests
502502
staging/src/k8s.io/apiserver/pkg/storage/value
503-
staging/src/k8s.io/apiserver/pkg/util/feature
504503
staging/src/k8s.io/apiserver/pkg/util/proxy
505504
staging/src/k8s.io/apiserver/pkg/util/webhook
506505
staging/src/k8s.io/apiserver/pkg/util/wsstream
@@ -574,6 +573,7 @@ staging/src/k8s.io/code-generator/cmd/go-to-protobuf/protobuf
574573
staging/src/k8s.io/code-generator/cmd/lister-gen/generators
575574
staging/src/k8s.io/component-base/cli/flag
576575
staging/src/k8s.io/component-base/config/v1alpha1
576+
staging/src/k8s.io/component-base/featuregate
577577
staging/src/k8s.io/cri-api/pkg/apis/testing
578578
staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
579579
staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1

hack/verify-test-featuregates.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ if [[ -n "${direct_sets}" ]]; then
3232
echo "${direct_sets}" >&2
3333
echo >&2
3434
echo "Use this invocation instead:" >&2
35-
echo " defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.<FeatureName>, <value>)()" >&2
35+
echo " defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.<FeatureName>, <value>)()" >&2
3636
echo >&2
3737
rc=1
3838
fi
3939

4040
# find test files calling SetFeatureGateDuringTest and not calling the result
4141
missing_defers=$(grep -n --include '*_test.go' -R 'SetFeatureGateDuringTest' . 2>/dev/null | grep -E -v "defer .*\\)\\(\\)$") || true
4242
if [[ -n "${missing_defers}" ]]; then
43-
echo "Invalid invocations of utilfeaturetesting.SetFeatureGateDuringTest():" >&2
43+
echo "Invalid invocations of featuregatetesting.SetFeatureGateDuringTest():" >&2
4444
echo "${missing_defers}" >&2
4545
echo >&2
4646
echo "Always make a deferred call to the returned function to ensure the feature gate is reset:" >&2
47-
echo " defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.<FeatureName>, <value>)()" >&2
47+
echo " defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.<FeatureName>, <value>)()" >&2
4848
echo >&2
4949
rc=1
5050
fi

pkg/api/persistentvolume/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ go_test(
3535
"//pkg/features:go_default_library",
3636
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
3737
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
38-
"//staging/src/k8s.io/apiserver/pkg/util/feature/testing:go_default_library",
38+
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
3939
],
4040
)

pkg/api/persistentvolume/util_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222

2323
"k8s.io/apimachinery/pkg/util/diff"
2424
utilfeature "k8s.io/apiserver/pkg/util/feature"
25-
utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing"
25+
featuregatetesting "k8s.io/component-base/featuregate/testing"
2626
api "k8s.io/kubernetes/pkg/apis/core"
2727
"k8s.io/kubernetes/pkg/features"
2828
)
@@ -88,7 +88,7 @@ func TestDropDisabledFields(t *testing.T) {
8888

8989
for name, tc := range tests {
9090
t.Run(name, func(t *testing.T) {
91-
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, tc.blockEnabled)()
91+
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, tc.blockEnabled)()
9292

9393
DropDisabledFields(tc.newSpec, tc.oldSpec)
9494
if !reflect.DeepEqual(tc.newSpec, tc.expectNewSpec) {

pkg/api/persistentvolumeclaim/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ go_test(
3939
"//pkg/features:go_default_library",
4040
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
4141
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
42-
"//staging/src/k8s.io/apiserver/pkg/util/feature/testing:go_default_library",
42+
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
4343
],
4444
)

pkg/api/persistentvolumeclaim/util_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323

2424
"k8s.io/apimachinery/pkg/util/diff"
2525
utilfeature "k8s.io/apiserver/pkg/util/feature"
26-
utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing"
26+
featuregatetesting "k8s.io/component-base/featuregate/testing"
2727
"k8s.io/kubernetes/pkg/apis/core"
2828
"k8s.io/kubernetes/pkg/features"
2929
)
@@ -78,7 +78,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
7878
}
7979

8080
t.Run(fmt.Sprintf("feature enabled=%v, old pvc %v, new pvc %v", enabled, oldpvcInfo.description, newpvcInfo.description), func(t *testing.T) {
81-
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, enabled)()
81+
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, enabled)()
8282

8383
var oldpvcSpec *core.PersistentVolumeClaimSpec
8484
if oldpvc != nil {
@@ -171,7 +171,7 @@ func TestDropDisabledDataSource(t *testing.T) {
171171
}
172172

173173
t.Run(fmt.Sprintf("feature enabled=%v, old pvc %v, new pvc %v", enabled, oldpvcInfo.description, newpvcInfo.description), func(t *testing.T) {
174-
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeSnapshotDataSource, enabled)()
174+
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeSnapshotDataSource, enabled)()
175175

176176
var oldpvcSpec *core.PersistentVolumeClaimSpec
177177
if oldpvc != nil {

pkg/api/pod/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ go_test(
4646
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
4747
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
4848
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
49-
"//staging/src/k8s.io/apiserver/pkg/util/feature/testing:go_default_library",
49+
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
5050
],
5151
)

0 commit comments

Comments
 (0)