mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 23:17:50 +00:00
Merge pull request #8146 from yifan-gu/runtime_opt
kubelet/container: Refactor RunContainerOptions.
This commit is contained in:
@@ -1308,7 +1308,7 @@ func (f *stubVolume) GetPath() string {
|
||||
return f.path
|
||||
}
|
||||
|
||||
func TestMakeVolumesAndBinds(t *testing.T) {
|
||||
func TestMakeVolumeMounts(t *testing.T) {
|
||||
container := api.Container{
|
||||
VolumeMounts: []api.VolumeMount{
|
||||
{
|
||||
@@ -1340,19 +1340,37 @@ func TestMakeVolumesAndBinds(t *testing.T) {
|
||||
"disk5": &stubVolume{"/var/lib/kubelet/podID/volumes/empty/disk5"},
|
||||
}
|
||||
|
||||
binds := makeBinds(&container, podVolumes)
|
||||
mounts := makeMounts(&container, podVolumes)
|
||||
|
||||
expectedBinds := []string{
|
||||
"/mnt/disk:/mnt/path",
|
||||
"/mnt/disk:/mnt/path3:ro",
|
||||
"/mnt/host:/mnt/path4",
|
||||
"/var/lib/kubelet/podID/volumes/empty/disk5:/mnt/path5",
|
||||
expectedMounts := []kubecontainer.Mount{
|
||||
{
|
||||
"disk",
|
||||
"/mnt/path",
|
||||
"/mnt/disk",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"disk",
|
||||
"/mnt/path3",
|
||||
"/mnt/disk",
|
||||
true,
|
||||
},
|
||||
{
|
||||
"disk4",
|
||||
"/mnt/path4",
|
||||
"/mnt/host",
|
||||
false,
|
||||
},
|
||||
{
|
||||
"disk5",
|
||||
"/mnt/path5",
|
||||
"/var/lib/kubelet/podID/volumes/empty/disk5",
|
||||
false,
|
||||
},
|
||||
}
|
||||
|
||||
if len(binds) != len(expectedBinds) {
|
||||
t.Errorf("Unexpected binds: Expected %#v got %#v. Container was: %#v", expectedBinds, binds, container)
|
||||
if !reflect.DeepEqual(mounts, expectedMounts) {
|
||||
t.Errorf("Unexpected mounts: Expected %#v got %#v. Container was: %#v", expectedMounts, mounts, container)
|
||||
}
|
||||
verifyStringArrayEquals(t, binds, expectedBinds)
|
||||
}
|
||||
|
||||
func TestGetContainerInfo(t *testing.T) {
|
||||
@@ -1884,6 +1902,16 @@ func (ls testNodeLister) List() (api.NodeList, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
type envs []kubecontainer.EnvVar
|
||||
|
||||
func (e envs) Len() int {
|
||||
return len(e)
|
||||
}
|
||||
|
||||
func (e envs) Swap(i, j int) { e[i], e[j] = e[j], e[i] }
|
||||
|
||||
func (e envs) Less(i, j int) bool { return e[i].Name < e[j].Name }
|
||||
|
||||
func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
services := []api.Service{
|
||||
{
|
||||
@@ -2028,12 +2056,12 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
name string // the name of the test case
|
||||
ns string // the namespace to generate environment for
|
||||
container *api.Container // the container to use
|
||||
masterServiceNs string // the namespace to read master service info from
|
||||
nilLister bool // whether the lister should be nil
|
||||
expectedEnvs util.StringSet // a set of expected environment vars
|
||||
name string // the name of the test case
|
||||
ns string // the namespace to generate environment for
|
||||
container *api.Container // the container to use
|
||||
masterServiceNs string // the namespace to read master service info from
|
||||
nilLister bool // whether the lister should be nil
|
||||
expectedEnvs []kubecontainer.EnvVar // a set of expected environment vars
|
||||
}{
|
||||
{
|
||||
name: "api server = Y, kubelet = Y",
|
||||
@@ -2052,29 +2080,30 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
},
|
||||
masterServiceNs: api.NamespaceDefault,
|
||||
nilLister: false,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"FOO=BAR",
|
||||
"TEST_SERVICE_HOST=1.2.3.3",
|
||||
"TEST_SERVICE_PORT=8083",
|
||||
"TEST_PORT=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP_PROTO=tcp",
|
||||
"TEST_PORT_8083_TCP_PORT=8083",
|
||||
"TEST_PORT_8083_TCP_ADDR=1.2.3.3",
|
||||
"KUBERNETES_SERVICE_HOST=1.2.3.1",
|
||||
"KUBERNETES_SERVICE_PORT=8081",
|
||||
"KUBERNETES_PORT=tcp://1.2.3.1:8081",
|
||||
"KUBERNETES_PORT_8081_TCP=tcp://1.2.3.1:8081",
|
||||
"KUBERNETES_PORT_8081_TCP_PROTO=tcp",
|
||||
"KUBERNETES_PORT_8081_TCP_PORT=8081",
|
||||
"KUBERNETES_PORT_8081_TCP_ADDR=1.2.3.1",
|
||||
"KUBERNETES_RO_SERVICE_HOST=1.2.3.2",
|
||||
"KUBERNETES_RO_SERVICE_PORT=8082",
|
||||
"KUBERNETES_RO_PORT=tcp://1.2.3.2:8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP=tcp://1.2.3.2:8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_PORT=8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "FOO", Value: "BAR"},
|
||||
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"},
|
||||
{Name: "TEST_SERVICE_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "TEST_PORT_8083_TCP_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"},
|
||||
{Name: "KUBERNETES_SERVICE_PORT", Value: "8081"},
|
||||
{Name: "KUBERNETES_SERVICE_HOST", Value: "1.2.3.1"},
|
||||
{Name: "KUBERNETES_PORT", Value: "tcp://1.2.3.1:8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP", Value: "tcp://1.2.3.1:8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_PORT", Value: "8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_ADDR", Value: "1.2.3.1"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_HOST", Value: "1.2.3.2"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_PORT", Value: "8082"},
|
||||
{Name: "KUBERNETES_RO_PORT", Value: "tcp://1.2.3.2:8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP", Value: "tcp://1.2.3.2:8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_PORT", Value: "8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_ADDR", Value: "1.2.3.2"},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "api server = Y, kubelet = N",
|
||||
@@ -2093,15 +2122,16 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
},
|
||||
masterServiceNs: api.NamespaceDefault,
|
||||
nilLister: true,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"FOO=BAR",
|
||||
"TEST_SERVICE_HOST=1.2.3.3",
|
||||
"TEST_SERVICE_PORT=8083",
|
||||
"TEST_PORT=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP_PROTO=tcp",
|
||||
"TEST_PORT_8083_TCP_PORT=8083",
|
||||
"TEST_PORT_8083_TCP_ADDR=1.2.3.3"),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "FOO", Value: "BAR"},
|
||||
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"},
|
||||
{Name: "TEST_SERVICE_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "TEST_PORT_8083_TCP_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "api server = N; kubelet = Y",
|
||||
@@ -2113,29 +2143,30 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
},
|
||||
masterServiceNs: api.NamespaceDefault,
|
||||
nilLister: false,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"FOO=BAZ",
|
||||
"TEST_SERVICE_HOST=1.2.3.3",
|
||||
"TEST_SERVICE_PORT=8083",
|
||||
"TEST_PORT=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP=tcp://1.2.3.3:8083",
|
||||
"TEST_PORT_8083_TCP_PROTO=tcp",
|
||||
"TEST_PORT_8083_TCP_PORT=8083",
|
||||
"TEST_PORT_8083_TCP_ADDR=1.2.3.3",
|
||||
"KUBERNETES_SERVICE_HOST=1.2.3.1",
|
||||
"KUBERNETES_SERVICE_PORT=8081",
|
||||
"KUBERNETES_PORT=tcp://1.2.3.1:8081",
|
||||
"KUBERNETES_PORT_8081_TCP=tcp://1.2.3.1:8081",
|
||||
"KUBERNETES_PORT_8081_TCP_PROTO=tcp",
|
||||
"KUBERNETES_PORT_8081_TCP_PORT=8081",
|
||||
"KUBERNETES_PORT_8081_TCP_ADDR=1.2.3.1",
|
||||
"KUBERNETES_RO_SERVICE_HOST=1.2.3.2",
|
||||
"KUBERNETES_RO_SERVICE_PORT=8082",
|
||||
"KUBERNETES_RO_PORT=tcp://1.2.3.2:8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP=tcp://1.2.3.2:8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_PORT=8082",
|
||||
"KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "FOO", Value: "BAZ"},
|
||||
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"},
|
||||
{Name: "TEST_SERVICE_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP", Value: "tcp://1.2.3.3:8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "TEST_PORT_8083_TCP_PORT", Value: "8083"},
|
||||
{Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"},
|
||||
{Name: "KUBERNETES_SERVICE_HOST", Value: "1.2.3.1"},
|
||||
{Name: "KUBERNETES_SERVICE_PORT", Value: "8081"},
|
||||
{Name: "KUBERNETES_PORT", Value: "tcp://1.2.3.1:8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP", Value: "tcp://1.2.3.1:8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_PORT", Value: "8081"},
|
||||
{Name: "KUBERNETES_PORT_8081_TCP_ADDR", Value: "1.2.3.1"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_HOST", Value: "1.2.3.2"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_PORT", Value: "8082"},
|
||||
{Name: "KUBERNETES_RO_PORT", Value: "tcp://1.2.3.2:8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP", Value: "tcp://1.2.3.2:8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_PORT", Value: "8082"},
|
||||
{Name: "KUBERNETES_RO_PORT_8082_TCP_ADDR", Value: "1.2.3.2"},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "master service in pod ns",
|
||||
@@ -2147,29 +2178,30 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
},
|
||||
masterServiceNs: "kubernetes",
|
||||
nilLister: false,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"FOO=ZAP",
|
||||
"TEST_SERVICE_HOST=1.2.3.5",
|
||||
"TEST_SERVICE_PORT=8085",
|
||||
"TEST_PORT=tcp://1.2.3.5:8085",
|
||||
"TEST_PORT_8085_TCP=tcp://1.2.3.5:8085",
|
||||
"TEST_PORT_8085_TCP_PROTO=tcp",
|
||||
"TEST_PORT_8085_TCP_PORT=8085",
|
||||
"TEST_PORT_8085_TCP_ADDR=1.2.3.5",
|
||||
"KUBERNETES_SERVICE_HOST=1.2.3.4",
|
||||
"KUBERNETES_SERVICE_PORT=8084",
|
||||
"KUBERNETES_PORT=tcp://1.2.3.4:8084",
|
||||
"KUBERNETES_PORT_8084_TCP=tcp://1.2.3.4:8084",
|
||||
"KUBERNETES_PORT_8084_TCP_PROTO=tcp",
|
||||
"KUBERNETES_PORT_8084_TCP_PORT=8084",
|
||||
"KUBERNETES_PORT_8084_TCP_ADDR=1.2.3.4",
|
||||
"KUBERNETES_RO_SERVICE_HOST=1.2.3.7",
|
||||
"KUBERNETES_RO_SERVICE_PORT=8087",
|
||||
"KUBERNETES_RO_PORT=tcp://1.2.3.7:8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP=tcp://1.2.3.7:8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_PORT=8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "FOO", Value: "ZAP"},
|
||||
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.5"},
|
||||
{Name: "TEST_SERVICE_PORT", Value: "8085"},
|
||||
{Name: "TEST_PORT", Value: "tcp://1.2.3.5:8085"},
|
||||
{Name: "TEST_PORT_8085_TCP", Value: "tcp://1.2.3.5:8085"},
|
||||
{Name: "TEST_PORT_8085_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "TEST_PORT_8085_TCP_PORT", Value: "8085"},
|
||||
{Name: "TEST_PORT_8085_TCP_ADDR", Value: "1.2.3.5"},
|
||||
{Name: "KUBERNETES_SERVICE_HOST", Value: "1.2.3.4"},
|
||||
{Name: "KUBERNETES_SERVICE_PORT", Value: "8084"},
|
||||
{Name: "KUBERNETES_PORT", Value: "tcp://1.2.3.4:8084"},
|
||||
{Name: "KUBERNETES_PORT_8084_TCP", Value: "tcp://1.2.3.4:8084"},
|
||||
{Name: "KUBERNETES_PORT_8084_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_PORT_8084_TCP_PORT", Value: "8084"},
|
||||
{Name: "KUBERNETES_PORT_8084_TCP_ADDR", Value: "1.2.3.4"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_HOST", Value: "1.2.3.7"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_PORT", Value: "8087"},
|
||||
{Name: "KUBERNETES_RO_PORT", Value: "tcp://1.2.3.7:8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP", Value: "tcp://1.2.3.7:8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_PORT", Value: "8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_ADDR", Value: "1.2.3.7"},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "pod in master service ns",
|
||||
@@ -2177,28 +2209,29 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
container: &api.Container{},
|
||||
masterServiceNs: "kubernetes",
|
||||
nilLister: false,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"NOT_SPECIAL_SERVICE_HOST=1.2.3.8",
|
||||
"NOT_SPECIAL_SERVICE_PORT=8088",
|
||||
"NOT_SPECIAL_PORT=tcp://1.2.3.8:8088",
|
||||
"NOT_SPECIAL_PORT_8088_TCP=tcp://1.2.3.8:8088",
|
||||
"NOT_SPECIAL_PORT_8088_TCP_PROTO=tcp",
|
||||
"NOT_SPECIAL_PORT_8088_TCP_PORT=8088",
|
||||
"NOT_SPECIAL_PORT_8088_TCP_ADDR=1.2.3.8",
|
||||
"KUBERNETES_SERVICE_HOST=1.2.3.6",
|
||||
"KUBERNETES_SERVICE_PORT=8086",
|
||||
"KUBERNETES_PORT=tcp://1.2.3.6:8086",
|
||||
"KUBERNETES_PORT_8086_TCP=tcp://1.2.3.6:8086",
|
||||
"KUBERNETES_PORT_8086_TCP_PROTO=tcp",
|
||||
"KUBERNETES_PORT_8086_TCP_PORT=8086",
|
||||
"KUBERNETES_PORT_8086_TCP_ADDR=1.2.3.6",
|
||||
"KUBERNETES_RO_SERVICE_HOST=1.2.3.7",
|
||||
"KUBERNETES_RO_SERVICE_PORT=8087",
|
||||
"KUBERNETES_RO_PORT=tcp://1.2.3.7:8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP=tcp://1.2.3.7:8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_PORT=8087",
|
||||
"KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "NOT_SPECIAL_SERVICE_HOST", Value: "1.2.3.8"},
|
||||
{Name: "NOT_SPECIAL_SERVICE_PORT", Value: "8088"},
|
||||
{Name: "NOT_SPECIAL_PORT", Value: "tcp://1.2.3.8:8088"},
|
||||
{Name: "NOT_SPECIAL_PORT_8088_TCP", Value: "tcp://1.2.3.8:8088"},
|
||||
{Name: "NOT_SPECIAL_PORT_8088_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "NOT_SPECIAL_PORT_8088_TCP_PORT", Value: "8088"},
|
||||
{Name: "NOT_SPECIAL_PORT_8088_TCP_ADDR", Value: "1.2.3.8"},
|
||||
{Name: "KUBERNETES_SERVICE_HOST", Value: "1.2.3.6"},
|
||||
{Name: "KUBERNETES_SERVICE_PORT", Value: "8086"},
|
||||
{Name: "KUBERNETES_PORT", Value: "tcp://1.2.3.6:8086"},
|
||||
{Name: "KUBERNETES_PORT_8086_TCP", Value: "tcp://1.2.3.6:8086"},
|
||||
{Name: "KUBERNETES_PORT_8086_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_PORT_8086_TCP_PORT", Value: "8086"},
|
||||
{Name: "KUBERNETES_PORT_8086_TCP_ADDR", Value: "1.2.3.6"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_HOST", Value: "1.2.3.7"},
|
||||
{Name: "KUBERNETES_RO_SERVICE_PORT", Value: "8087"},
|
||||
{Name: "KUBERNETES_RO_PORT", Value: "tcp://1.2.3.7:8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP", Value: "tcp://1.2.3.7:8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_PROTO", Value: "tcp"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_PORT", Value: "8087"},
|
||||
{Name: "KUBERNETES_RO_PORT_8087_TCP_ADDR", Value: "1.2.3.7"},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "downward api pod",
|
||||
@@ -2227,14 +2260,14 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
},
|
||||
masterServiceNs: "nothing",
|
||||
nilLister: true,
|
||||
expectedEnvs: util.NewStringSet(
|
||||
"POD_NAME=dapi-test-pod-name",
|
||||
"POD_NAMESPACE=downward-api",
|
||||
),
|
||||
expectedEnvs: []kubecontainer.EnvVar{
|
||||
{Name: "POD_NAME", Value: "dapi-test-pod-name"},
|
||||
{Name: "POD_NAMESPACE", Value: "downward-api"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
for i, tc := range testCases {
|
||||
testKubelet := newTestKubelet(t)
|
||||
kl := testKubelet.kubelet
|
||||
kl.masterServiceNamespace = tc.masterServiceNs
|
||||
@@ -2256,14 +2289,11 @@ func TestMakeEnvironmentVariables(t *testing.T) {
|
||||
t.Errorf("[%v] Unexpected error: %v", tc.name, err)
|
||||
}
|
||||
|
||||
resultSet := util.NewStringSet(result...)
|
||||
if !resultSet.HasAll(tc.expectedEnvs.List()...) {
|
||||
sort.Sort(envs(result))
|
||||
sort.Sort(envs(tc.expectedEnvs))
|
||||
|
||||
t.Errorf("[%v] Unexpected env entries; expected {%v}, got {%v}", tc.name, tc.expectedEnvs, resultSet)
|
||||
}
|
||||
|
||||
if a, e := len(resultSet), len(tc.expectedEnvs); e != a {
|
||||
t.Errorf("[%v] Unexpected number of env vars; expected %v, got %v", tc.name, e, a)
|
||||
if !reflect.DeepEqual(result, tc.expectedEnvs) {
|
||||
t.Errorf("%d: [%v] Unexpected env entries; expected {%v}, got {%v}", i, tc.name, tc.expectedEnvs, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4397,3 +4427,77 @@ func TestFilterOutTerminatedPods(t *testing.T) {
|
||||
t.Errorf("expected %#v, got %#v", expected, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMakePortMappings(t *testing.T) {
|
||||
tests := []struct {
|
||||
container *api.Container
|
||||
expectedPortMappings []kubecontainer.PortMapping
|
||||
}{
|
||||
{
|
||||
&api.Container{
|
||||
Name: "fooContainer",
|
||||
Ports: []api.ContainerPort{
|
||||
{
|
||||
Protocol: api.ProtocolTCP,
|
||||
ContainerPort: 80,
|
||||
HostPort: 8080,
|
||||
HostIP: "127.0.0.1",
|
||||
},
|
||||
{
|
||||
Protocol: api.ProtocolTCP,
|
||||
ContainerPort: 443,
|
||||
HostPort: 4343,
|
||||
HostIP: "192.168.0.1",
|
||||
},
|
||||
{
|
||||
Name: "foo",
|
||||
Protocol: api.ProtocolUDP,
|
||||
ContainerPort: 555,
|
||||
HostPort: 5555,
|
||||
},
|
||||
{
|
||||
Name: "foo", // Duplicated, should be ignored.
|
||||
Protocol: api.ProtocolUDP,
|
||||
ContainerPort: 888,
|
||||
HostPort: 8888,
|
||||
},
|
||||
{
|
||||
Protocol: api.ProtocolTCP, // Duplicated, should be ignored.
|
||||
ContainerPort: 80,
|
||||
HostPort: 8888,
|
||||
},
|
||||
},
|
||||
},
|
||||
[]kubecontainer.PortMapping{
|
||||
{
|
||||
Name: "fooContainer-TCP:80",
|
||||
Protocol: api.ProtocolTCP,
|
||||
ContainerPort: 80,
|
||||
HostPort: 8080,
|
||||
HostIP: "127.0.0.1",
|
||||
},
|
||||
{
|
||||
Name: "fooContainer-TCP:443",
|
||||
Protocol: api.ProtocolTCP,
|
||||
ContainerPort: 443,
|
||||
HostPort: 4343,
|
||||
HostIP: "192.168.0.1",
|
||||
},
|
||||
{
|
||||
Name: "fooContainer-foo",
|
||||
Protocol: api.ProtocolUDP,
|
||||
ContainerPort: 555,
|
||||
HostPort: 5555,
|
||||
HostIP: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for i, tt := range tests {
|
||||
actual := makePortMappings(tt.container)
|
||||
if !reflect.DeepEqual(tt.expectedPortMappings, actual) {
|
||||
t.Errorf("%d: Expected: %#v, saw: %#v", i, tt.expectedPortMappings, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user