type AdmissionOptions … // NewAdmissionOptions creates a new instance of AdmissionOptions // Note: // // In addition it calls RegisterAllAdmissionPlugins to register // all kube-apiserver admission plugins. // // Provides the list of RecommendedPluginOrder that holds sane values // that can be used by servers that don't care about admission chain. // Servers that do care can overwrite/append that field after creation. func NewAdmissionOptions() *AdmissionOptions { … } // AddFlags adds flags related to admission for kube-apiserver to the specified FlagSet func (a *AdmissionOptions) AddFlags(fs *pflag.FlagSet) { … } // Validate verifies flags passed to kube-apiserver AdmissionOptions. // Kube-apiserver verifies PluginNames and then call generic AdmissionOptions.Validate. func (a *AdmissionOptions) Validate() []error { … } // ApplyTo adds the admission chain to the server configuration. // Kube-apiserver just call generic AdmissionOptions.ApplyTo. func (a *AdmissionOptions) ApplyTo( c *server.Config, informers informers.SharedInformerFactory, kubeClient kubernetes.Interface, dynamicClient dynamic.Interface, features featuregate.FeatureGate, pluginInitializers ...admission.PluginInitializer, ) error { … } // explicitly disable all plugins that are not in the enabled list func computePluginNames(explicitlyEnabled []string, all []string) (enabled []string, disabled []string) { … }