fix up tests for new config format

pull/6318/head
Sharif Elgamal 2020-01-22 18:49:58 -08:00
parent 8b2a05a565
commit d7ea60d610
4 changed files with 103 additions and 55 deletions

View File

@ -54,7 +54,11 @@ func GenerateKubeadmYAML(mc config.MachineConfig, r cruntime.Manager) ([]byte, e
}
// In case of no port assigned, use default
nodePort := mc.Nodes[0].Port
master, err := config.GetMasterNode(mc)
if err != nil {
return nil, errors.Wrap(err, "getting master node")
}
nodePort := master.Port
if nodePort <= 0 {
nodePort = constants.APIServerPort
}
@ -78,11 +82,11 @@ func GenerateKubeadmYAML(mc config.MachineConfig, r cruntime.Manager) ([]byte, e
CertDir: vmpath.GuestCertsDir,
ServiceCIDR: constants.DefaultServiceCIDR,
PodSubnet: k8s.ExtraOptions.Get("pod-network-cidr", Kubeadm),
AdvertiseAddress: mc.Nodes[0].IP,
AdvertiseAddress: master.IP,
APIServerPort: nodePort,
KubernetesVersion: k8s.KubernetesVersion,
EtcdDataDir: EtcdDataDir(),
NodeName: mc.Nodes[0].Name,
NodeName: master.Name,
CRISocket: r.SocketPath(),
ImageRepository: k8s.ImageRepository,
ExtraArgs: extraComponentConfig,

View File

@ -106,9 +106,9 @@ func TestGenerateKubeadmYAMLDNS(t *testing.T) {
name string
runtime string
shouldErr bool
cfg config.KubernetesConfig
cfg config.MachineConfig
}{
{"dns", "docker", false, config.KubernetesConfig{DNSDomain: "1.1.1.1"}},
{"dns", "docker", false, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{DNSDomain: "1.1.1.1"}}},
}
for _, version := range versions {
for _, tc := range tests {
@ -119,9 +119,13 @@ func TestGenerateKubeadmYAMLDNS(t *testing.T) {
tname := tc.name + "_" + version
t.Run(tname, func(t *testing.T) {
cfg := tc.cfg
cfg.NodeIP = "1.1.1.1"
cfg.NodeName = "mk"
cfg.KubernetesVersion = version + ".0"
cfg.Nodes = []config.Node{
config.Node{
IP: "1.1.1.1",
Name: "mk",
},
}
cfg.KubernetesConfig.KubernetesVersion = version + ".0"
got, err := GenerateKubeadmYAML(cfg, runtime)
if err != nil && !tc.shouldErr {
@ -166,17 +170,17 @@ func TestGenerateKubeadmYAML(t *testing.T) {
name string
runtime string
shouldErr bool
cfg config.KubernetesConfig
cfg config.MachineConfig
}{
{"default", "docker", false, config.KubernetesConfig{}},
{"containerd", "containerd", false, config.KubernetesConfig{}},
{"crio", "crio", false, config.KubernetesConfig{}},
{"options", "docker", false, config.KubernetesConfig{ExtraOptions: extraOpts}},
{"crio-options-gates", "crio", false, config.KubernetesConfig{ExtraOptions: extraOpts, FeatureGates: "a=b"}},
{"unknown-component", "docker", true, config.KubernetesConfig{ExtraOptions: config.ExtraOptionSlice{config.ExtraOption{Component: "not-a-real-component", Key: "killswitch", Value: "true"}}}},
{"containerd-api-port", "containerd", false, config.KubernetesConfig{NodePort: 12345}},
{"containerd-pod-network-cidr", "containerd", false, config.KubernetesConfig{ExtraOptions: extraOptsPodCidr}},
{"image-repository", "docker", false, config.KubernetesConfig{ImageRepository: "test/repo"}},
{"default", "docker", false, config.MachineConfig{}},
{"containerd", "containerd", false, config.MachineConfig{}},
{"crio", "crio", false, config.MachineConfig{}},
{"options", "docker", false, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{ExtraOptions: extraOpts}}},
{"crio-options-gates", "crio", false, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{ExtraOptions: extraOpts, FeatureGates: "a=b"}}},
{"unknown-component", "docker", true, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{ExtraOptions: config.ExtraOptionSlice{config.ExtraOption{Component: "not-a-real-component", Key: "killswitch", Value: "true"}}}}},
{"containerd-api-port", "containerd", false, config.MachineConfig{Nodes: []config.Node{config.Node{Port: 12345}}}},
{"containerd-pod-network-cidr", "containerd", false, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{ExtraOptions: extraOptsPodCidr}}},
{"image-repository", "docker", false, config.MachineConfig{KubernetesConfig: config.KubernetesConfig{ImageRepository: "test/repo"}}},
}
for _, version := range versions {
for _, tc := range tests {
@ -187,9 +191,19 @@ func TestGenerateKubeadmYAML(t *testing.T) {
tname := tc.name + "_" + version
t.Run(tname, func(t *testing.T) {
cfg := tc.cfg
cfg.NodeIP = "1.1.1.1"
cfg.NodeName = "mk"
cfg.KubernetesVersion = version + ".0"
if len(cfg.Nodes) > 0 {
cfg.Nodes[0].IP = "1.1.1.1"
cfg.Nodes[0].Name = "mk"
} else {
cfg.Nodes = []config.Node{
config.Node{
IP: "1.1.1.1",
Name: "mk",
},
}
}
cfg.KubernetesConfig.KubernetesVersion = version + ".0"
got, err := GenerateKubeadmYAML(cfg, runtime)
if err != nil && !tc.shouldErr {

View File

@ -30,17 +30,23 @@ import (
func TestGenerateKubeletConfig(t *testing.T) {
tests := []struct {
description string
cfg config.KubernetesConfig
cfg config.MachineConfig
expected string
shouldErr bool
}{
{
description: "old docker",
cfg: config.KubernetesConfig{
NodeIP: "192.168.1.100",
KubernetesVersion: constants.OldestKubernetesVersion,
NodeName: "minikube",
ContainerRuntime: "docker",
cfg: config.MachineConfig{
KubernetesConfig: config.KubernetesConfig{
KubernetesVersion: constants.OldestKubernetesVersion,
ContainerRuntime: "docker",
},
Nodes: []config.Node{
config.Node{
IP: "192.168.1.100",
Name: "minikube",
},
},
},
expected: `[Unit]
Wants=docker.socket
@ -54,11 +60,17 @@ ExecStart=/var/lib/minikube/binaries/v1.11.10/kubelet --allow-privileged=true --
},
{
description: "newest cri runtime",
cfg: config.KubernetesConfig{
NodeIP: "192.168.1.100",
KubernetesVersion: constants.NewestKubernetesVersion,
NodeName: "minikube",
ContainerRuntime: "cri-o",
cfg: config.MachineConfig{
KubernetesConfig: config.KubernetesConfig{
KubernetesVersion: constants.NewestKubernetesVersion,
ContainerRuntime: "cri-o",
},
Nodes: []config.Node{
config.Node{
IP: "192.168.1.100",
Name: "minikube",
},
},
},
expected: `[Unit]
Wants=crio.service
@ -72,11 +84,17 @@ ExecStart=/var/lib/minikube/binaries/v1.17.0/kubelet --authorization-mode=Webhoo
},
{
description: "default containerd runtime",
cfg: config.KubernetesConfig{
NodeIP: "192.168.1.100",
KubernetesVersion: constants.DefaultKubernetesVersion,
NodeName: "minikube",
ContainerRuntime: "containerd",
cfg: config.MachineConfig{
KubernetesConfig: config.KubernetesConfig{
KubernetesVersion: constants.DefaultKubernetesVersion,
ContainerRuntime: "containerd",
},
Nodes: []config.Node{
config.Node{
IP: "192.168.1.100",
Name: "minikube",
},
},
},
expected: `[Unit]
Wants=containerd.service
@ -90,16 +108,22 @@ ExecStart=/var/lib/minikube/binaries/v1.17.0/kubelet --authorization-mode=Webhoo
},
{
description: "default containerd runtime",
cfg: config.KubernetesConfig{
NodeIP: "192.168.1.100",
KubernetesVersion: constants.DefaultKubernetesVersion,
NodeName: "minikube",
ContainerRuntime: "containerd",
ExtraOptions: config.ExtraOptionSlice{
config.ExtraOption{
Component: Kubelet,
Key: "node-ip",
Value: "192.168.1.200",
cfg: config.MachineConfig{
KubernetesConfig: config.KubernetesConfig{
KubernetesVersion: constants.OldestKubernetesVersion,
ContainerRuntime: "containerd",
ExtraOptions: config.ExtraOptionSlice{
config.ExtraOption{
Component: Kubelet,
Key: "node-ip",
Value: "192.168.1.200",
},
},
},
Nodes: []config.Node{
config.Node{
IP: "192.168.1.100",
Name: "minikube",
},
},
},
@ -115,12 +139,18 @@ ExecStart=/var/lib/minikube/binaries/v1.17.0/kubelet --authorization-mode=Webhoo
},
{
description: "docker with custom image repository",
cfg: config.KubernetesConfig{
NodeIP: "192.168.1.100",
KubernetesVersion: constants.DefaultKubernetesVersion,
NodeName: "minikube",
ContainerRuntime: "docker",
ImageRepository: "docker-proxy-image.io/google_containers",
cfg: config.MachineConfig{
KubernetesConfig: config.KubernetesConfig{
KubernetesVersion: constants.DefaultKubernetesVersion,
ContainerRuntime: "docker",
ImageRepository: "docker-proxy-image.io/google_containers",
},
Nodes: []config.Node{
config.Node{
IP: "192.168.1.100",
Name: "minikube",
},
},
},
expected: `[Unit]
Wants=docker.socket

View File

@ -272,7 +272,7 @@ func (k *Bootstrapper) WaitForCluster(cfg config.MachineConfig, timeout time.Dur
return errors.Wrap(err, "get k8s client")
}
return kverify.SystemPods(c, start, master.IP, master.Port, timeout)
return kverify.SystemPods(c, start, timeout)
}
// restartCluster restarts the Kubernetes cluster configured by kubeadm
@ -327,7 +327,7 @@ func (k *Bootstrapper) restartCluster(cfg config.MachineConfig) error {
return errors.Wrap(err, "getting k8s client")
}
if err := kverify.SystemPods(client, time.Now(), n.IP, n.Port, kconst.DefaultControlPlaneTimeout); err != nil {
if err := kverify.SystemPods(client, time.Now(), kconst.DefaultControlPlaneTimeout); err != nil {
return errors.Wrap(err, "system pods")
}