You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2021/02/09 12:32:03 UTC
[camel-k] 02/06: Do not watch ServiceBindings if Service Binding
Operator is not installed (#1445)
This is an automated email from the ASF dual-hosted git repository.
nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit d85129a0775a382f7b633f8775b5d83af2a9538c
Author: John Poth <po...@gmail.com>
AuthorDate: Thu Jan 28 10:30:38 2021 +0100
Do not watch ServiceBindings if Service Binding Operator is not installed (#1445)
---
.../integration/integration_controller.go | 33 ++++++++++++++++------
1 file changed, 25 insertions(+), 8 deletions(-)
diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go
index 012a20c..6294d67 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -23,6 +23,7 @@ import (
appsv1 "k8s.io/api/apps/v1"
"k8s.io/api/batch/v1beta1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
@@ -218,15 +219,18 @@ func add(mgr manager.Manager, r reconcile.Reconciler) error {
return err
}
- // Watch ServiceBindings created
- err = c.Watch(&source.Kind{Type: &sb.ServiceBinding{}}, &handler.EnqueueRequestForOwner{
- OwnerType: &v1.Integration{},
- IsController: true,
- })
- if err != nil {
- return err
+ if IsServiceBindingOperatorInstalled(mgr) {
+ // Watch ServiceBindings created
+ err = c.Watch(&source.Kind{Type: &sb.ServiceBinding{}}, &handler.EnqueueRequestForOwner{
+ OwnerType: &v1.Integration{},
+ IsController: true,
+ })
+ if err != nil {
+ return err
+ }
+ } else {
+ log.Infof("ServiceBinding monitoring is disabled, install Service Binding Operator before camel-k if needed")
}
-
return nil
}
@@ -337,3 +341,16 @@ func (r *reconcileIntegration) update(ctx context.Context, base *v1.Integration,
return reconcile.Result{}, err
}
+
+func IsServiceBindingOperatorInstalled(mgr manager.Manager) bool {
+ u := &unstructured.Unstructured{}
+ u.SetGroupVersionKind(schema.GroupVersionKind{
+ Group: "apiextensions.k8s.io",
+ Kind: "CustomResourceDefinition",
+ Version: "v1beta1",
+ })
+ err := mgr.GetClient().Get(context.Background(), k8sclient.ObjectKey{
+ Name: "servicebindings.operators.coreos.com",
+ }, u)
+ return err == nil
+}