From 0f7253ee99290559d1efdc884e5a788e9b80b0f2 Mon Sep 17 00:00:00 2001 From: hzxuzhonghu Date: Thu, 30 Nov 2017 14:34:36 +0800 Subject: [PATCH] validate admission-control param Kubernetes-commit: 64a7c60e00a1f6cf92710415e0e3dee133ebab7c --- pkg/server/options/admission.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/server/options/admission.go b/pkg/server/options/admission.go index 6232567f7..9466254b4 100644 --- a/pkg/server/options/admission.go +++ b/pkg/server/options/admission.go @@ -22,6 +22,7 @@ import ( "github.com/spf13/pflag" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/initializer" admissionmetrics "k8s.io/apiserver/pkg/admission/metrics" @@ -129,7 +130,19 @@ func (a *AdmissionOptions) ApplyTo( } func (a *AdmissionOptions) Validate() []error { + if a == nil { + return nil + } + errs := []error{} + + registeredPlugins := sets.NewString(a.Plugins.Registered()...) + for _, name := range a.PluginNames { + if !registeredPlugins.Has(name) { + errs = append(errs, fmt.Errorf("admission-control plugin %q is invalid", name)) + } + } + return errs }