1
0
mirror of https://github.com/rancher/rke.git synced 2025-07-23 03:22:27 +00:00
rke/services/kubelet_test.go

75 lines
3.7 KiB
Go
Raw Normal View History

2017-12-07 00:40:44 +00:00
package services
import (
"fmt"
"testing"
"github.com/rancher/rke/hosts"
"github.com/rancher/types/apis/management.cattle.io/v3"
)
const (
TestKubeletClusterDomain = "cluster.local"
TestKubeletClusterDNSServer = "10.1.0.3"
TestKubeletInfraContainerImage = "test/test:latest"
TestKubeletImage = "rancher/k8s:latest"
TestKubeletVolumeBind = "/etc/kubernetes:/etc/kubernetes"
TestKubeletExtraArgs = "--foo=bar"
TestClusterDomainPrefix = "--cluster-domain="
TestClusterDNSServerPrefix = "--cluster-dns="
TestInfraContainerImagePrefix = "--pod-infra-container-image="
TestHostnameOverridePrefix = "--hostname-override="
TestKubeletEtcdNodeLabel = "--node-labels=node-role.kubernetes.io/etcd=true"
TestKubeletCPNodeLabel = "--node-labels=node-role.kubernetes.io/master=true"
TestKubeletWorkerNodeLabel = "--node-labels=node-role.kubernetes.io/worker=true"
)
func TestKubeletConfig(t *testing.T) {
host := &hosts.Host{
RKEConfigNode: v3.RKEConfigNode{
Address: "1.1.1.1",
InternalAddress: "1.1.1.1",
Role: []string{"worker", "controlplane", "etcd"},
HostnameOverride: "node1",
},
DClient: nil,
}
kubeletService := v3.KubeletService{}
kubeletService.Image = TestKubeletImage
kubeletService.ClusterDomain = TestKubeletClusterDomain
kubeletService.ClusterDNSServer = TestKubeletClusterDNSServer
kubeletService.InfraContainerImage = TestKubeletInfraContainerImage
kubeletService.ExtraArgs = map[string]string{"foo": "bar"}
imageCfg, hostCfg := buildKubeletConfig(host, kubeletService)
// Test image and host config
assertEqual(t, isStringInSlice(TestClusterDomainPrefix+TestKubeletClusterDomain, imageCfg.Entrypoint), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestClusterDomainPrefix+TestKubeletClusterDomain))
assertEqual(t, isStringInSlice(TestClusterDNSServerPrefix+TestKubeletClusterDNSServer, imageCfg.Entrypoint), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestClusterDNSServerPrefix+TestKubeletClusterDNSServer))
assertEqual(t, isStringInSlice(TestInfraContainerImagePrefix+TestKubeletInfraContainerImage, imageCfg.Entrypoint), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestInfraContainerImagePrefix+TestKubeletInfraContainerImage))
assertEqual(t, TestKubeletImage, imageCfg.Image,
fmt.Sprintf("Failed to verify [%s] as Kubelet Image", TestKubeletImage))
assertEqual(t, isStringInSlice(TestHostnameOverridePrefix+host.HostnameOverride, imageCfg.Entrypoint), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestHostnameOverridePrefix+host.HostnameOverride))
assertEqual(t, isStringInSlice(TestKubeletVolumeBind, hostCfg.Binds), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Volume Binds", TestKubeletVolumeBind))
assertEqual(t, isStringInSlice(TestKubeletExtraArgs, imageCfg.Entrypoint), true,
fmt.Sprintf("Failed to find [%s] in Kubelet extra args", TestKubeletExtraArgs))
assertEqual(t, true, hostCfg.Privileged,
"Failed to verify that Kubelet is privileged")
assertEqual(t, true, hostCfg.PidMode.IsHost(),
"Failed to verify that Kubelet has host PID mode")
assertEqual(t, true, hostCfg.NetworkMode.IsHost(),
"Failed to verify that Kubelet has host Netowrk mode")
assertEqual(t, isStringInSlice(TestKubeletEtcdNodeLabel, imageCfg.Cmd), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestKubeletEtcdNodeLabel))
assertEqual(t, isStringInSlice(TestKubeletCPNodeLabel, imageCfg.Cmd), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestKubeletCPNodeLabel))
assertEqual(t, isStringInSlice(TestKubeletWorkerNodeLabel, imageCfg.Cmd), true,
fmt.Sprintf("Failed to find [%s] in Kubelet Command", TestKubeletWorkerNodeLabel))
}