diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 96d88cf8145..3de95942ad3 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -122,9 +122,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 @@ -142,7 +139,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}, @@ -314,8 +310,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 0e2600fb9e5..5a48331186b 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -1229,7 +1229,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 3c6a3671351..bcdcde29bd6 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -352,7 +352,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, minimumGCAge metav1.Duration, maxPerPodContainerCount int32, maxContainerCount int32, - masterServiceNamespace string, registerSchedulable bool, keepTerminatedPodVolumes bool, nodeLabels map[string]string, @@ -530,7 +529,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceHasSynced: serviceHasSynced, nodeLister: nodeLister, nodeHasSynced: nodeHasSynced, - masterServiceNamespace: masterServiceNamespace, streamingConnectionIdleTimeout: kubeCfg.StreamingConnectionIdleTimeout.Duration, recorder: kubeDeps.Recorder, cadvisor: kubeDeps.CAdvisorInterface, @@ -981,8 +979,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 77b0c8110be..790254a093b 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -558,10 +558,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 525584aee11..d1a58ae8e97 100644 --- a/pkg/kubelet/kubelet_pods_test.go +++ b/pkg/kubelet/kubelet_pods_test.go @@ -396,10 +396,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 @@ -409,7 +408,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 @@ -425,7 +423,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, @@ -437,7 +434,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, @@ -458,8 +454,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"}, @@ -494,8 +489,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"}, @@ -516,8 +510,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"}, @@ -538,8 +531,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"}, @@ -567,17 +559,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"}, }, }, { @@ -589,8 +580,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"}, @@ -611,27 +601,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"}, @@ -641,13 +629,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"}, }, }, { @@ -721,9 +709,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"}, @@ -769,9 +756,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"}, @@ -813,9 +799,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"}, @@ -874,8 +859,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ { Name: "TEST_LITERAL", @@ -916,6 +900,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", + }, }, }, { @@ -974,8 +986,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, expectedEnvs: []kubecontainer.EnvVar{ { Name: "TEST_LITERAL", @@ -1048,6 +1059,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", + }, }, }, { @@ -1068,8 +1107,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", @@ -1089,8 +1135,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: true, + nilLister: true, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1120,8 +1165,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", @@ -1141,8 +1193,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: true, + nilLister: true, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1183,8 +1234,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1220,6 +1270,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", + }, }, }, { @@ -1251,8 +1329,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1316,6 +1393,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", + }, }, }, { @@ -1327,8 +1432,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", @@ -1341,8 +1445,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", @@ -1353,7 +1464,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", @@ -1370,6 +1480,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.", }, @@ -1385,7 +1523,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", configMap: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1400,6 +1537,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", + }, }, }, { @@ -1431,8 +1596,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1468,6 +1632,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", + }, }, }, { @@ -1499,8 +1691,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "nothing", - nilLister: false, + nilLister: false, secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1564,6 +1755,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", + }, }, }, { @@ -1575,8 +1794,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", @@ -1589,8 +1807,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", @@ -1601,7 +1826,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", @@ -1618,6 +1842,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.", }, @@ -1633,7 +1885,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1648,6 +1899,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", + }, }, }, { @@ -1662,7 +1941,6 @@ func TestMakeEnvironmentVariables(t *testing.T) { }, }, }, - masterServiceNs: "", secret: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test1", @@ -1683,7 +1961,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 971632a92c1..20bf2f9fee8 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -210,7 +210,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 } @@ -2984,7 +2983,6 @@ func TestNewMainKubeletStandAlone(t *testing.T) { metav1.Duration{Duration: time.Minute}, 1024, 110, - "default", true, true, map[string]string{},