mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Merge pull request #124826 from mjudeikis/mjudeikis/plugins.move.to.generics
Move to generics for sets in kubeapiserver plugins
This commit is contained in:
commit
4f04dffe5b
@ -141,8 +141,8 @@ func RegisterAllAdmissionPlugins(plugins *admission.Plugins) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DefaultOffAdmissionPlugins get admission plugins off by default for kube-apiserver.
|
// DefaultOffAdmissionPlugins get admission plugins off by default for kube-apiserver.
|
||||||
func DefaultOffAdmissionPlugins() sets.String {
|
func DefaultOffAdmissionPlugins() sets.Set[string] {
|
||||||
defaultOnPlugins := sets.NewString(
|
defaultOnPlugins := sets.New(
|
||||||
lifecycle.PluginName, // NamespaceLifecycle
|
lifecycle.PluginName, // NamespaceLifecycle
|
||||||
limitranger.PluginName, // LimitRanger
|
limitranger.PluginName, // LimitRanger
|
||||||
serviceaccount.PluginName, // ServiceAccount
|
serviceaccount.PluginName, // ServiceAccount
|
||||||
@ -165,5 +165,5 @@ func DefaultOffAdmissionPlugins() sets.String {
|
|||||||
validatingadmissionpolicy.PluginName, // ValidatingAdmissionPolicy, only active when feature gate ValidatingAdmissionPolicy is enabled
|
validatingadmissionpolicy.PluginName, // ValidatingAdmissionPolicy, only active when feature gate ValidatingAdmissionPolicy is enabled
|
||||||
)
|
)
|
||||||
|
|
||||||
return sets.NewString(AllOrderedPlugins...).Difference(defaultOnPlugins)
|
return sets.New(AllOrderedPlugins...).Difference(defaultOnPlugins)
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ type AdmissionOptions struct {
|
|||||||
// RecommendedPluginOrder holds an ordered list of plugin names we recommend to use by default
|
// RecommendedPluginOrder holds an ordered list of plugin names we recommend to use by default
|
||||||
RecommendedPluginOrder []string
|
RecommendedPluginOrder []string
|
||||||
// DefaultOffPlugins is a set of plugin names that is disabled by default
|
// DefaultOffPlugins is a set of plugin names that is disabled by default
|
||||||
DefaultOffPlugins sets.String
|
DefaultOffPlugins sets.Set[string]
|
||||||
|
|
||||||
// EnablePlugins indicates plugins to be enabled passed through `--enable-admission-plugins`.
|
// EnablePlugins indicates plugins to be enabled passed through `--enable-admission-plugins`.
|
||||||
EnablePlugins []string
|
EnablePlugins []string
|
||||||
@ -91,7 +91,7 @@ func NewAdmissionOptions() *AdmissionOptions {
|
|||||||
// after all the mutating ones, so their relative order in this list
|
// after all the mutating ones, so their relative order in this list
|
||||||
// doesn't matter.
|
// doesn't matter.
|
||||||
RecommendedPluginOrder: []string{lifecycle.PluginName, mutatingwebhook.PluginName, validatingadmissionpolicy.PluginName, validatingwebhook.PluginName},
|
RecommendedPluginOrder: []string{lifecycle.PluginName, mutatingwebhook.PluginName, validatingadmissionpolicy.PluginName, validatingwebhook.PluginName},
|
||||||
DefaultOffPlugins: sets.NewString(),
|
DefaultOffPlugins: sets.Set[string]{},
|
||||||
}
|
}
|
||||||
server.RegisterAllAdmissionPlugins(options.Plugins)
|
server.RegisterAllAdmissionPlugins(options.Plugins)
|
||||||
return options
|
return options
|
||||||
@ -226,7 +226,7 @@ func (a *AdmissionOptions) Validate() []error {
|
|||||||
// EnablePlugins, DisablePlugins fields
|
// EnablePlugins, DisablePlugins fields
|
||||||
// to prepare a list of ordered plugin names that are enabled.
|
// to prepare a list of ordered plugin names that are enabled.
|
||||||
func (a *AdmissionOptions) enabledPluginNames() []string {
|
func (a *AdmissionOptions) enabledPluginNames() []string {
|
||||||
allOffPlugins := append(a.DefaultOffPlugins.List(), a.DisablePlugins...)
|
allOffPlugins := append(sets.List[string](a.DefaultOffPlugins), a.DisablePlugins...)
|
||||||
disabledPlugins := sets.NewString(allOffPlugins...)
|
disabledPlugins := sets.NewString(allOffPlugins...)
|
||||||
enabledPlugins := sets.NewString(a.EnablePlugins...)
|
enabledPlugins := sets.NewString(a.EnablePlugins...)
|
||||||
disabledPlugins = disabledPlugins.Difference(enabledPlugins)
|
disabledPlugins = disabledPlugins.Difference(enabledPlugins)
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
func TestEnabledPluginNames(t *testing.T) {
|
func TestEnabledPluginNames(t *testing.T) {
|
||||||
scenarios := []struct {
|
scenarios := []struct {
|
||||||
expectedPluginNames []string
|
expectedPluginNames []string
|
||||||
setDefaultOffPlugins sets.String
|
setDefaultOffPlugins sets.Set[string]
|
||||||
setRecommendedPluginOrder []string
|
setRecommendedPluginOrder []string
|
||||||
setEnablePlugins []string
|
setEnablePlugins []string
|
||||||
setDisablePlugins []string
|
setDisablePlugins []string
|
||||||
@ -43,21 +43,21 @@ func TestEnabledPluginNames(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginB"},
|
expectedPluginNames: []string{"pluginB"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginA", "pluginC", "pluginD"),
|
setDefaultOffPlugins: sets.New("pluginA", "pluginC", "pluginD"),
|
||||||
},
|
},
|
||||||
|
|
||||||
// scenario 2: use default off plugins and with RecommendedPluginOrder
|
// scenario 2: use default off plugins and with RecommendedPluginOrder
|
||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString(),
|
setDefaultOffPlugins: sets.Set[string]{},
|
||||||
},
|
},
|
||||||
|
|
||||||
// scenario 3: use default off plugins and specified by enable-admission-plugins with RecommendedPluginOrder
|
// scenario 3: use default off plugins and specified by enable-admission-plugins with RecommendedPluginOrder
|
||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginC", "pluginD"),
|
setDefaultOffPlugins: sets.New("pluginC", "pluginD"),
|
||||||
setEnablePlugins: []string{"pluginD", "pluginC"},
|
setEnablePlugins: []string{"pluginD", "pluginC"},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ func TestEnabledPluginNames(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginB"},
|
expectedPluginNames: []string{"pluginB"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginC", "pluginD"),
|
setDefaultOffPlugins: sets.New("pluginC", "pluginD"),
|
||||||
setDisablePlugins: []string{"pluginA"},
|
setDisablePlugins: []string{"pluginA"},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ func TestEnabledPluginNames(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginA", "pluginC"},
|
expectedPluginNames: []string{"pluginA", "pluginC"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginC", "pluginD"),
|
setDefaultOffPlugins: sets.New("pluginC", "pluginD"),
|
||||||
setEnablePlugins: []string{"pluginC"},
|
setEnablePlugins: []string{"pluginC"},
|
||||||
setDisablePlugins: []string{"pluginB"},
|
setDisablePlugins: []string{"pluginB"},
|
||||||
},
|
},
|
||||||
@ -82,7 +82,7 @@ func TestEnabledPluginNames(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC"},
|
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginD"),
|
setDefaultOffPlugins: sets.New("pluginD"),
|
||||||
setAdmissionControl: []string{"pluginA", "pluginB"},
|
setAdmissionControl: []string{"pluginA", "pluginB"},
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ func TestEnabledPluginNames(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC"},
|
expectedPluginNames: []string{"pluginA", "pluginB", "pluginC"},
|
||||||
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"},
|
||||||
setDefaultOffPlugins: sets.NewString("pluginC", "pluginD"),
|
setDefaultOffPlugins: sets.New("pluginC", "pluginD"),
|
||||||
setAdmissionControl: []string{"pluginA", "pluginB", "pluginC"},
|
setAdmissionControl: []string{"pluginA", "pluginB", "pluginC"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -208,7 +208,7 @@ func TestValidate(t *testing.T) {
|
|||||||
for index, scenario := range scenarios {
|
for index, scenario := range scenarios {
|
||||||
t.Run(fmt.Sprintf("scenario %d", index), func(t *testing.T) {
|
t.Run(fmt.Sprintf("scenario %d", index), func(t *testing.T) {
|
||||||
options := NewAdmissionOptions()
|
options := NewAdmissionOptions()
|
||||||
options.DefaultOffPlugins = sets.NewString("pluginC", "pluginD")
|
options.DefaultOffPlugins = sets.New("pluginC", "pluginD")
|
||||||
options.RecommendedPluginOrder = []string{"pluginA", "pluginB", "pluginC", "pluginD"}
|
options.RecommendedPluginOrder = []string{"pluginA", "pluginB", "pluginC", "pluginD"}
|
||||||
options.Plugins = &admission.Plugins{}
|
options.Plugins = &admission.Plugins{}
|
||||||
for _, plugin := range options.RecommendedPluginOrder {
|
for _, plugin := range options.RecommendedPluginOrder {
|
||||||
|
Loading…
Reference in New Issue
Block a user