Skip to content

Commit 94efa98

Browse files
authored
Merge pull request kubernetes#84813 from deads2k/admission-feature-gates
remove global variable dependency from admission plugins
2 parents 402e551 + 83f6f27 commit 94efa98

File tree

28 files changed

+133
-86
lines changed

28 files changed

+133
-86
lines changed

cmd/kube-apiserver/app/aggregator.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
genericapiserver "k8s.io/apiserver/pkg/server"
3939
"k8s.io/apiserver/pkg/server/healthz"
4040
genericoptions "k8s.io/apiserver/pkg/server/options"
41+
"k8s.io/apiserver/pkg/util/feature"
4142
utilfeature "k8s.io/apiserver/pkg/util/feature"
4243
kubeexternalinformers "k8s.io/client-go/informers"
4344
"k8s.io/client-go/tools/cache"
@@ -73,6 +74,7 @@ func createAggregatorConfig(
7374
&genericConfig,
7475
externalInformers,
7576
genericConfig.LoopbackClientConfig,
77+
feature.DefaultFeatureGate,
7678
pluginInitializers...)
7779
if err != nil {
7880
return nil, err

cmd/kube-apiserver/app/apiextensions.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"k8s.io/apiserver/pkg/features"
3131
genericapiserver "k8s.io/apiserver/pkg/server"
3232
genericoptions "k8s.io/apiserver/pkg/server/options"
33+
"k8s.io/apiserver/pkg/util/feature"
3334
utilfeature "k8s.io/apiserver/pkg/util/feature"
3435
"k8s.io/apiserver/pkg/util/webhook"
3536
kubeexternalinformers "k8s.io/client-go/informers"
@@ -57,6 +58,7 @@ func createAPIExtensionsConfig(
5758
&genericConfig,
5859
externalInformers,
5960
genericConfig.LoopbackClientConfig,
61+
feature.DefaultFeatureGate,
6062
pluginInitializers...)
6163
if err != nil {
6264
return nil, err

cmd/kube-apiserver/app/server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
serveroptions "k8s.io/apiserver/pkg/server/options"
4949
serverstorage "k8s.io/apiserver/pkg/server/storage"
5050
"k8s.io/apiserver/pkg/storage/etcd3/preflight"
51+
"k8s.io/apiserver/pkg/util/feature"
5152
utilfeature "k8s.io/apiserver/pkg/util/feature"
5253
"k8s.io/apiserver/pkg/util/term"
5354
"k8s.io/apiserver/pkg/util/webhook"
@@ -511,6 +512,7 @@ func buildGenericConfig(
511512
genericConfig,
512513
versionedInformers,
513514
kubeClientConfig,
515+
feature.DefaultFeatureGate,
514516
pluginInitializers...)
515517
if err != nil {
516518
lastErr = fmt.Errorf("failed to initialize admission: %v", err)

pkg/kubeapiserver/options/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ go_library(
6464
"//staging/src/k8s.io/client-go/informers:go_default_library",
6565
"//staging/src/k8s.io/client-go/rest:go_default_library",
6666
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
67+
"//staging/src/k8s.io/component-base/featuregate:go_default_library",
6768
"//vendor/github.com/spf13/pflag:go_default_library",
6869
"//vendor/k8s.io/klog:go_default_library",
6970
],

pkg/kubeapiserver/options/admission.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
genericoptions "k8s.io/apiserver/pkg/server/options"
2929
"k8s.io/client-go/informers"
3030
"k8s.io/client-go/rest"
31+
"k8s.io/component-base/featuregate"
3132
)
3233

3334
// AdmissionOptions holds the admission options.
@@ -107,6 +108,7 @@ func (a *AdmissionOptions) ApplyTo(
107108
c *server.Config,
108109
informers informers.SharedInformerFactory,
109110
kubeAPIServerClientConfig *rest.Config,
111+
features featuregate.FeatureGate,
110112
pluginInitializers ...admission.PluginInitializer,
111113
) error {
112114
if a == nil {
@@ -118,7 +120,7 @@ func (a *AdmissionOptions) ApplyTo(
118120
a.GenericAdmission.EnablePlugins, a.GenericAdmission.DisablePlugins = computePluginNames(a.PluginNames, a.GenericAdmission.RecommendedPluginOrder)
119121
}
120122

121-
return a.GenericAdmission.ApplyTo(c, informers, kubeAPIServerClientConfig, pluginInitializers...)
123+
return a.GenericAdmission.ApplyTo(c, informers, kubeAPIServerClientConfig, features, pluginInitializers...)
122124
}
123125

124126
// explicitly disable all plugins that are not in the enabled list

plugin/pkg/admission/gc/gc_admission_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func newGCPermissionsEnforcement() (*gcPermissionsEnforcement, error) {
101101
whiteList: whiteList,
102102
}
103103

104-
genericPluginInitializer := initializer.New(nil, nil, fakeAuthorizer{})
104+
genericPluginInitializer := initializer.New(nil, nil, fakeAuthorizer{}, nil)
105105
fakeDiscoveryClient := &fakediscovery.FakeDiscovery{Fake: &coretesting.Fake{}}
106106
fakeDiscoveryClient.Resources = []*metav1.APIResourceList{
107107
{

plugin/pkg/admission/limitranger/admission_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -790,7 +790,7 @@ func newHandlerForTest(c clientset.Interface) (*LimitRanger, informers.SharedInf
790790
if err != nil {
791791
return nil, f, err
792792
}
793-
pluginInitializer := genericadmissioninitializer.New(c, f, nil)
793+
pluginInitializer := genericadmissioninitializer.New(c, f, nil, nil)
794794
pluginInitializer.Initialize(handler)
795795
err = admission.ValidateInitialization(handler)
796796
return handler, f, err

plugin/pkg/admission/namespace/autoprovision/admission_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import (
4141
func newHandlerForTest(c clientset.Interface) (admission.MutationInterface, informers.SharedInformerFactory, error) {
4242
f := informers.NewSharedInformerFactory(c, 5*time.Minute)
4343
handler := NewProvision()
44-
pluginInitializer := genericadmissioninitializer.New(c, f, nil)
44+
pluginInitializer := genericadmissioninitializer.New(c, f, nil, nil)
4545
pluginInitializer.Initialize(handler)
4646
err := admission.ValidateInitialization(handler)
4747
return handler, f, err

plugin/pkg/admission/namespace/exists/admission_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
func newHandlerForTest(c kubernetes.Interface) (admission.ValidationInterface, informers.SharedInformerFactory, error) {
4040
f := informers.NewSharedInformerFactory(c, 5*time.Minute)
4141
handler := NewExists()
42-
pluginInitializer := genericadmissioninitializer.New(c, f, nil)
42+
pluginInitializer := genericadmissioninitializer.New(c, f, nil, nil)
4343
pluginInitializer.Initialize(handler)
4444
err := admission.ValidateInitialization(handler)
4545
return handler, f, err

plugin/pkg/admission/noderestriction/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ go_library(
2929
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
3030
"//staging/src/k8s.io/apiserver/pkg/admission:go_default_library",
3131
"//staging/src/k8s.io/apiserver/pkg/admission/initializer:go_default_library",
32-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
3332
"//staging/src/k8s.io/client-go/informers:go_default_library",
3433
"//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
3534
"//staging/src/k8s.io/component-base/featuregate:go_default_library",
@@ -54,6 +53,7 @@ go_test(
5453
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
5554
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
5655
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
56+
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
5757
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
5858
"//staging/src/k8s.io/apiserver/pkg/admission:go_default_library",
5959
"//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library",

0 commit comments

Comments
 (0)