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:
Jeff Lowdermilk 2016-09-12 17:17:56 -07:00
parent 115855bbd2
commit e85f8d700c
2 changed files with 37 additions and 7 deletions

View File

@ -70,12 +70,12 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *ResourceConfig, resourceC
// "api/all=false" allows users to selectively enable specific api versions. // "api/all=false" allows users to selectively enable specific api versions.
allAPIFlagValue, ok := overrides["api/all"] allAPIFlagValue, ok := overrides["api/all"]
if ok && allAPIFlagValue == "false" { if ok {
// Disable all group versions. if allAPIFlagValue == "false" {
for _, groupVersion := range registered.RegisteredGroupVersions() { // Disable all group versions.
if resourceConfig.AnyResourcesForVersionEnabled(groupVersion) { resourceConfig.DisableVersions(registered.RegisteredGroupVersions()...)
resourceConfig.DisableVersions(groupVersion) } else if allAPIFlagValue == "true" {
} resourceConfig.EnableVersions(registered.RegisteredGroupVersions()...)
} }
} }

View File

@ -22,6 +22,7 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/unversioned"
apiv1 "k8s.io/kubernetes/pkg/api/v1" apiv1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/apimachinery/registered"
extensionsapiv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensionsapiv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
) )
@ -159,6 +160,36 @@ func TestParseRuntimeConfig(t *testing.T) {
}, },
err: true, 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 { for _, test := range testCases {
actualDisablers, err := mergeAPIResourceConfigs(test.defaultResourceConfig(), test.runtimeConfig) 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) t.Fatalf("%v: unexpected apiResourceDisablers. Actual: %v\n expected: %v", test.runtimeConfig, actualDisablers, expectedConfig)
} }
} }
} }