This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit d0c16513cd1d8566a2000412253b722c068f3d2d Author: Antonin Stefanutti <[email protected]> AuthorDate: Tue Jan 11 12:28:57 2022 +0100 feat: Propagate HTTP proxy environment to build Pods --- pkg/controller/build/build_pod.go | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/pkg/controller/build/build_pod.go b/pkg/controller/build/build_pod.go index a759c8e..d5e813f 100644 --- a/pkg/controller/build/build_pod.go +++ b/pkg/controller/build/build_pod.go @@ -20,18 +20,19 @@ package build import ( "context" "fmt" + "os" "path" "strconv" "strings" + "github.com/pkg/errors" + corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ctrl "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/pkg/errors" - v1 "github.com/apache/camel-k/pkg/apis/camel/v1" "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/platform" @@ -231,6 +232,7 @@ func addBuildTaskToPod(build *v1.Build, taskName string, pod *corev1.Pod) { taskName, }, WorkingDir: path.Join(builderDir, build.Name), + Env: proxyFromEnvironment(), } addContainerToPod(build, container, pod) @@ -300,6 +302,7 @@ func addBuildahTaskToPod(ctx context.Context, c ctrl.Reader, build *v1.Build, ta push = append(push[:2], append([]string{"--tls-verify=false"}, push[2:]...)...) } + env = append(env, proxyFromEnvironment()...) env = append(env, proxySecretEnvVars(task.HttpProxySecret)...) args := []string{ @@ -364,6 +367,7 @@ func addKanikoTaskToPod(ctx context.Context, c ctrl.Reader, build *v1.Build, tas args = append(args, "--insecure-pull") } + env = append(env, proxyFromEnvironment()...) env = append(env, proxySecretEnvVars(task.HttpProxySecret)...) if cache { @@ -571,3 +575,30 @@ func proxySecretEnvVar(name string, secret string) corev1.EnvVar { }, } } + +func proxyFromEnvironment() []corev1.EnvVar { + var envVars []corev1.EnvVar + + if httpProxy, ok := os.LookupEnv("HTTP_PROXY"); ok { + envVars = append(envVars, corev1.EnvVar{ + Name: "HTTP_PROXY", + Value: httpProxy, + }) + } + + if httpsProxy, ok := os.LookupEnv("HTTPS_PROXY"); ok { + envVars = append(envVars, corev1.EnvVar{ + Name: "HTTPS_PROXY", + Value: httpsProxy, + }) + } + + if noProxy, ok := os.LookupEnv("NO_PROXY"); ok { + envVars = append(envVars, corev1.EnvVar{ + Name: "NO_PROXY", + Value: noProxy, + }) + } + + return envVars +}
