mirror of https://github.com/k3s-io/k3s
allow apiservers to override the list of decorators
parent
9891824352
commit
ad740bbba5
|
@ -138,6 +138,7 @@ func TestAddFlags(t *testing.T) {
|
||||||
EnablePlugins: []string{"AlwaysDeny"},
|
EnablePlugins: []string{"AlwaysDeny"},
|
||||||
ConfigFile: "/admission-control-config",
|
ConfigFile: "/admission-control-config",
|
||||||
Plugins: s.Admission.GenericAdmission.Plugins,
|
Plugins: s.Admission.GenericAdmission.Plugins,
|
||||||
|
Decorators: s.Admission.GenericAdmission.Decorators,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Etcd: &apiserveroptions.EtcdOptions{
|
Etcd: &apiserveroptions.EtcdOptions{
|
||||||
|
|
|
@ -61,6 +61,8 @@ type AdmissionOptions struct {
|
||||||
ConfigFile string
|
ConfigFile string
|
||||||
// Plugins contains all registered plugins.
|
// Plugins contains all registered plugins.
|
||||||
Plugins *admission.Plugins
|
Plugins *admission.Plugins
|
||||||
|
// Decorators is a list of admission decorator to wrap around the admission plugins
|
||||||
|
Decorators admission.Decorators
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAdmissionOptions creates a new instance of AdmissionOptions
|
// NewAdmissionOptions creates a new instance of AdmissionOptions
|
||||||
|
@ -73,7 +75,8 @@ type AdmissionOptions struct {
|
||||||
// Servers that do care can overwrite/append that field after creation.
|
// Servers that do care can overwrite/append that field after creation.
|
||||||
func NewAdmissionOptions() *AdmissionOptions {
|
func NewAdmissionOptions() *AdmissionOptions {
|
||||||
options := &AdmissionOptions{
|
options := &AdmissionOptions{
|
||||||
Plugins: admission.NewPlugins(),
|
Plugins: admission.NewPlugins(),
|
||||||
|
Decorators: admission.Decorators{admission.DecoratorFunc(admissionmetrics.WithControllerMetrics)},
|
||||||
// This list is mix of mutating admission plugins and validating
|
// This list is mix of mutating admission plugins and validating
|
||||||
// admission plugins. The apiserver always runs the validating ones
|
// admission plugins. The apiserver always runs the validating ones
|
||||||
// after all the mutating ones, so their relative order in this list
|
// after all the mutating ones, so their relative order in this list
|
||||||
|
@ -147,7 +150,7 @@ func (a *AdmissionOptions) ApplyTo(
|
||||||
pluginInitializers = append(pluginInitializers, genericInitializer)
|
pluginInitializers = append(pluginInitializers, genericInitializer)
|
||||||
initializersChain = append(initializersChain, pluginInitializers...)
|
initializersChain = append(initializersChain, pluginInitializers...)
|
||||||
|
|
||||||
admissionChain, err := a.Plugins.NewFromPlugins(pluginNames, pluginsConfigProvider, initializersChain, admission.DecoratorFunc(admissionmetrics.WithControllerMetrics))
|
admissionChain, err := a.Plugins.NewFromPlugins(pluginNames, pluginsConfigProvider, initializersChain, a.Decorators)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue