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
pull/6/head
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.
allAPIFlagValue, ok := overrides["api/all"]
if ok && allAPIFlagValue == "false" {
// Disable all group versions.
for _, groupVersion := range registered.RegisteredGroupVersions() {
if resourceConfig.AnyResourcesForVersionEnabled(groupVersion) {
resourceConfig.DisableVersions(groupVersion)
}
if ok {
if allAPIFlagValue == "false" {
// Disable all group versions.
resourceConfig.DisableVersions(registered.RegisteredGroupVersions()...)
} else if allAPIFlagValue == "true" {
resourceConfig.EnableVersions(registered.RegisteredGroupVersions()...)
}
}

View File

@ -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)
}
}
}