Review feedback

pull/2052/head
Matt Rickard 2017-10-17 10:08:07 -07:00
parent 1a38ef74b2
commit 37456d22e0
3 changed files with 2 additions and 87 deletions

View File

@ -302,23 +302,6 @@ sudo systemctl start kubelet
return nil
}
func parseFeatureGates(featureGates string) (map[string]string, error) {
if featureGates == "" {
return nil, nil
}
fgMap := map[string]string{}
fg := strings.Split(featureGates, ",")
for _, f := range fg {
kv := strings.SplitN(f, "=", 2)
if len(kv) != 2 {
return nil, fmt.Errorf("Invalid feature gate format: %s", f)
}
fgMap[kv[0]] = kv[1]
}
return fgMap, nil
}
func generateConfig(k8s bootstrapper.KubernetesConfig) (string, error) {
version, err := ParseKubernetesVersion(k8s.KubernetesVersion)
if err != nil {

View File

@ -17,7 +17,6 @@ limitations under the License.
package kubeadm
import (
"reflect"
"testing"
"k8s.io/minikube/pkg/minikube/bootstrapper"
@ -233,54 +232,3 @@ schedulerExtraArgs:
})
}
}
func TestParseFeatureGates(t *testing.T) {
tests := []struct {
description string
fg string
expected map[string]string
shouldErr bool
}{
{
description: "no feature gates",
},
{
description: "one feature gate",
fg: "AppArmor=true",
expected: map[string]string{
"AppArmor": "true",
},
},
{
description: "two feature gates",
fg: "AppArmor=true,HugePages=true",
expected: map[string]string{
"AppArmor": "true",
"HugePages": "true",
},
},
{
description: "missing value pair",
fg: "AppArmor=true,HugePages",
shouldErr: true,
},
}
for _, test := range tests {
t.Run(test.description, func(t *testing.T) {
actual, err := parseFeatureGates(test.fg)
t.Logf("%+v", actual)
if err == nil && test.shouldErr {
t.Errorf("Expected error but got none: fg: %v", actual)
return
}
if err != nil && !test.shouldErr {
t.Errorf("Unexpected error: %s", err)
return
}
if !reflect.DeepEqual(actual, test.expected) {
t.Errorf("Actual not equal expected: Actual: %v Expected: %v", actual, test.expected)
}
})
}
}

View File

@ -40,31 +40,15 @@ nodeName: {{.NodeName}}
{{$val}}{{end}}
{{end}}`))
var kubeletSystemdTemplate = template.Must(template.New("kubeletSystemdTemplate").Funcs(template.FuncMap{
"installWants": installWants,
}).Parse(`
var kubeletSystemdTemplate = template.Must(template.New("kubeletSystemdTemplate").Parse(`
[Service]
ExecStart=
ExecStart=/usr/bin/kubelet {{.ExtraOptions}} {{if .FeatureGates}}--feature-gates={{.FeatureGates}}{{end}}
[Install]
{{installWants .ContainerRuntime}}
{{if or (eq .ContainerRuntime "cri-o") (eq .ContainerRuntime "cri")}}Wants=crio.service{{else}}Wants=docker.socket{{end}}
`))
func installWants(containerRuntime string) string {
var wants string
switch containerRuntime {
case "":
wants = "docker.socket"
case "cri-o", "cri":
wants = "crio.service"
}
if wants != "" {
return fmt.Sprintf("Wants=%s", wants)
}
return ""
}
const kubeletService = `
[Unit]
Description=kubelet: The Kubernetes Node Agent