Add the ability to add extra admission plugins

Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
This commit is contained in:
galal-hussein 2024-09-14 01:09:02 +03:00 committed by Rafael Breno
parent a4d44738f0
commit a552d5eaa0
2 changed files with 12 additions and 1 deletions

View File

@ -105,7 +105,7 @@ func NewOptions() *Options {
SecureServing: kubeoptions.NewSecureServingOptions(),
Audit: genericoptions.NewAuditOptions(),
Features: genericoptions.NewFeatureOptions(),
Admission: kubeoptions.NewAdmissionOptions(),
Admission: kubeoptions.NewAdmissionOptions().WithPlugins(kubeoptions.AdmissionPlugins),
Authentication: kubeoptions.NewBuiltInAuthenticationOptions().WithAll(),
Authorization: kubeoptions.NewBuiltInAuthorizationOptions(),
APIEnablement: genericoptions.NewAPIEnablementOptions(),

View File

@ -42,6 +42,17 @@ type AdmissionOptions struct {
PluginNames []string
}
var AdmissionPlugins map[string]func(*admission.Plugins)
func (a *AdmissionOptions) WithPlugins(plugins map[string]func(*admission.Plugins)) *AdmissionOptions {
for pluginName, register := range plugins {
a.GenericAdmission.RecommendedPluginOrder = append(a.GenericAdmission.RecommendedPluginOrder, pluginName)
a.GenericAdmission.DefaultOffPlugins = a.GenericAdmission.DefaultOffPlugins.Insert(pluginName)
register(a.GenericAdmission.Plugins)
}
return a
}
// NewAdmissionOptions creates a new instance of AdmissionOptions
// Note:
//