diff --git a/cmd/kubeadm/app/master/manifests.go b/cmd/kubeadm/app/master/manifests.go index 7a4b84a0a5a..f59e6161866 100644 --- a/cmd/kubeadm/app/master/manifests.go +++ b/cmd/kubeadm/app/master/manifests.go @@ -76,6 +76,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error { VolumeMounts: volumeMounts, LivenessProbe: componentProbe(8080, "/healthz"), Resources: componentResources("250m"), + Env: getProxyEnvVars(), }, volumes...), kubeControllerManager: componentPod(api.Container{ Name: kubeControllerManager, @@ -84,6 +85,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error { VolumeMounts: volumeMounts, LivenessProbe: componentProbe(10252, "/healthz"), Resources: componentResources("200m"), + Env: getProxyEnvVars(), }, volumes...), kubeScheduler: componentPod(api.Container{ Name: kubeScheduler, @@ -91,6 +93,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error { Command: getSchedulerCommand(cfg), LivenessProbe: componentProbe(10251, "/healthz"), Resources: componentResources("100m"), + Env: getProxyEnvVars(), }), } @@ -359,3 +362,21 @@ func getProxyCommand(cfg *kubeadmapi.MasterConfiguration) (command []string) { return } + +func getProxyEnvVars() []api.EnvVar { + envs := []api.EnvVar{} + for _, env := range os.Environ() { + pos := strings.Index(env, "=") + if pos == -1 { + // malformed environment variable, skip it. + continue + } + name := env[:pos] + value := env[pos+1:] + if strings.HasSuffix(strings.ToLower(name), "_proxy") && value != "" { + envVar := api.EnvVar{Name: name, Value: value} + envs = append(envs, envVar) + } + } + return envs +}