mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 01:40:07 +00:00
Pass proxy environment variables to static pods
To access outside world or cloud provider APIs it might be required to use proxy. Fixes: kubernetes/kubernetes#36573, kubernetes/kubeadm#5
This commit is contained in:
parent
cdb8c79415
commit
1eeb3f155f
@ -76,6 +76,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
|
|||||||
VolumeMounts: volumeMounts,
|
VolumeMounts: volumeMounts,
|
||||||
LivenessProbe: componentProbe(8080, "/healthz"),
|
LivenessProbe: componentProbe(8080, "/healthz"),
|
||||||
Resources: componentResources("250m"),
|
Resources: componentResources("250m"),
|
||||||
|
Env: getProxyEnvVars(),
|
||||||
}, volumes...),
|
}, volumes...),
|
||||||
kubeControllerManager: componentPod(api.Container{
|
kubeControllerManager: componentPod(api.Container{
|
||||||
Name: kubeControllerManager,
|
Name: kubeControllerManager,
|
||||||
@ -84,6 +85,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
|
|||||||
VolumeMounts: volumeMounts,
|
VolumeMounts: volumeMounts,
|
||||||
LivenessProbe: componentProbe(10252, "/healthz"),
|
LivenessProbe: componentProbe(10252, "/healthz"),
|
||||||
Resources: componentResources("200m"),
|
Resources: componentResources("200m"),
|
||||||
|
Env: getProxyEnvVars(),
|
||||||
}, volumes...),
|
}, volumes...),
|
||||||
kubeScheduler: componentPod(api.Container{
|
kubeScheduler: componentPod(api.Container{
|
||||||
Name: kubeScheduler,
|
Name: kubeScheduler,
|
||||||
@ -91,6 +93,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error {
|
|||||||
Command: getSchedulerCommand(cfg),
|
Command: getSchedulerCommand(cfg),
|
||||||
LivenessProbe: componentProbe(10251, "/healthz"),
|
LivenessProbe: componentProbe(10251, "/healthz"),
|
||||||
Resources: componentResources("100m"),
|
Resources: componentResources("100m"),
|
||||||
|
Env: getProxyEnvVars(),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,3 +362,21 @@ func getProxyCommand(cfg *kubeadmapi.MasterConfiguration) (command []string) {
|
|||||||
|
|
||||||
return
|
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
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user