Merge pull request #124826 from mjudeikis/mjudeikis/plugins.move.to.generics
Move to generics for sets in kubeapiserver plugins
This commit is contained in:
		| @@ -141,8 +141,8 @@ func RegisterAllAdmissionPlugins(plugins *admission.Plugins) { | ||||
| } | ||||
|  | ||||
| // DefaultOffAdmissionPlugins get admission plugins off by default for kube-apiserver. | ||||
| func DefaultOffAdmissionPlugins() sets.String { | ||||
| 	defaultOnPlugins := sets.NewString( | ||||
| func DefaultOffAdmissionPlugins() sets.Set[string] { | ||||
| 	defaultOnPlugins := sets.New( | ||||
| 		lifecycle.PluginName,                    // NamespaceLifecycle | ||||
| 		limitranger.PluginName,                  // LimitRanger | ||||
| 		serviceaccount.PluginName,               // ServiceAccount | ||||
| @@ -165,5 +165,5 @@ func DefaultOffAdmissionPlugins() sets.String { | ||||
| 		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 []string | ||||
| 	// 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 []string | ||||
| @@ -91,7 +91,7 @@ func NewAdmissionOptions() *AdmissionOptions { | ||||
| 		// after all the mutating ones, so their relative order in this list | ||||
| 		// doesn't matter. | ||||
| 		RecommendedPluginOrder: []string{lifecycle.PluginName, mutatingwebhook.PluginName, validatingadmissionpolicy.PluginName, validatingwebhook.PluginName}, | ||||
| 		DefaultOffPlugins:      sets.NewString(), | ||||
| 		DefaultOffPlugins:      sets.Set[string]{}, | ||||
| 	} | ||||
| 	server.RegisterAllAdmissionPlugins(options.Plugins) | ||||
| 	return options | ||||
| @@ -226,7 +226,7 @@ func (a *AdmissionOptions) Validate() []error { | ||||
| // EnablePlugins, DisablePlugins fields | ||||
| // to prepare a list of ordered plugin names that are enabled. | ||||
| 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...) | ||||
| 	enabledPlugins := sets.NewString(a.EnablePlugins...) | ||||
| 	disabledPlugins = disabledPlugins.Difference(enabledPlugins) | ||||
|   | ||||
| @@ -28,7 +28,7 @@ import ( | ||||
| func TestEnabledPluginNames(t *testing.T) { | ||||
| 	scenarios := []struct { | ||||
| 		expectedPluginNames       []string | ||||
| 		setDefaultOffPlugins      sets.String | ||||
| 		setDefaultOffPlugins      sets.Set[string] | ||||
| 		setRecommendedPluginOrder []string | ||||
| 		setEnablePlugins          []string | ||||
| 		setDisablePlugins         []string | ||||
| @@ -43,21 +43,21 @@ func TestEnabledPluginNames(t *testing.T) { | ||||
| 		{ | ||||
| 			expectedPluginNames:       []string{"pluginB"}, | ||||
| 			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 | ||||
| 		{ | ||||
| 			expectedPluginNames:       []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 | ||||
| 		{ | ||||
| 			expectedPluginNames:       []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"}, | ||||
| 		}, | ||||
|  | ||||
| @@ -65,7 +65,7 @@ func TestEnabledPluginNames(t *testing.T) { | ||||
| 		{ | ||||
| 			expectedPluginNames:       []string{"pluginB"}, | ||||
| 			setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"}, | ||||
| 			setDefaultOffPlugins:      sets.NewString("pluginC", "pluginD"), | ||||
| 			setDefaultOffPlugins:      sets.New("pluginC", "pluginD"), | ||||
| 			setDisablePlugins:         []string{"pluginA"}, | ||||
| 		}, | ||||
|  | ||||
| @@ -73,7 +73,7 @@ func TestEnabledPluginNames(t *testing.T) { | ||||
| 		{ | ||||
| 			expectedPluginNames:       []string{"pluginA", "pluginC"}, | ||||
| 			setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"}, | ||||
| 			setDefaultOffPlugins:      sets.NewString("pluginC", "pluginD"), | ||||
| 			setDefaultOffPlugins:      sets.New("pluginC", "pluginD"), | ||||
| 			setEnablePlugins:          []string{"pluginC"}, | ||||
| 			setDisablePlugins:         []string{"pluginB"}, | ||||
| 		}, | ||||
| @@ -82,7 +82,7 @@ func TestEnabledPluginNames(t *testing.T) { | ||||
| 		{ | ||||
| 			expectedPluginNames:       []string{"pluginA", "pluginB", "pluginC"}, | ||||
| 			setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"}, | ||||
| 			setDefaultOffPlugins:      sets.NewString("pluginD"), | ||||
| 			setDefaultOffPlugins:      sets.New("pluginD"), | ||||
| 			setAdmissionControl:       []string{"pluginA", "pluginB"}, | ||||
| 		}, | ||||
|  | ||||
| @@ -90,7 +90,7 @@ func TestEnabledPluginNames(t *testing.T) { | ||||
| 		{ | ||||
| 			expectedPluginNames:       []string{"pluginA", "pluginB", "pluginC"}, | ||||
| 			setRecommendedPluginOrder: []string{"pluginA", "pluginB", "pluginC", "pluginD"}, | ||||
| 			setDefaultOffPlugins:      sets.NewString("pluginC", "pluginD"), | ||||
| 			setDefaultOffPlugins:      sets.New("pluginC", "pluginD"), | ||||
| 			setAdmissionControl:       []string{"pluginA", "pluginB", "pluginC"}, | ||||
| 		}, | ||||
| 	} | ||||
| @@ -208,7 +208,7 @@ func TestValidate(t *testing.T) { | ||||
| 	for index, scenario := range scenarios { | ||||
| 		t.Run(fmt.Sprintf("scenario %d", index), func(t *testing.T) { | ||||
| 			options := NewAdmissionOptions() | ||||
| 			options.DefaultOffPlugins = sets.NewString("pluginC", "pluginD") | ||||
| 			options.DefaultOffPlugins = sets.New("pluginC", "pluginD") | ||||
| 			options.RecommendedPluginOrder = []string{"pluginA", "pluginB", "pluginC", "pluginD"} | ||||
| 			options.Plugins = &admission.Plugins{} | ||||
| 			for _, plugin := range options.RecommendedPluginOrder { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Prow Robot
					Kubernetes Prow Robot