Skip to content

Commit ddedeb5

Browse files
committed
make runtime-config kube-compatible
1 parent 4385e40 commit ddedeb5

File tree

4 files changed

+22
-11
lines changed

4 files changed

+22
-11
lines changed

pkg/cmd/server/apis/config/helpers.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,10 +475,11 @@ func GetKubeAPIServerFlagAPIEnablement(flagValue []string) map[schema.GroupVersi
475475
versions := map[schema.GroupVersion]bool{}
476476
for _, val := range flagValue {
477477
// skip bad flags
478-
if !strings.HasPrefix(val, "apis/") {
478+
if strings.HasPrefix(val, "api/") {
479479
continue
480480
}
481-
tokens := strings.Split(val[len("apis/"):], "=")
481+
val = strings.TrimPrefix(val, "apis/")
482+
tokens := strings.Split(val, "=")
482483
if len(tokens) != 2 {
483484
continue
484485
}

pkg/cmd/server/apis/config/helpers_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ func TestGetKubeAPIServerFlagAPIEnablement(t *testing.T) {
1515
}{
1616
{
1717
name: "skip bad",
18-
flagValue: []string{"api/legacy=true", "apis/foobar/is/bad=true", "apis/foo/v1=true=true", "apis/good/v1=false"},
18+
flagValue: []string{"api/legacy=true", "foobar/is/bad=true", "foo/v1=true=true", "good/v1=false"},
1919
expected: map[schema.GroupVersion]bool{
2020
{Group: "good", Version: "v1"}: false,
2121
},
2222
},
2323
{
2424
name: "good",
25-
flagValue: []string{"apis/good/v2=true", "apis/good/v1=false"},
25+
flagValue: []string{"good/v2=true", "good/v1=false"},
2626
expected: map[schema.GroupVersion]bool{
2727
{Group: "good", Version: "v1"}: false,
2828
{Group: "good", Version: "v2"}: true,
@@ -51,20 +51,20 @@ func TestGetEnabledAPIVersionsForGroup(t *testing.T) {
5151
{
5252
name: "enable unknown from flag",
5353
apiGroup: "good",
54-
flagValue: []string{"apis/good/v2=true", "apis/good/v1=false"},
54+
flagValue: []string{"good/v2=true", "good/v1=false"},
5555
expected: []string{"v2"},
5656
},
5757
{
5858
name: "enable from flag, disabled by disable",
5959
apiGroup: "good",
6060
disabledAPIGroupVersions: map[string][]string{"good": {"v2"}},
61-
flagValue: []string{"apis/good/v2=true", "apis/good/v1=false"},
61+
flagValue: []string{"good/v2=true", "good/v1=false"},
6262
expected: []string{},
6363
},
6464
{
6565
name: "enable by default, disable by flag",
6666
apiGroup: "batch",
67-
flagValue: []string{"apis/batch/v1=false"},
67+
flagValue: []string{"batch/v1=false"},
6868
expected: []string{"v1beta1", "v2alpha1"},
6969
},
7070
{
@@ -75,7 +75,7 @@ func TestGetEnabledAPIVersionsForGroup(t *testing.T) {
7575
{
7676
name: "enable settings",
7777
apiGroup: "settings.k8s.io",
78-
flagValue: []string{"apis/settings.k8s.io/v1alpha1=true"},
78+
flagValue: []string{"settings.k8s.io/v1alpha1=true"},
7979
expected: []string{"v1alpha1"},
8080
},
8181
}
@@ -108,20 +108,20 @@ func TestGetDisabledAPIVersionsForGroup(t *testing.T) {
108108
{
109109
name: "enable unknown from flag",
110110
apiGroup: "good",
111-
flagValue: []string{"apis/good/v2=true", "apis/good/v1=false"},
111+
flagValue: []string{"good/v2=true", "good/v1=false"},
112112
expected: []string{"v1"},
113113
},
114114
{
115115
name: "enable from flag, disabled by disable",
116116
apiGroup: "good",
117117
disabledAPIGroupVersions: map[string][]string{"good": {"v2"}},
118-
flagValue: []string{"apis/good/v2=true", "apis/good/v1=false"},
118+
flagValue: []string{"good/v2=true", "good/v1=false"},
119119
expected: []string{"v1", "v2"},
120120
},
121121
{
122122
name: "enable by default, disable by flag",
123123
apiGroup: "batch",
124-
flagValue: []string{"apis/batch/v1=false"},
124+
flagValue: []string{"batch/v1=false"},
125125
expected: []string{"v1"},
126126
},
127127
{

pkg/cmd/server/apis/config/validation/master.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,12 @@ func ValidateAPIServerExtendedArguments(config configapi.ExtendedArguments, fldP
652652

653653
validationResults.AddErrors(ValidateExtendedArguments(config, apiserveroptions.NewServerRunOptions().AddFlags, fldPath)...)
654654

655+
for i, key := range config["runtime-config"] {
656+
if strings.HasPrefix(key, "apis/") {
657+
validationResults.AddWarnings(field.Invalid(fldPath.Key("runtime-config").Index(i), key, "remove the apis/ prefix"))
658+
}
659+
}
660+
655661
if len(config["admission-control"]) > 0 {
656662
validationResults.AddWarnings(field.Invalid(fldPath.Key("admission-control"), config["admission-control"], "specified admission ordering is being phased out. Convert to DefaultAdmissionConfig in admissionConfig.pluginConfig."))
657663
}

pkg/cmd/server/kubernetes/master/master_config.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
176176
for k, v := range masterConfig.KubernetesMasterConfig.APIServerArguments {
177177
args[k] = v
178178
}
179+
// fixup 'apis/' prefixed args
180+
for i, key := range args["runtime-config"] {
181+
args["runtime-config"][i] = strings.TrimPrefix(key, "apis/")
182+
}
179183
if masterConfig.AuditConfig.Enabled {
180184
if existing, ok := args["feature-gates"]; ok {
181185
args["feature-gates"] = []string{existing[0] + ",AdvancedAuditing=true"}

0 commit comments

Comments
 (0)