var configScheme … func init() { … } type AdmissionOptions … // NewAdmissionOptions creates a new instance of AdmissionOptions // Note: // // In addition it calls RegisterAllAdmissionPlugins to register // all generic 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 a specific APIServer to the specified FlagSet func (a *AdmissionOptions) AddFlags(fs *pflag.FlagSet) { … } // ApplyTo adds the admission chain to the server configuration. // In case admission plugin names were not provided by a cluster-admin they will be prepared from the recommended/default values. // In addition the method lazily initializes a generic plugin that is appended to the list of pluginInitializers // note this method uses: // // genericconfig.Authorizer func (a *AdmissionOptions) ApplyTo( c *server.Config, informers informers.SharedInformerFactory, kubeClient kubernetes.Interface, dynamicClient dynamic.Interface, features featuregate.FeatureGate, pluginInitializers ...admission.PluginInitializer, ) error { … } // Validate verifies flags passed to AdmissionOptions. func (a *AdmissionOptions) Validate() []error { … } // enabledPluginNames makes use of RecommendedPluginOrder, DefaultOffPlugins, // EnablePlugins, DisablePlugins fields // to prepare a list of ordered plugin names that are enabled. func (a *AdmissionOptions) enabledPluginNames() []string { … } // Return names of plugins which are enabled by default func (a *AdmissionOptions) defaultEnabledPluginNames() []string { … }