make --runtime-config=api/all=true|false work
Currently, only api/all=false does something (disables all groups that have resources). Make api/all=false disable all groups (not just those with resources), and make api/all=true enable all groups
This commit is contained in:
		| @@ -70,12 +70,12 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *ResourceConfig, resourceC | ||||
|  | ||||
| 	// "api/all=false" allows users to selectively enable specific api versions. | ||||
| 	allAPIFlagValue, ok := overrides["api/all"] | ||||
| 	if ok && allAPIFlagValue == "false" { | ||||
| 	if ok { | ||||
| 		if allAPIFlagValue == "false" { | ||||
| 			// Disable all group versions. | ||||
| 		for _, groupVersion := range registered.RegisteredGroupVersions() { | ||||
| 			if resourceConfig.AnyResourcesForVersionEnabled(groupVersion) { | ||||
| 				resourceConfig.DisableVersions(groupVersion) | ||||
| 			} | ||||
| 			resourceConfig.DisableVersions(registered.RegisteredGroupVersions()...) | ||||
| 		} else if allAPIFlagValue == "true" { | ||||
| 			resourceConfig.EnableVersions(registered.RegisteredGroupVersions()...) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -22,6 +22,7 @@ import ( | ||||
|  | ||||
| 	"k8s.io/kubernetes/pkg/api/unversioned" | ||||
| 	apiv1 "k8s.io/kubernetes/pkg/api/v1" | ||||
| 	"k8s.io/kubernetes/pkg/apimachinery/registered" | ||||
| 	extensionsapiv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||
| ) | ||||
|  | ||||
| @@ -159,6 +160,36 @@ func TestParseRuntimeConfig(t *testing.T) { | ||||
| 			}, | ||||
| 			err: true, | ||||
| 		}, | ||||
| 		{ | ||||
| 			// enable all | ||||
| 			runtimeConfig: map[string]string{ | ||||
| 				"api/all": "true", | ||||
| 			}, | ||||
| 			defaultResourceConfig: func() *ResourceConfig { | ||||
| 				return NewResourceConfig() | ||||
| 			}, | ||||
| 			expectedAPIConfig: func() *ResourceConfig { | ||||
| 				config := NewResourceConfig() | ||||
| 				config.EnableVersions(registered.RegisteredGroupVersions()...) | ||||
| 				return config | ||||
| 			}, | ||||
| 			err: false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			// disable all | ||||
| 			runtimeConfig: map[string]string{ | ||||
| 				"api/all": "false", | ||||
| 			}, | ||||
| 			defaultResourceConfig: func() *ResourceConfig { | ||||
| 				return NewResourceConfig() | ||||
| 			}, | ||||
| 			expectedAPIConfig: func() *ResourceConfig { | ||||
| 				config := NewResourceConfig() | ||||
| 				config.DisableVersions(registered.RegisteredGroupVersions()...) | ||||
| 				return config | ||||
| 			}, | ||||
| 			err: false, | ||||
| 		}, | ||||
| 	} | ||||
| 	for _, test := range testCases { | ||||
| 		actualDisablers, err := mergeAPIResourceConfigs(test.defaultResourceConfig(), test.runtimeConfig) | ||||
| @@ -173,5 +204,4 @@ func TestParseRuntimeConfig(t *testing.T) { | ||||
| 			t.Fatalf("%v: unexpected apiResourceDisablers. Actual: %v\n expected: %v", test.runtimeConfig, actualDisablers, expectedConfig) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jeff Lowdermilk
					Jeff Lowdermilk