You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2019/08/13 14:35:35 UTC

[camel-k] 02/02: fix: Enable proxy server to be configured for Kaniko builds

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 07e87c38caef957a5e4d43b4b755f7d8685ab902
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Aug 13 09:27:47 2019 +0100

    fix: Enable proxy server to be configured for Kaniko builds
    
    fixes #899
---
 .../camel/v1alpha1/integrationplatform_types.go    |  1 +
 pkg/builder/kaniko/publisher.go                    | 40 ++++++++++++++++++++++
 pkg/cmd/install.go                                 |  7 ++++
 3 files changed, 48 insertions(+)

diff --git a/pkg/apis/camel/v1alpha1/integrationplatform_types.go b/pkg/apis/camel/v1alpha1/integrationplatform_types.go
index 9a1e047..19dbcab 100644
--- a/pkg/apis/camel/v1alpha1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1alpha1/integrationplatform_types.go
@@ -104,6 +104,7 @@ type IntegrationPlatformBuildSpec struct {
 	Timeout               metav1.Duration                         `json:"timeout,omitempty"`
 	PersistentVolumeClaim string                                  `json:"persistentVolumeClaim,omitempty"`
 	Maven                 MavenSpec                               `json:"maven,omitempty"`
+	HTTPProxySecret       string                                  `json:"httpProxySecret,omitempty"`
 }
 
 // IntegrationPlatformRegistrySpec --
diff --git a/pkg/builder/kaniko/publisher.go b/pkg/builder/kaniko/publisher.go
index 4e798ea..1951f5b 100644
--- a/pkg/builder/kaniko/publisher.go
+++ b/pkg/builder/kaniko/publisher.go
@@ -111,6 +111,46 @@ func publisher(ctx *builder.Context) error {
 		args = baseArgs
 	}
 
+	if ctx.Build.Platform.Build.HTTPProxySecret != "" {
+		optional := true
+		envs = append(envs, corev1.EnvVar{
+			Name: "HTTP_PROXY",
+			ValueFrom: &corev1.EnvVarSource{
+				SecretKeyRef: &corev1.SecretKeySelector{
+					LocalObjectReference: corev1.LocalObjectReference{
+						Name: ctx.Build.Platform.Build.HTTPProxySecret,
+					},
+					Key:      "HTTP_PROXY",
+					Optional: &optional,
+				},
+			},
+		})
+		envs = append(envs, corev1.EnvVar{
+			Name: "HTTPS_PROXY",
+			ValueFrom: &corev1.EnvVarSource{
+				SecretKeyRef: &corev1.SecretKeySelector{
+					LocalObjectReference: corev1.LocalObjectReference{
+						Name: ctx.Build.Platform.Build.HTTPProxySecret,
+					},
+					Key:      "HTTPS_PROXY",
+					Optional: &optional,
+				},
+			},
+		})
+		envs = append(envs, corev1.EnvVar{
+			Name: "NO_PROXY",
+			ValueFrom: &corev1.EnvVarSource{
+				SecretKeyRef: &corev1.SecretKeySelector{
+					LocalObjectReference: corev1.LocalObjectReference{
+						Name: ctx.Build.Platform.Build.HTTPProxySecret,
+					},
+					Key:      "NO_PROXY",
+					Optional: &optional,
+				},
+			},
+		})
+	}
+
 	pod := corev1.Pod{
 		TypeMeta: metav1.TypeMeta{
 			APIVersion: corev1.SchemeGroupVersion.String(),
diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go
index 166b862..25e94b3 100644
--- a/pkg/cmd/install.go
+++ b/pkg/cmd/install.go
@@ -74,6 +74,8 @@ func newCmdInstall(rootCmdOptions *RootCmdOptions) *cobra.Command {
 	cmd.Flags().StringVar(&impl.buildStrategy, "build-strategy", "", "Set the build strategy")
 	cmd.Flags().StringVar(&impl.buildTimeout, "build-timeout", "", "Set how long the build process can last")
 	cmd.Flags().StringVar(&impl.traitProfile, "trait-profile", "", "The profile to use for traits")
+	cmd.Flags().StringVar(&impl.httpProxySecret, "http-proxy-secret", "", "Configure the source of the secret holding HTTP proxy server details "+
+		"(HTTP_PROXY|HTTPS_PROXY|NO_PROXY)")
 
 	// maven settings
 	cmd.Flags().StringVar(&impl.localRepository, "local-repository", "", "Location of the local maven repository")
@@ -114,6 +116,7 @@ type installCmdOptions struct {
 	kits              []string
 	registry          v1alpha1.IntegrationPlatformRegistrySpec
 	traitProfile      string
+	httpProxySecret   string
 }
 
 // nolint: gocyclo
@@ -228,6 +231,10 @@ func (o *installCmdOptions) install(_ *cobra.Command, _ []string) error {
 			platform.Spec.Build.Maven.Settings = mavenSettings
 		}
 
+		if o.httpProxySecret != "" {
+			platform.Spec.Build.HTTPProxySecret = o.httpProxySecret
+		}
+
 		platform.Spec.Resources.Kits = o.kits
 
 		err = install.RuntimeObjectOrCollect(o.Context, c, namespace, collection, platform)