Merge pull request #8135 from pmorie/kubelet-tests

Improve kubelet test for env vars
This commit is contained in:
Victor Marmol 2015-05-12 14:41:30 -07:00
commit 4c6a4fc132

View File

@ -1997,15 +1997,14 @@ func TestMakeEnvironmentVariables(t *testing.T) {
name string // the name of the test case name string // the name of the test case
ns string // the namespace to generate environment for ns string // the namespace to generate environment for
container *api.Container // the container to use container *api.Container // the container to use
masterServiceNamespace string // the namespace to read master service info from masterServiceNs string // the namespace to read master service info from
nilLister bool // whether the lister should be nil nilLister bool // whether the lister should be nil
expectedEnvs util.StringSet // a set of expected environment vars expectedEnvs util.StringSet // a set of expected environment vars
expectedEnvSize int // total number of expected env vars
}{ }{
{ {
"api server = Y, kubelet = Y", name: "api server = Y, kubelet = Y",
"test1", ns: "test1",
&api.Container{ container: &api.Container{
Env: []api.EnvVar{ Env: []api.EnvVar{
{Name: "FOO", Value: "BAR"}, {Name: "FOO", Value: "BAR"},
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"},
@ -2017,9 +2016,10 @@ func TestMakeEnvironmentVariables(t *testing.T) {
{Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"}, {Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"},
}, },
}, },
api.NamespaceDefault, masterServiceNs: api.NamespaceDefault,
false, nilLister: false,
util.NewStringSet("FOO=BAR", expectedEnvs: util.NewStringSet(
"FOO=BAR",
"TEST_SERVICE_HOST=1.2.3.3", "TEST_SERVICE_HOST=1.2.3.3",
"TEST_SERVICE_PORT=8083", "TEST_SERVICE_PORT=8083",
"TEST_PORT=tcp://1.2.3.3:8083", "TEST_PORT=tcp://1.2.3.3:8083",
@ -2041,12 +2041,11 @@ func TestMakeEnvironmentVariables(t *testing.T) {
"KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp", "KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp",
"KUBERNETES_RO_PORT_8082_TCP_PORT=8082", "KUBERNETES_RO_PORT_8082_TCP_PORT=8082",
"KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"), "KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"),
22,
}, },
{ {
"api server = Y, kubelet = N", name: "api server = Y, kubelet = N",
"test1", ns: "test1",
&api.Container{ container: &api.Container{
Env: []api.EnvVar{ Env: []api.EnvVar{
{Name: "FOO", Value: "BAR"}, {Name: "FOO", Value: "BAR"},
{Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"},
@ -2058,9 +2057,10 @@ func TestMakeEnvironmentVariables(t *testing.T) {
{Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"}, {Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"},
}, },
}, },
api.NamespaceDefault, masterServiceNs: api.NamespaceDefault,
true, nilLister: true,
util.NewStringSet("FOO=BAR", expectedEnvs: util.NewStringSet(
"FOO=BAR",
"TEST_SERVICE_HOST=1.2.3.3", "TEST_SERVICE_HOST=1.2.3.3",
"TEST_SERVICE_PORT=8083", "TEST_SERVICE_PORT=8083",
"TEST_PORT=tcp://1.2.3.3:8083", "TEST_PORT=tcp://1.2.3.3:8083",
@ -2068,19 +2068,19 @@ func TestMakeEnvironmentVariables(t *testing.T) {
"TEST_PORT_8083_TCP_PROTO=tcp", "TEST_PORT_8083_TCP_PROTO=tcp",
"TEST_PORT_8083_TCP_PORT=8083", "TEST_PORT_8083_TCP_PORT=8083",
"TEST_PORT_8083_TCP_ADDR=1.2.3.3"), "TEST_PORT_8083_TCP_ADDR=1.2.3.3"),
8,
}, },
{ {
"api server = N; kubelet = Y", name: "api server = N; kubelet = Y",
"test1", ns: "test1",
&api.Container{ container: &api.Container{
Env: []api.EnvVar{ Env: []api.EnvVar{
{Name: "FOO", Value: "BAZ"}, {Name: "FOO", Value: "BAZ"},
}, },
}, },
api.NamespaceDefault, masterServiceNs: api.NamespaceDefault,
false, nilLister: false,
util.NewStringSet("FOO=BAZ", expectedEnvs: util.NewStringSet(
"FOO=BAZ",
"TEST_SERVICE_HOST=1.2.3.3", "TEST_SERVICE_HOST=1.2.3.3",
"TEST_SERVICE_PORT=8083", "TEST_SERVICE_PORT=8083",
"TEST_PORT=tcp://1.2.3.3:8083", "TEST_PORT=tcp://1.2.3.3:8083",
@ -2102,19 +2102,19 @@ func TestMakeEnvironmentVariables(t *testing.T) {
"KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp", "KUBERNETES_RO_PORT_8082_TCP_PROTO=tcp",
"KUBERNETES_RO_PORT_8082_TCP_PORT=8082", "KUBERNETES_RO_PORT_8082_TCP_PORT=8082",
"KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"), "KUBERNETES_RO_PORT_8082_TCP_ADDR=1.2.3.2"),
22,
}, },
{ {
"master service in pod ns", name: "master service in pod ns",
"test2", ns: "test2",
&api.Container{ container: &api.Container{
Env: []api.EnvVar{ Env: []api.EnvVar{
{Name: "FOO", Value: "ZAP"}, {Name: "FOO", Value: "ZAP"},
}, },
}, },
"kubernetes", masterServiceNs: "kubernetes",
false, nilLister: false,
util.NewStringSet("FOO=ZAP", expectedEnvs: util.NewStringSet(
"FOO=ZAP",
"TEST_SERVICE_HOST=1.2.3.5", "TEST_SERVICE_HOST=1.2.3.5",
"TEST_SERVICE_PORT=8085", "TEST_SERVICE_PORT=8085",
"TEST_PORT=tcp://1.2.3.5:8085", "TEST_PORT=tcp://1.2.3.5:8085",
@ -2136,15 +2136,14 @@ func TestMakeEnvironmentVariables(t *testing.T) {
"KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp", "KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp",
"KUBERNETES_RO_PORT_8087_TCP_PORT=8087", "KUBERNETES_RO_PORT_8087_TCP_PORT=8087",
"KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"), "KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"),
22,
}, },
{ {
"pod in master service ns", name: "pod in master service ns",
"kubernetes", ns: "kubernetes",
&api.Container{}, container: &api.Container{},
"kubernetes", masterServiceNs: "kubernetes",
false, nilLister: false,
util.NewStringSet( expectedEnvs: util.NewStringSet(
"NOT_SPECIAL_SERVICE_HOST=1.2.3.8", "NOT_SPECIAL_SERVICE_HOST=1.2.3.8",
"NOT_SPECIAL_SERVICE_PORT=8088", "NOT_SPECIAL_SERVICE_PORT=8088",
"NOT_SPECIAL_PORT=tcp://1.2.3.8:8088", "NOT_SPECIAL_PORT=tcp://1.2.3.8:8088",
@ -2166,12 +2165,11 @@ func TestMakeEnvironmentVariables(t *testing.T) {
"KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp", "KUBERNETES_RO_PORT_8087_TCP_PROTO=tcp",
"KUBERNETES_RO_PORT_8087_TCP_PORT=8087", "KUBERNETES_RO_PORT_8087_TCP_PORT=8087",
"KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"), "KUBERNETES_RO_PORT_8087_TCP_ADDR=1.2.3.7"),
21,
}, },
{ {
"downward api pod", name: "downward api pod",
"downward-api", ns: "downward-api",
&api.Container{ container: &api.Container{
Env: []api.EnvVar{ Env: []api.EnvVar{
{ {
Name: "POD_NAME", Name: "POD_NAME",
@ -2193,20 +2191,19 @@ func TestMakeEnvironmentVariables(t *testing.T) {
}, },
}, },
}, },
"nothing", masterServiceNs: "nothing",
true, nilLister: true,
util.NewStringSet( expectedEnvs: util.NewStringSet(
"POD_NAME=dapi-test-pod-name", "POD_NAME=dapi-test-pod-name",
"POD_NAMESPACE=downward-api", "POD_NAMESPACE=downward-api",
), ),
2,
}, },
} }
for _, tc := range testCases { for _, tc := range testCases {
testKubelet := newTestKubelet(t) testKubelet := newTestKubelet(t)
kl := testKubelet.kubelet kl := testKubelet.kubelet
kl.masterServiceNamespace = tc.masterServiceNamespace kl.masterServiceNamespace = tc.masterServiceNs
if tc.nilLister { if tc.nilLister {
kl.serviceLister = nil kl.serviceLister = nil
} else { } else {
@ -2226,12 +2223,13 @@ func TestMakeEnvironmentVariables(t *testing.T) {
} }
resultSet := util.NewStringSet(result...) resultSet := util.NewStringSet(result...)
if !resultSet.IsSuperset(tc.expectedEnvs) { if !resultSet.HasAll(tc.expectedEnvs.List()...) {
t.Errorf("[%v] Unexpected env entries; expected {%v}, got {%v}", tc.name, tc.expectedEnvs, resultSet) t.Errorf("[%v] Unexpected env entries; expected {%v}, got {%v}", tc.name, tc.expectedEnvs, resultSet)
} }
if a := len(resultSet); a != tc.expectedEnvSize { if a, e := len(resultSet), len(tc.expectedEnvs); e != a {
t.Errorf("[%v] Unexpected number of env vars; expected %v, got %v", tc.name, tc.expectedEnvSize, a) t.Errorf("[%v] Unexpected number of env vars; expected %v, got %v", tc.name, e, a)
} }
} }
} }