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 2020/02/26 18:34:46 UTC

[camel-k] 03/15: feat(openshift): Default to auto-configuring OpenShift internal container images registry

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 5227b8046d7ca4cb8a4a62fd9b0209b382f515f0
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Feb 24 14:33:21 2020 +0100

    feat(openshift): Default to auto-configuring OpenShift internal container images registry
---
 pkg/platform/defaults.go | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/pkg/platform/defaults.go b/pkg/platform/defaults.go
index 30cf3c1..caffed1 100644
--- a/pkg/platform/defaults.go
+++ b/pkg/platform/defaults.go
@@ -20,11 +20,13 @@ package platform
 import (
 	"context"
 	"fmt"
+	"strings"
 	"time"
 
 	corev1 "k8s.io/api/core/v1"
 	k8serrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/types"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/client"
@@ -82,6 +84,29 @@ func ConfigureDefaults(ctx context.Context, c client.Client, p *v1.IntegrationPl
 		return err
 	}
 
+	// Default to using OpenShift internal container images registry when using a strategy other than S2I
+	if p.Status.Cluster == v1.IntegrationPlatformClusterOpenShift &&
+		p.Status.Build.PublishStrategy != v1.IntegrationPlatformBuildPublishStrategyS2I &&
+		p.Status.Build.Registry.Address == "" {
+		p.Status.Build.Registry.Address = "image-registry.openshift-image-registry.svc:5000"
+
+		// Default to using the registry secret that's configured for the builder service account
+		if p.Status.Build.Registry.Secret == "" {
+			sa := corev1.ServiceAccount{}
+			err := c.Get(ctx, types.NamespacedName{Namespace: p.Namespace, Name: "camel-k-builder"}, &sa)
+			if err != nil {
+				return err
+			}
+			// We may want to read the secret keys instead of relying on the secret name scheme
+			for _, secret := range sa.Secrets {
+				if strings.Contains(secret.Name, "camel-k-builder-dockercfg") {
+					p.Status.Build.Registry.Secret = secret.Name
+					break
+				}
+			}
+		}
+	}
+
 	if verbose && p.Status.Build.PublishStrategy != v1.IntegrationPlatformBuildPublishStrategyS2I && p.Status.Build.Registry.Address == "" {
 		log.Log.Info("No registry specified for publishing images")
 	}