diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index fe5467d65c2..1ffaf58f013 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -123,9 +123,6 @@ type KubeletFlags struct { // maxContainerCount is the maximum number of old instances of containers // to retain globally. Each container takes up some disk space. MaxContainerCount int32 - // masterServiceNamespace is The namespace from which the kubernetes - // master services should be injected into pods. - MasterServiceNamespace string // registerSchedulable tells the kubelet to register the node as // schedulable. Won't have any effect if register-node is false. // DEPRECATED: use registerWithTaints instead @@ -143,7 +140,6 @@ func NewKubeletFlags() *KubeletFlags { ContainerRuntimeOptions: *NewContainerRuntimeOptions(), CertDirectory: "/var/lib/kubelet/pki", RootDirectory: defaultRootDir, - MasterServiceNamespace: metav1.NamespaceDefault, MaxContainerCount: -1, MaxPerPodContainerCount: 1, MinimumGCAge: metav1.Duration{Duration: 0}, @@ -320,8 +316,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) { fs.MarkDeprecated("maximum-dead-containers-per-container", "Use --eviction-hard or --eviction-soft instead. Will be removed in a future version.") fs.Int32Var(&f.MaxContainerCount, "maximum-dead-containers", f.MaxContainerCount, "Maximum number of old instances of containers to retain globally. Each container takes up some disk space. To disable, set to a negative number.") fs.MarkDeprecated("maximum-dead-containers", "Use --eviction-hard or --eviction-soft instead. Will be removed in a future version.") - fs.StringVar(&f.MasterServiceNamespace, "master-service-namespace", f.MasterServiceNamespace, "The namespace from which the kubernetes master services should be injected into pods") - fs.MarkDeprecated("master-service-namespace", "This flag will be removed in a future version.") fs.BoolVar(&f.RegisterSchedulable, "register-schedulable", f.RegisterSchedulable, "Register the node as schedulable. Won't have any effect if register-node is false.") fs.MarkDeprecated("register-schedulable", "will be removed in a future version") fs.BoolVar(&f.KeepTerminatedPodVolumes, "keep-terminated-pod-volumes", f.KeepTerminatedPodVolumes, "Keep terminated pod volumes mounted to the node after the pod terminates. Can be useful for debugging volume related issues.") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 4dd27a08bf0..928be9c3928 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -1231,7 +1231,6 @@ func createAndInitKubelet(kubeServer *options.KubeletServer, kubeServer.MinimumGCAge, kubeServer.MaxPerPodContainerCount, kubeServer.MaxContainerCount, - kubeServer.MasterServiceNamespace, kubeServer.RegisterSchedulable, kubeServer.KeepTerminatedPodVolumes, kubeServer.NodeLabels, diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index fd1d8a18c82..dd1e7fa410f 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -344,7 +344,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, minimumGCAge metav1.Duration, maxPerPodContainerCount int32, maxContainerCount int32, - masterServiceNamespace string, registerSchedulable bool, keepTerminatedPodVolumes bool, nodeLabels map[string]string, @@ -522,7 +521,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceHasSynced: serviceHasSynced, nodeLister: nodeLister, nodeHasSynced: nodeHasSynced, - masterServiceNamespace: masterServiceNamespace, streamingConnectionIdleTimeout: kubeCfg.StreamingConnectionIdleTimeout.Duration, recorder: kubeDeps.Recorder, cadvisor: kubeDeps.CAdvisorInterface, @@ -975,8 +973,6 @@ type Kubelet struct { // dnsConfigurer is used for setting up DNS resolver configuration when launching pods. dnsConfigurer *dns.Configurer - // masterServiceNamespace is the namespace that the master service is exposed in. - masterServiceNamespace string // serviceLister knows how to list services serviceLister serviceLister // serviceHasSynced indicates whether services have been sync'd at least once. diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index 2a4272d2692..0aedf56016c 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -556,10 +556,10 @@ func (kl *Kubelet) getServiceEnvVarMap(ns string, enableServiceLinks bool) (map[ serviceName := service.Name // We always want to add environment variabled for master services - // from the master service namespace, even if enableServiceLinks is false. + // from the default namespace, even if enableServiceLinks is false. // We also add environment variables for other services in the same // namespace, if enableServiceLinks is true. - if service.Namespace == kl.masterServiceNamespace && masterServices.Has(serviceName) { + if service.Namespace == metav1.NamespaceDefault && masterServices.Has(serviceName) { if _, exists := serviceMap[serviceName]; !exists { serviceMap[serviceName] = service } diff --git a/pkg/kubelet/kubelet_pods_test.go b/pkg/kubelet/kubelet_pods_test.go index edb4f00f8f1..c86f0b829c2 100644 --- a/pkg/kubelet/kubelet_pods_test.go +++ b/pkg/kubelet/kubelet_pods_test.go @@ -395,10 +395,9 @@ func TestMakeEnvironmentVariables(t *testing.T) { buildService("test", "test2", "1.2.3.5", "TCP", 8085), buildService("test", "test2", "None", "TCP", 8085), buildService("test", "test2", "", "TCP", 8085), - buildService("kubernetes", "kubernetes", "1.2.3.6", "TCP", 8086), - buildService("not-special", "kubernetes", "1.2.3.8", "TCP", 8088), - buildService("not-special", "kubernetes", "None", "TCP", 8088), - buildService("not-special", "kubernetes", "", "TCP", 8088), + buildService("not-special", metav1.NamespaceDefault, "1.2.3.8", "TCP", 8088), + buildService("not-special", metav1.NamespaceDefault, "None", "TCP", 8088), + buildService("not-special", metav1.NamespaceDefault, "", "TCP", 8088), } trueValue := true @@ -408,7 +407,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { ns string // the namespace to generate environment for enableServiceLinks *bool // enabling service links container *v1.Container // the container to use - masterServiceNs string // the namespace to read master service info from nilLister bool // whether the lister should be nil staticPod bool // whether the pod should be a static pod (versus an API pod) unsyncedServices bool // whether the services should NOT be synced @@ -424,7 +422,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { ns: "test1", enableServiceLinks: &falseValue, container: &v1.Container{Env: []v1.EnvVar{}}, - masterServiceNs: metav1.NamespaceDefault, nilLister: false, staticPod: false, unsyncedServices: true, @@ -436,7 +433,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { ns: "test1", enableServiceLinks: &falseValue, container: &v1.Container{Env: []v1.EnvVar{}}, - masterServiceNs: metav1.NamespaceDefault, nilLister: false, staticPod: true, unsyncedServices: true, @@ -457,8 +453,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"}, }, }, - masterServiceNs: metav1.NamespaceDefault, - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "BAR"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"}, @@ -493,8 +488,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "TEST_PORT_8083_TCP_ADDR", Value: "1.2.3.3"}, }, }, - masterServiceNs: metav1.NamespaceDefault, - nilLister: true, + nilLister: true, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "BAR"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"}, @@ -515,8 +509,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "FOO", Value: "BAZ"}, }, }, - masterServiceNs: metav1.NamespaceDefault, - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "BAZ"}, {Name: "KUBERNETES_SERVICE_HOST", Value: "1.2.3.1"}, @@ -537,8 +530,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "FOO", Value: "BAZ"}, }, }, - masterServiceNs: metav1.NamespaceDefault, - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "BAZ"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.3"}, @@ -566,17 +558,16 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "FOO", Value: "ZAP"}, }, }, - masterServiceNs: "kubernetes", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "ZAP"}, - {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_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"}, }, }, { @@ -588,8 +579,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {Name: "FOO", Value: "ZAP"}, }, }, - masterServiceNs: "kubernetes", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "FOO", Value: "ZAP"}, {Name: "TEST_SERVICE_HOST", Value: "1.2.3.5"}, @@ -610,27 +600,25 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, { name: "pod in master service ns", - ns: "kubernetes", + ns: metav1.NamespaceDefault, enableServiceLinks: &falseValue, container: &v1.Container{}, - masterServiceNs: "kubernetes", nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ - {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_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: "pod in master service ns, service env vars", - ns: "kubernetes", + ns: metav1.NamespaceDefault, enableServiceLinks: &trueValue, container: &v1.Container{}, - masterServiceNs: "kubernetes", nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ {Name: "NOT_SPECIAL_SERVICE_HOST", Value: "1.2.3.8"}, @@ -640,13 +628,13 @@ func TestMakeEnvironmentVariables(t *testing.T) { {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_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"}, }, }, { @@ -720,9 +708,8 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - podIPs: []string{"1.2.3.4", "fd00::6"}, - masterServiceNs: "nothing", - nilLister: true, + podIPs: []string{"1.2.3.4", "fd00::6"}, + nilLister: true, expectedEnvs: []kubecontainer.EnvVar{ {Name: "POD_NAME", Value: "dapi-test-pod-name"}, {Name: "POD_NAMESPACE", Value: "downward-api"}, @@ -768,9 +755,8 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - podIPs: []string{"fd00::6", "1.2.3.4"}, - masterServiceNs: "nothing", - nilLister: true, + podIPs: []string{"fd00::6", "1.2.3.4"}, + nilLister: true, expectedEnvs: []kubecontainer.EnvVar{ {Name: "POD_IP", Value: "1.2.3.4"}, {Name: "POD_IPS", Value: "1.2.3.4,fd00::6"}, @@ -812,9 +798,8 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - podIPs: []string{"1.2.3.4", "192.168.1.1.", "fd00::6"}, - masterServiceNs: "nothing", - nilLister: true, + podIPs: []string{"1.2.3.4", "192.168.1.1.", "fd00::6"}, + nilLister: true, expectedEnvs: []kubecontainer.EnvVar{ {Name: "POD_IP", Value: "1.2.3.4"}, {Name: "POD_IPS", Value: "1.2.3.4,fd00::6"}, @@ -873,8 +858,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ { Name: "TEST_LITERAL", @@ -915,6 +899,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "EMPTY_TEST", Value: "foo-", }, + { + 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", + }, }, }, { @@ -973,8 +985,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ { Name: "TEST_LITERAL", @@ -1047,6 +1058,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "EMPTY_TEST", Value: "foo-", }, + { + 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", + }, }, }, { @@ -1067,8 +1106,15 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - expectedEnvs: nil, + expectedEnvs: []kubecontainer.EnvVar{ + {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: "configmapkeyref_missing_key_optional", @@ -1088,8 +1134,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: true, + nilLister: true, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1119,8 +1164,15 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - expectedEnvs: nil, + expectedEnvs: []kubecontainer.EnvVar{ + {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: "secretkeyref_missing_key_optional", @@ -1140,8 +1192,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: true, + nilLister: true, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1182,8 +1233,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1219,6 +1269,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_DUPE_TEST", Value: "CONFIG_MAP", }, + { + 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", + }, }, }, { @@ -1250,8 +1328,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1315,6 +1392,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_DUPE_TEST", Value: "CONFIG_MAP", }, + { + 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", + }, }, }, { @@ -1326,8 +1431,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {ConfigMapRef: &v1.ConfigMapEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: "test-config-map"}}}, }, }, - masterServiceNs: "nothing", - expectedError: true, + expectedError: true, }, { name: "configmap_missing_optional", @@ -1340,8 +1444,15 @@ func TestMakeEnvironmentVariables(t *testing.T) { LocalObjectReference: v1.LocalObjectReference{Name: "missing-config-map"}}}, }, }, - masterServiceNs: "nothing", - expectedEnvs: nil, + expectedEnvs: []kubecontainer.EnvVar{ + {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: "configmap_invalid_keys", @@ -1352,7 +1463,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { {ConfigMapRef: &v1.ConfigMapEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: "test-config-map"}}}, }, }, - masterServiceNs: "nothing", configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1369,6 +1479,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "key", Value: "value", }, + { + 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", + }, }, expectedEvent: "Warning InvalidEnvironmentVariableNames Keys [1234, 1z] from the EnvFrom configMap test/test-config-map were skipped since they are considered invalid environment variable names.", }, @@ -1384,7 +1522,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1399,6 +1536,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_1234", Value: "abc", }, + { + 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", + }, }, }, { @@ -1430,8 +1595,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1467,6 +1631,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_DUPE_TEST", Value: "SECRET", }, + { + 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", + }, }, }, { @@ -1498,8 +1690,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1563,6 +1754,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_DUPE_TEST", Value: "SECRET", }, + { + 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", + }, }, }, { @@ -1574,8 +1793,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { {SecretRef: &v1.SecretEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: "test-secret"}}}, }, }, - masterServiceNs: "nothing", - expectedError: true, + expectedError: true, }, { name: "secret_missing_optional", @@ -1588,8 +1806,15 @@ func TestMakeEnvironmentVariables(t *testing.T) { Optional: &trueVal}}, }, }, - masterServiceNs: "nothing", - expectedEnvs: nil, + expectedEnvs: []kubecontainer.EnvVar{ + {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: "secret_invalid_keys", @@ -1600,7 +1825,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { {SecretRef: &v1.SecretEnvSource{LocalObjectReference: v1.LocalObjectReference{Name: "test-secret"}}}, }, }, - masterServiceNs: "nothing", secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1617,6 +1841,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "key.1", Value: "value", }, + { + 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", + }, }, expectedEvent: "Warning InvalidEnvironmentVariableNames Keys [1234, 1z] from the EnvFrom secret test/test-secret were skipped since they are considered invalid environment variable names.", }, @@ -1632,7 +1884,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1647,6 +1898,34 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "p_1234.name", Value: "abc", }, + { + 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", + }, }, }, { @@ -1661,7 +1940,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1682,7 +1960,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { testKubelet.kubelet.recorder = fakeRecorder defer testKubelet.Cleanup() kl := testKubelet.kubelet - kl.masterServiceNamespace = tc.masterServiceNs if tc.nilLister { kl.serviceLister = nil } else if tc.unsyncedServices { diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 67549bd1120..88758971372 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -208,7 +208,6 @@ func newTestKubeletWithImageList( t.Fatalf("can't mkdir(%q): %v", kubelet.rootDirectory, err) } kubelet.sourcesReady = config.NewSourcesReady(func(_ sets.String) bool { return true }) - kubelet.masterServiceNamespace = metav1.NamespaceDefault kubelet.serviceLister = testServiceLister{} kubelet.serviceHasSynced = func() bool { return true } kubelet.nodeHasSynced = func() bool { return true } @@ -2827,7 +2826,6 @@ func TestNewMainKubeletStandAlone(t *testing.T) { metav1.Duration{Duration: time.Minute}, 1024, 110, - "default", true, true, map[string]string{},