1
0
mirror of https://github.com/rancher/rke.git synced 2025-07-20 10:10:09 +00:00
rke/services/kubelet_test.go
Alena Prokharchyk c19059200b
Merge pull request #268 from galal-hussein/atomic_centos
Add z option to volume binds
2018-02-06 16:22:05 -08:00

66 lines
3.0 KiB
Go

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:z"
TestKubeletExtraArgs = "--foo=bar"
TestClusterDomainPrefix = "--cluster-domain="
TestClusterDNSServerPrefix = "--cluster-dns="
TestInfraContainerImagePrefix = "--pod-infra-container-image="
TestHostnameOverridePrefix = "--hostname-override="
)
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 Network mode")
}