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

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


The following commit(s) were added to refs/heads/main by this push:
     new 24172037c fix(#4336): Restrict Knative binding provider execution for 
v1alpha1
24172037c is described below

commit 24172037c0a71caf96fa88afc5282d5edfddfde2
Author: Christoph Deppisch <cdeppi...@redhat.com>
AuthorDate: Tue May 9 19:31:13 2023 +0200

    fix(#4336): Restrict Knative binding provider execution for v1alpha1
    
    - Also restrict v1alpha1 binding provider
    - Only run the binding provider when Knative is installed on the cluster
    - Only run the binding provider when referencing a known Knative resource 
(e.g. broker, channel, service)
---
 pkg/util/bindings/knative_ref.go | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/pkg/util/bindings/knative_ref.go b/pkg/util/bindings/knative_ref.go
index 0bd0d7bcf..1ab488c1d 100644
--- a/pkg/util/bindings/knative_ref.go
+++ b/pkg/util/bindings/knative_ref.go
@@ -150,6 +150,17 @@ func (k V1alpha1KnativeRefBindingProvider) Translate(ctx 
V1alpha1BindingContext,
                return nil, nil
        }
 
+       if ok, err := isKnownKnativeResource(e.Ref); !ok {
+               // only operates on known Knative endpoint resources (e.g. 
channels, brokers)
+               return nil, err
+       }
+
+       if knativeInstalled, _ := knative.IsInstalled(ctx.Client); 
!knativeInstalled {
+               // works only when Knative is installed
+               return nil, fmt.Errorf("integration referencing Knative 
endpoint '%s' that cannot run, "+
+                       "because Knative is not installed on the cluster", 
e.Ref.Name)
+       }
+
        serviceType, err := knative.GetServiceType(*e.Ref)
        if err != nil {
                return nil, err

Reply via email to