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 2021/02/10 17:30:27 UTC

[camel-k] 02/02: fix: The SAR request for ServiceBinding creation must be scoped to the operator watch namespace

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 7743ca2fd0ef1d75e60098b413994c6115ac8f1b
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Wed Feb 10 16:54:20 2021 +0100

    fix: The SAR request for ServiceBinding creation must be scoped to the operator watch namespace
---
 pkg/controller/integration/integration_controller.go | 2 +-
 pkg/platform/operator.go                             | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go
index 08307c2..e4a7335 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -226,7 +226,7 @@ func add(mgr manager.Manager, r reconcile.Reconciler, c client.Client) error {
 		return err
 	} else if !ok {
 		log.Info("Service binding is disabled, install the Service Binding Operator if needed")
-	} else if ok, err := kubernetes.CheckPermission(context.TODO(), c, sb.SchemeGroupVersion.Group, "servicebindings", "", "", "create"); err != nil {
+	} else if ok, err := kubernetes.CheckPermission(context.TODO(), c, sb.SchemeGroupVersion.Group, "servicebindings", platform.GetOperatorWatchNamespace(), "", "create"); err != nil {
 		return err
 	} else if !ok {
 		log.Info("Service binding is disabled, the operator is not granted permission to create ServiceBindings!")
diff --git a/pkg/platform/operator.go b/pkg/platform/operator.go
index d0ff38b..05538a9 100644
--- a/pkg/platform/operator.go
+++ b/pkg/platform/operator.go
@@ -67,6 +67,14 @@ func IsCurrentOperatorGlobal() bool {
 	return false
 }
 
+// GetOperatorWatchNamespace returns the namespace the operator watches
+func GetOperatorWatchNamespace() string {
+	if namespace, envSet := os.LookupEnv(operatorWatchNamespaceEnvVariable); envSet {
+		return namespace
+	}
+	return ""
+}
+
 // GetOperatorNamespace returns the namespace where the current operator is located (if set)
 func GetOperatorNamespace() string {
 	if podNamespace, envSet := os.LookupEnv(operatorNamespaceEnvVariable); envSet {