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 b96262394 feat(dependencies): bump kubernetes to 1.32
b96262394 is described below

commit b9626239497fab9aba8114c291be885a448666e7
Author: Pasquale Congiusti <pasquale.congiu...@gmail.com>
AuthorDate: Thu Feb 27 18:34:21 2025 +0100

    feat(dependencies): bump kubernetes to 1.32
    
    We need to drop the support for deprecated Service Binding ahead of time as 
their dependency would require upgrade to kube as well.
    
    Closes #6070
---
 docs/modules/traits/pages/service-binding.adoc |  40 ----
 e2e/common/traits/service_binding_test.go      | 102 ----------
 go.mod                                         |  39 ++--
 go.sum                                         |  81 ++++----
 pkg/apis/camel/v1/common_types.go              |   2 +
 pkg/apis/camel/v1/trait/service_binding.go     |   4 +-
 pkg/cmd/bind.go                                |  22 ---
 pkg/cmd/bind_test.go                           |   3 +-
 pkg/cmd/run.go                                 |  42 ++---
 pkg/trait/mount.go                             |  10 -
 pkg/trait/service_binding.go                   | 245 -------------------------
 pkg/trait/service_binding_test.go              |  93 ----------
 pkg/trait/trait_configure_test.go              |   8 +-
 pkg/trait/trait_register.go                    |   1 -
 14 files changed, 92 insertions(+), 600 deletions(-)

diff --git a/docs/modules/traits/pages/service-binding.adoc 
b/docs/modules/traits/pages/service-binding.adoc
deleted file mode 100755
index 75bb79edb..000000000
--- a/docs/modules/traits/pages/service-binding.adoc
+++ /dev/null
@@ -1,40 +0,0 @@
-= Service Binding Trait
-
-// Start of autogenerated code - DO NOT EDIT! (badges)
-[.badges]
-[.badge-key]##Deprecated since##[.badge-unsupported]##2.5.0##
-// End of autogenerated code - DO NOT EDIT! (badges)
-// Start of autogenerated code - DO NOT EDIT! (description)
-The Service Binding trait allows users to connect to Services in Kubernetes:
-https://github.com/k8s-service-bindings/spec#service-binding
-As the specification is still evolving this is subject to change.
-
-
-This trait is available in the following profiles: **Kubernetes, Knative, 
OpenShift**.
-
-// End of autogenerated code - DO NOT EDIT! (description)
-// Start of autogenerated code - DO NOT EDIT! (configuration)
-== Configuration
-
-Trait properties can be specified when running any integration with the CLI:
-[source,console]
-----
-$ kamel run --trait service-binding.[key]=[value] --trait 
service-binding.[key2]=[value2] integration.yaml
-----
-The following configuration options are available:
-
-[cols="2m,1m,5a"]
-|===
-|Property | Type | Description
-
-| service-binding.enabled
-| bool
-| Can be used to enable or disable a trait. All traits share this common 
property.
-
-| service-binding.services
-| []string
-| List of Services in the form [[apigroup/]version:]kind:[namespace/]name
-
-|===
-
-// End of autogenerated code - DO NOT EDIT! (configuration)
diff --git a/e2e/common/traits/service_binding_test.go 
b/e2e/common/traits/service_binding_test.go
deleted file mode 100644
index 84086f5ad..000000000
--- a/e2e/common/traits/service_binding_test.go
+++ /dev/null
@@ -1,102 +0,0 @@
-//go:build integration
-// +build integration
-
-// To enable compilation of this file in Goland, go to "Settings -> Go -> 
Vendoring & Build Tags -> Custom Tags" and add "integration"
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package common
-
-import (
-       "context"
-       "fmt"
-       "testing"
-
-       . "github.com/onsi/gomega"
-
-       corev1 "k8s.io/api/core/v1"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-       . "github.com/apache/camel-k/v2/e2e/support"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-)
-
-func TestServiceBindingTrait(t *testing.T) {
-       t.Parallel()
-       WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
-               t.Run("Integration Service Binding", func(t *testing.T) {
-                       // Create our mock service config
-                       host := "hostname"
-                       port := "12324"
-                       service := &corev1.ConfigMap{
-                               TypeMeta: metav1.TypeMeta{
-                                       Kind:       "ConfigMap",
-                                       APIVersion: "v1",
-                               },
-                               ObjectMeta: metav1.ObjectMeta{
-                                       Name:      "mock-service-config-it",
-                                       Namespace: ns,
-                                       Annotations: map[string]string{
-                                               "service.binding/host": 
"path={.data.service-host}",
-                                               "service.binding/port": 
"path={.data.service-port}",
-                                       },
-                               },
-                               Data: map[string]string{
-                                       "service-host": host,
-                                       "service-port": port,
-                               },
-                       }
-                       serviceRef := fmt.Sprintf("%s:%s/%s", 
service.TypeMeta.Kind, ns, service.ObjectMeta.Name)
-                       g.Expect(TestClient(t).Create(ctx, 
service)).To(Succeed())
-                       // Create integration and bind it to our service
-                       name := RandomizedSuffixName("service-binding")
-                       g.Expect(KamelRun(t, ctx, ns, 
"files/ServiceBinding.java", "--name", name, "--connect", 
serviceRef).Execute()).To(Succeed())
-
-                       g.Eventually(IntegrationPodPhase(t, ctx, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ctx, ns, 
name, v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-                       g.Eventually(IntegrationLogs(t, ctx, ns, name), 
TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("%s:%s", host, port)))
-               })
-
-               t.Run("Binding Service Binding", func(t *testing.T) {
-                       // Create our mock service config
-                       message := "hello"
-                       service := &corev1.ConfigMap{
-                               TypeMeta: metav1.TypeMeta{
-                                       Kind:       "ConfigMap",
-                                       APIVersion: "v1",
-                               },
-                               ObjectMeta: metav1.ObjectMeta{
-                                       Name:      "mock-service-config-kb",
-                                       Namespace: ns,
-                                       Annotations: map[string]string{
-                                               "service.binding/message": 
"path={.data.message}",
-                                       },
-                               },
-                               Data: map[string]string{
-                                       "message": message,
-                               },
-                       }
-                       serviceRef := fmt.Sprintf("%s:%s/%s", 
service.TypeMeta.Kind, ns, service.ObjectMeta.Name)
-                       g.Expect(TestClient(t).Create(ctx, 
service)).To(Succeed())
-                       g.Expect(CreateTimerKamelet(t, ctx, ns, 
"my-timer-source")()).To(Succeed())
-                       g.Expect(KamelBind(t, ctx, ns, "my-timer-source", 
"log:info", "-p", "source.message=Hello+world", "--connect", 
serviceRef).Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ctx, ns, 
"my-timer-source-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-                       g.Eventually(IntegrationLogs(t, ctx, ns, 
"my-timer-source-to-log")).Should(ContainSubstring("Body: Hello+world"))
-               })
-       })
-}
diff --git a/go.mod b/go.mod
index 28b8fdaa6..84e4bfd85 100644
--- a/go.mod
+++ b/go.mod
@@ -24,7 +24,6 @@ require (
        github.com/prometheus/client_golang v1.21.0
        github.com/prometheus/client_model v0.6.1
        github.com/prometheus/common v0.62.0
-       github.com/redhat-developer/service-binding-operator v1.4.0
        github.com/rs/xid v1.6.0
        github.com/sirupsen/logrus v1.9.3
        github.com/spf13/cobra v1.9.1
@@ -41,26 +40,28 @@ require (
        golang.org/x/text v0.22.0
        golang.org/x/time v0.10.0
        gopkg.in/yaml.v2 v2.4.0
-       k8s.io/api v0.30.8
-       k8s.io/apiextensions-apiserver v0.30.8
-       k8s.io/apimachinery v0.30.8
-       k8s.io/cli-runtime v0.30.8
-       k8s.io/client-go v0.30.8
+       k8s.io/api v0.32.2
+       k8s.io/apiextensions-apiserver v0.32.2
+       k8s.io/apimachinery v0.32.2
+       k8s.io/cli-runtime v0.32.2
+       k8s.io/client-go v0.32.2
        k8s.io/gengo v0.0.0-20240404160639-a0386bf69313
        k8s.io/klog/v2 v2.130.1
-       k8s.io/kubectl v0.30.8
-       k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
+       k8s.io/kubectl v0.32.2
+       k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
        knative.dev/eventing v0.43.3
        knative.dev/pkg v0.0.0-20241021183759-9b9d535af5ad
        knative.dev/serving v0.43.1
-       sigs.k8s.io/controller-runtime v0.18.5
+       sigs.k8s.io/controller-runtime v0.20.2
        sigs.k8s.io/structured-merge-diff/v4 v4.5.0
 )
 
+require github.com/redhat-developer/service-binding-operator v1.4.1
+
 require (
        contrib.go.opencensus.io/exporter/ocagent 
v0.7.1-0.20200907061046-05415f1de66d // indirect
        contrib.go.opencensus.io/exporter/prometheus v0.4.2 // indirect
-       github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // 
indirect
+       github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // 
indirect
        github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // 
indirect
        github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 // indirect
        github.com/beorn7/perks v1.0.1 // indirect
@@ -77,7 +78,8 @@ require (
        github.com/docker/distribution v2.8.2+incompatible // indirect
        github.com/docker/docker-credential-helpers v0.7.0 // indirect
        github.com/emicklei/go-restful/v3 v3.12.1 // indirect
-       github.com/evanphx/json-patch/v5 v5.9.0 // indirect
+       github.com/evanphx/json-patch/v5 v5.9.11 // indirect
+       github.com/fxamacker/cbor/v2 v2.7.0 // indirect
        github.com/go-kit/log v0.2.1 // indirect
        github.com/go-logfmt/logfmt v0.5.1 // indirect
        github.com/go-logr/zapr v1.3.0 // indirect
@@ -87,6 +89,7 @@ require (
        github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // 
indirect
        github.com/golang/protobuf v1.5.4 // indirect
+       github.com/google/btree v1.1.3 // indirect
        github.com/google/gnostic-models v0.6.8 // indirect
        github.com/google/go-cmp v0.6.0 // indirect
        github.com/google/go-containerregistry v0.20.2 // indirect
@@ -105,8 +108,8 @@ require (
        github.com/mailru/easyjson v0.7.7 // indirect
        github.com/mitchellh/go-homedir v1.1.0 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
-       github.com/moby/spdystream v0.2.0 // indirect
-       github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect
+       github.com/moby/spdystream v0.5.0 // indirect
+       github.com/moby/term v0.5.0 // indirect
        github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 
indirect
        github.com/modern-go/reflect2 v1.0.2 // indirect
        github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // 
indirect
@@ -128,6 +131,7 @@ require (
        github.com/spf13/cast v1.6.0 // indirect
        github.com/subosito/gotenv v1.6.0 // indirect
        github.com/vbatts/tar-split v0.11.3 // indirect
+       github.com/x448/float16 v0.8.4 // indirect
        go.opencensus.io v0.24.0 // indirect
        golang.org/x/crypto v0.31.0 // indirect
        golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
@@ -137,15 +141,16 @@ require (
        golang.org/x/tools v0.28.0 // indirect
        gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
        google.golang.org/api v0.183.0 // indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20240814211410-ddb44dafa142 // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240814211410-ddb44dafa142 // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20240826202546-f6391c0de4c7 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240826202546-f6391c0de4c7 // indirect
        google.golang.org/grpc v1.67.1 // indirect
        google.golang.org/protobuf v1.36.1 // indirect
+       gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
        gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
-       k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8 // indirect
+       k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
        knative.dev/networking v0.0.0-20241022012959-60e29ff520dc // indirect
-       sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+       sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
        sigs.k8s.io/yaml v1.4.0 // indirect
 )
diff --git a/go.sum b/go.sum
index c9f7d507b..b976a0a63 100644
--- a/go.sum
+++ b/go.sum
@@ -35,8 +35,8 @@ contrib.go.opencensus.io/exporter/ocagent 
v0.7.1-0.20200907061046-05415f1de66d/g
 contrib.go.opencensus.io/exporter/prometheus v0.4.2 
h1:sqfsYl5GIY/L570iT+l93ehxaWJs2/OwXtiWwew3oAg=
 contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod 
h1:dvEHbiKmgvbr5pjaF9fpw1KeYcjrnC1J8B+JKjsZyRQ=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod 
h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 
h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod 
h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 
h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod 
h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/toml v1.2.1/go.mod 
h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod 
h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
@@ -111,13 +111,15 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod 
h1:6rpuAdCZL397s3pYoYcLgu1m
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/evanphx/json-patch v5.9.11+incompatible 
h1:ixHHqfcGvxhWkniF1tWxBHA0yb4Z+d1UQi45df52xW8=
 github.com/evanphx/json-patch v5.9.11+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch/v5 v5.9.0 
h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
-github.com/evanphx/json-patch/v5 v5.9.0/go.mod 
h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
+github.com/evanphx/json-patch/v5 v5.9.11 
h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
+github.com/evanphx/json-patch/v5 v5.9.11/go.mod 
h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
 github.com/frankban/quicktest v1.14.6 
h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
 github.com/frankban/quicktest v1.14.6/go.mod 
h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
 github.com/fsnotify/fsnotify v1.4.7/go.mod 
h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.8.0 
h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
 github.com/fsnotify/fsnotify v1.8.0/go.mod 
h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
+github.com/fxamacker/cbor/v2 v2.7.0 
h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod 
h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
 github.com/gertd/go-pluralize v0.2.1 
h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA=
 github.com/gertd/go-pluralize v0.2.1/go.mod 
h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk=
 github.com/ghodss/yaml v1.0.0/go.mod 
h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
@@ -192,6 +194,8 @@ github.com/golang/protobuf v1.5.4 
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek
 github.com/golang/protobuf v1.5.4/go.mod 
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
+github.com/google/btree v1.1.3/go.mod 
h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
 github.com/google/gnostic-models v0.6.8 
h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
 github.com/google/gnostic-models v0.6.8/go.mod 
h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
 github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -236,7 +240,6 @@ github.com/google/uuid v1.6.0 
h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod 
h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/gorilla/websocket v1.4.2/go.mod 
h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gorilla/websocket v1.5.3 
h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
 github.com/gorilla/websocket v1.5.3/go.mod 
h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod 
h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
@@ -304,10 +307,10 @@ github.com/mitchellh/go-homedir v1.1.0 
h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG
 github.com/mitchellh/go-homedir v1.1.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/spdystream v0.2.0 
h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
-github.com/moby/spdystream v0.2.0/go.mod 
h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587 
h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA=
-github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod 
h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
+github.com/moby/spdystream v0.5.0 
h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
+github.com/moby/spdystream v0.5.0/go.mod 
h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
+github.com/moby/term v0.5.0/go.mod 
h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd 
h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod 
h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -388,8 +391,8 @@ github.com/prometheus/procfs v0.15.1 
h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg
 github.com/prometheus/procfs v0.15.1/go.mod 
h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
 github.com/prometheus/statsd_exporter v0.22.7 
h1:7Pji/i2GuhK6Lu7DHrtTkFmNBCudCPT1pX2CziuyQR0=
 github.com/prometheus/statsd_exporter v0.22.7/go.mod 
h1:N/TevpjkIh9ccs6nuzY3jQn9dFqnUakOjnEuMPJJJnI=
-github.com/redhat-developer/service-binding-operator v1.4.0 
h1:i3xHPfm+iCE4JOGyrmKl/DpAuHmBj98zVOxUQAt7VSI=
-github.com/redhat-developer/service-binding-operator v1.4.0/go.mod 
h1:iuHe2uSbhFV/Z1iVh8ncmiRc+RLjgDZkDkkUMCwGEXU=
+github.com/redhat-developer/service-binding-operator v1.4.1 
h1:rBjvdnn9XYVWyb7EpEWqtugkpzu5pcIsSV5sczj0lrc=
+github.com/redhat-developer/service-binding-operator v1.4.1/go.mod 
h1:3f2aNbRJsaLKqZwcEaoZ427W/AtZDr0WKKyIxAdoyJ0=
 github.com/rickb777/date v1.13.0 
h1:+8AmwLuY1d/rldzdqvqTEg7107bZ8clW37x4nsdG3Hs=
 github.com/rickb777/date v1.13.0/go.mod 
h1:GZf3LoGnxPWjX+/1TXOuzHefZFDovTyNLHDMd3qH70k=
 github.com/rickb777/plural v1.2.1 
h1:UitRAgR70+yHFt26Tmj/F9dU9aV6UfjGXSbO1DcC9/U=
@@ -454,6 +457,8 @@ github.com/valyala/bytebufferpool v1.0.0 
h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
 github.com/valyala/bytebufferpool v1.0.0/go.mod 
h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
 github.com/vbatts/tar-split v0.11.3 
h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck=
 github.com/vbatts/tar-split v0.11.3/go.mod 
h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod 
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
 github.com/yuin/goldmark v1.1.25/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.32/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -759,10 +764,10 @@ google.golang.org/genproto 
v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
 google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod 
h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 
h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20240814211410-ddb44dafa142/go.mod 
h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 
h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240814211410-ddb44dafa142/go.mod 
h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7 
h1:YcyjlL1PRr2Q17/I0dPk2JmYS5CDXfcdb2Z3YRioEbw=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20240826202546-f6391c0de4c7/go.mod 
h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 
h1:2035KHhUv+EpyB+hWgJnaWKJOdX1E95w2S8Rr4uWKTs=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240826202546-f6391c0de4c7/go.mod 
h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -801,6 +806,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod 
h1:Co6ibVJAznAaIkqp8
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 
h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod 
h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod 
h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
@@ -830,29 +837,29 @@ honnef.co/go/tools 
v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod 
h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.3/go.mod 
h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod 
h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.30.8 h1:Y+yZRF3c1WC0MTkLe0qBkiLCquRNa4I21/iDioGMCbo=
-k8s.io/api v0.30.8/go.mod h1:89IE5MzirZ5HHxU/Hq1/KWGqXkhXClu/FHGesFhQ0A4=
-k8s.io/apiextensions-apiserver v0.30.8 
h1:Y0JqPRpiiEmWg7OptY+iwGDol970NXZE0j0LcPwO0U8=
-k8s.io/apiextensions-apiserver v0.30.8/go.mod 
h1:Lg5U2+EIgqSmBvLzxB4bI2K6k0Hx59BZXpHyeiWLB8M=
-k8s.io/apimachinery v0.30.8 h1:9jyTItYzmJc00cBDxZC5ArFNxUeKCwbw0m760iFUMKY=
-k8s.io/apimachinery v0.30.8/go.mod 
h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
-k8s.io/apiserver v0.30.8 h1:DOWCFq7xogXYGmDyRTDwCmftStoWjvSquhM/czhU86M=
-k8s.io/apiserver v0.30.8/go.mod h1:OXjKIUTmtoYffVxIOqHDfMpPtqWQoPLpwvsWT++AXiI=
-k8s.io/cli-runtime v0.30.8 h1:4lVts4CdKiGQ1nA3YMmkxXNrJOvW9IVSxBrTR780IoU=
-k8s.io/cli-runtime v0.30.8/go.mod 
h1:IPm4dYRlYf7DYIsWOPmkg5sTchCwsdcOhk7sibq87vg=
-k8s.io/client-go v0.30.8 h1:fC1SQMZm7bSWiVv9ydN+nv+sqGVAxMdf/5eKUVffNJE=
-k8s.io/client-go v0.30.8/go.mod h1:daF3UcGVqGPHvH5mn/ESkp/VoR8i9tg9IBfKr+AeFYo=
+k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw=
+k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y=
+k8s.io/apiextensions-apiserver v0.32.2 
h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4=
+k8s.io/apiextensions-apiserver v0.32.2/go.mod 
h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA=
+k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ=
+k8s.io/apimachinery v0.32.2/go.mod 
h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/apiserver v0.32.2 h1:WzyxAu4mvLkQxwD9hGa4ZfExo3yZZaYzoYvvVDlM6vw=
+k8s.io/apiserver v0.32.2/go.mod h1:PEwREHiHNU2oFdte7BjzA1ZyjWjuckORLIK/wLV5goM=
+k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks=
+k8s.io/cli-runtime v0.32.2/go.mod 
h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8=
+k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA=
+k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94=
 k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 
h1:wBIDZID8ju9pwOiLlV22YYKjFGtiNSWgHf5CnKLRUuM=
 k8s.io/gengo v0.0.0-20240404160639-a0386bf69313/go.mod 
h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
 k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
 k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8 
h1:1Wof1cGQgA5pqgo8MxKPtf+qN6Sh/0JzznmeGPm1HnE=
-k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8/go.mod 
h1:Os6V6dZwLNii3vxFpxcNaTmH8LJJBkOTg1N0tOA0fvA=
-k8s.io/kubectl v0.30.8 h1:p/oOy3lbBAJ2secYbIB5w89fqVGJpMcPePlzkcJWEwI=
-k8s.io/kubectl v0.30.8/go.mod h1:BZH/naEOTQfvADYydXGHfe5L+F46oj0WFWW8nuxuYM8=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 
h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f 
h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod 
h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
+k8s.io/kubectl v0.32.2 h1:TAkag6+XfSBgkqK9I7ZvwtF0WVtUAvK8ZqTt+5zi1Us=
+k8s.io/kubectl v0.32.2/go.mod h1:+h/NQFSPxiDZYX/WZaWw9fwYezGLISP0ud8nQKg+3g8=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 
h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod 
h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
 knative.dev/eventing v0.43.3 h1:xt10rMoe6t1hFPPrnsR5NYe/vWRXQqLgRK8lS6n5mU8=
 knative.dev/eventing v0.43.3/go.mod 
h1:pdrF+bEUfRkNn9ifWXS7DoVj5W31gA5KQVd8iwplXUo=
 knative.dev/networking v0.0.0-20241022012959-60e29ff520dc 
h1:0d9XXRLlyuHfINZLlYqo/BYe/+chqqNBMLKJldjTbtw=
@@ -864,10 +871,10 @@ knative.dev/serving v0.43.1/go.mod 
h1:KhhRhb3HPyKSm924/QRjqtAj2U0x5UZM217SxVTbib
 rsc.io/binaryregexp v0.2.0/go.mod 
h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/controller-runtime v0.18.5 
h1:nTHio/W+Q4aBlQMgbnC5hZb4IjIidyrizMai9P6n4Rk=
-sigs.k8s.io/controller-runtime v0.18.5/go.mod 
h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd 
h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod 
h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/controller-runtime v0.20.2 
h1:/439OZVxoEc02psi1h4QO3bHzTgu49bb347Xp4gW1pc=
+sigs.k8s.io/controller-runtime v0.20.2/go.mod 
h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 
h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod 
h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
 sigs.k8s.io/structured-merge-diff/v4 v4.5.0 
h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=
 sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod 
h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
 sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
diff --git a/pkg/apis/camel/v1/common_types.go 
b/pkg/apis/camel/v1/common_types.go
index 1acb0759f..71d4bba36 100644
--- a/pkg/apis/camel/v1/common_types.go
+++ b/pkg/apis/camel/v1/common_types.go
@@ -199,6 +199,7 @@ type Traits struct {
        // The configuration of Environment trait
        Environment *trait.EnvironmentTrait `property:"environment" 
json:"environment,omitempty"`
        // The configuration of Error Handler trait
+       // Deprecated: no longer in use.
        ErrorHandler *trait.ErrorHandlerTrait `property:"error-handler" 
json:"error-handler,omitempty"`
        // The configuration of GC trait
        GC *trait.GCTrait `property:"gc" json:"gc,omitempty"`
@@ -250,6 +251,7 @@ type Traits struct {
        // The configuration of Service trait
        Service *trait.ServiceTrait `property:"service" 
json:"service,omitempty"`
        // The configuration of Service Binding trait
+       // Deprecated: no longer in use.
        ServiceBinding *trait.ServiceBindingTrait `property:"service-binding" 
json:"service-binding,omitempty"`
        // The configuration of Telemetry trait
        Telemetry *trait.TelemetryTrait `property:"telemetry" 
json:"telemetry,omitempty"`
diff --git a/pkg/apis/camel/v1/trait/service_binding.go 
b/pkg/apis/camel/v1/trait/service_binding.go
index 4b5a8bb63..e7fea36ef 100644
--- a/pkg/apis/camel/v1/trait/service_binding.go
+++ b/pkg/apis/camel/v1/trait/service_binding.go
@@ -17,7 +17,7 @@ limitations under the License.
 
 package trait
 
-// WARNING: The Service Binding trait is **deprecated** and will removed in 
future release versions.
+// WARNING: This trait is no longer in use.
 //
 
 // The Service Binding trait allows users to connect to Services in Kubernetes:
@@ -25,7 +25,7 @@ package trait
 // As the specification is still evolving this is subject to change.
 //
 // +camel-k:trait=service-binding.
-// +camel-k:deprecated=2.5.0.
+// +camel-k:internal.
 type ServiceBindingTrait struct {
        Trait `property:",squash" json:",inline"`
        // List of Services in the form 
[[apigroup/]version:]kind:[namespace/]name
diff --git a/pkg/cmd/bind.go b/pkg/cmd/bind.go
index d65df8db4..d1af4c390 100644
--- a/pkg/cmd/bind.go
+++ b/pkg/cmd/bind.go
@@ -54,7 +54,6 @@ func newCmdBind(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *bindCmdOptions
                Annotations:       make(map[string]string),
        }
 
-       cmd.Flags().StringArrayP("connect", "c", nil, "A ServiceBinding or 
Provisioned Service that the integration should bind to, specified as 
[[apigroup/]version:]kind:[namespace/]name")
        cmd.Flags().String("error-handler", "", `Add error handler 
(none|log|sink:<endpoint>). Sink endpoints are expected in the format 
"[[apigroup/]version:]kind:[namespace/]name", plain Camel URIs or Kamelet 
name.`)
        cmd.Flags().String("name", "", "Name for the binding")
        cmd.Flags().StringP("output", "o", "", "Output format. One of: 
json|yaml")
@@ -81,7 +80,6 @@ type bindCmdOptions struct {
        *RootCmdOptions
        ErrorHandler   string   `mapstructure:"error-handler" yaml:",omitempty"`
        Name           string   `mapstructure:"name" yaml:",omitempty"`
-       Connects       []string `mapstructure:"connects" yaml:",omitempty"`
        OutputFormat   string   `mapstructure:"output" yaml:",omitempty"`
        Properties     []string `mapstructure:"properties" yaml:",omitempty"`
        SkipChecks     bool     `mapstructure:"skip-checks" yaml:",omitempty"`
@@ -227,9 +225,6 @@ func (o *bindCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
                        binding.Spec.Steps = append(binding.Spec.Steps, step)
                }
        }
-       for _, item := range o.Connects {
-               o.Traits = append(o.Traits, 
fmt.Sprintf("service-binding.services=%s", item))
-       }
 
        if len(o.Traits) > 0 {
                if binding.Annotations == nil {
@@ -472,23 +467,6 @@ func (o *bindCmdOptions) checkCompliance(cmd 
*cobra.Command, endpoint v1.Endpoin
                        }
                        return err
                }
-               if kamelet.Spec.Definition != nil && 
len(kamelet.Spec.Definition.Required) > 0 {
-                       pMap, err := endpoint.Properties.GetPropertyMap()
-                       if err != nil {
-                               return err
-                       }
-                       for _, reqProp := range 
kamelet.Spec.Definition.Required {
-                               found := false
-                               if endpoint.Properties != nil {
-                                       if _, contains := pMap[reqProp]; 
contains {
-                                               found = true
-                                       }
-                               }
-                               if !found && len(o.Connects) == 0 {
-                                       return fmt.Errorf("binding is missing 
required property %q for Kamelet %q", reqProp, key.Name)
-                               }
-                       }
-               }
        }
        return nil
 }
diff --git a/pkg/cmd/bind_test.go b/pkg/cmd/bind_test.go
index 450f6aca3..a85eb00d6 100644
--- a/pkg/cmd/bind_test.go
+++ b/pkg/cmd/bind_test.go
@@ -177,7 +177,7 @@ status: {}
 func TestBindTraits(t *testing.T) {
        buildCmdOptions, bindCmd, _ := initializeBindCmdOptions(t)
        output, err := ExecuteCommand(bindCmd, cmdBind, "my:src", "my:dst", 
"-o", "yaml",
-               "-t", "mount.configs=configmap:my-cm", "-c", 
"my-service-binding")
+               "-t", "mount.configs=configmap:my-cm")
        assert.Equal(t, "yaml", buildCmdOptions.OutputFormat)
 
        require.NoError(t, err)
@@ -187,7 +187,6 @@ metadata:
   annotations:
     camel.apache.org/operator.id: camel-k
     trait.camel.apache.org/mount.configs: configmap:my-cm
-    trait.camel.apache.org/service-binding.services: my-service-binding
   creationTimestamp: null
   name: my-to-my
 spec:
diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index 505696681..b4ad0579e 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -82,9 +82,6 @@ func newCmdRun(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *runCmdOptions)
 
        cmd.Flags().String("name", "", "The integration name")
        cmd.Flags().String("image", "", "An image built externally (ie, via 
CICD). Enabling it will skip the Integration build phase.")
-       // Deprecated: service binding parameter won't be supported in future 
releases.
-       cmd.Flags().StringArrayP("connect", "c", nil, "A Service that the 
integration should bind to, specified as 
[[apigroup/]version:]kind:[namespace/]name."+
-               "Deprecated: service binding won't be supported in future 
releases.")
        cmd.Flags().StringArrayP("dependency", "d", nil, `A dependency that 
should be included, e.g., "-d camel:mail" for a Camel component, "-d 
mvn:org.my:app:1.0" for a Maven dependency`)
        cmd.Flags().BoolP("wait", "w", false, "Wait for the integration to be 
running")
        cmd.Flags().StringP("kit", "k", "", "The kit used to run the 
integration")
@@ -129,25 +126,23 @@ func newCmdRun(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *runCmdOptions)
 
 type runCmdOptions struct {
        *RootCmdOptions    `json:"-"`
-       Compression        bool   `mapstructure:"compression" yaml:",omitempty"`
-       Wait               bool   `mapstructure:"wait" yaml:",omitempty"`
-       Logs               bool   `mapstructure:"logs" yaml:",omitempty"`
-       Sync               bool   `mapstructure:"sync" yaml:",omitempty"`
-       Dev                bool   `mapstructure:"dev" yaml:",omitempty"`
-       UseFlows           bool   `mapstructure:"use-flows" yaml:",omitempty"`
-       Save               bool   `mapstructure:"save" yaml:",omitempty" 
kamel:"omitsave"`
-       IntegrationKit     string `mapstructure:"kit" yaml:",omitempty"`
-       IntegrationName    string `mapstructure:"name" yaml:",omitempty"`
-       ContainerImage     string `mapstructure:"image" yaml:",omitempty"`
-       Profile            string `mapstructure:"profile" yaml:",omitempty"`
-       IntegrationProfile string `mapstructure:"integration-profile" 
yaml:",omitempty"`
-       OperatorID         string `mapstructure:"operator-id" yaml:",omitempty"`
-       OutputFormat       string `mapstructure:"output" yaml:",omitempty"`
-       PodTemplate        string `mapstructure:"pod-template" 
yaml:",omitempty"`
-       ServiceAccount     string `mapstructure:"service-account" 
yaml:",omitempty"`
-       // Deprecated: service binding parameter won't be supported in future 
releases.
-       Connects  []string `mapstructure:"connects" yaml:",omitempty"`
-       Resources []string `mapstructure:"resources" yaml:",omitempty"`
+       Compression        bool     `mapstructure:"compression" 
yaml:",omitempty"`
+       Wait               bool     `mapstructure:"wait" yaml:",omitempty"`
+       Logs               bool     `mapstructure:"logs" yaml:",omitempty"`
+       Sync               bool     `mapstructure:"sync" yaml:",omitempty"`
+       Dev                bool     `mapstructure:"dev" yaml:",omitempty"`
+       UseFlows           bool     `mapstructure:"use-flows" yaml:",omitempty"`
+       Save               bool     `mapstructure:"save" yaml:",omitempty" 
kamel:"omitsave"`
+       IntegrationKit     string   `mapstructure:"kit" yaml:",omitempty"`
+       IntegrationName    string   `mapstructure:"name" yaml:",omitempty"`
+       ContainerImage     string   `mapstructure:"image" yaml:",omitempty"`
+       Profile            string   `mapstructure:"profile" yaml:",omitempty"`
+       IntegrationProfile string   `mapstructure:"integration-profile" 
yaml:",omitempty"`
+       OperatorID         string   `mapstructure:"operator-id" 
yaml:",omitempty"`
+       OutputFormat       string   `mapstructure:"output" yaml:",omitempty"`
+       PodTemplate        string   `mapstructure:"pod-template" 
yaml:",omitempty"`
+       ServiceAccount     string   `mapstructure:"service-account" 
yaml:",omitempty"`
+       Resources          []string `mapstructure:"resources" yaml:",omitempty"`
        // Deprecated: openapi parameter won't be supported in future releases.
        OpenAPIs        []string `mapstructure:"open-apis" yaml:",omitempty"`
        Dependencies    []string `mapstructure:"dependencies" yaml:",omitempty"`
@@ -750,9 +745,6 @@ func (o *runCmdOptions) convertOptionsToTraits(cmd 
*cobra.Command, c client.Clie
        for _, item := range o.EnvVars {
                o.Traits = append(o.Traits, fmt.Sprintf("environment.vars=%s", 
item))
        }
-       for _, item := range o.Connects {
-               o.Traits = append(o.Traits, 
fmt.Sprintf("service-binding.services=%s", item))
-       }
 
        return nil
 }
diff --git a/pkg/trait/mount.go b/pkg/trait/mount.go
index e3a3c0744..65247e11e 100644
--- a/pkg/trait/mount.go
+++ b/pkg/trait/mount.go
@@ -63,8 +63,6 @@ func (t *mountTrait) Configure(e *Environment) (bool, 
*TraitCondition, error) {
        if e.Integration == nil || !e.IntegrationInRunningPhases() {
                return false, nil, nil
        }
-       // Look for secrets which may have been created by service binding trait
-       t.addServiceBindingSecret(e)
 
        // Validate resources and pvcs
        for _, c := range t.Configs {
@@ -278,14 +276,6 @@ func (t *mountTrait) mountResource(vols *[]corev1.Volume, 
mnts *[]corev1.VolumeM
        return mnt.MountPath
 }
 
-func (t *mountTrait) addServiceBindingSecret(e *Environment) {
-       e.Resources.VisitSecret(func(secret *corev1.Secret) {
-               if secret.Labels[serviceBindingLabel] == boolean.TrueString {
-                       t.Configs = append(t.Configs, "secret:"+secret.Name)
-               }
-       })
-}
-
 // ParseEmptyDirVolume will parse and return an empty-dir volume.
 func ParseEmptyDirVolume(item string) (*corev1.Volume, *corev1.VolumeMount, 
error) {
        volumeParts := strings.Split(item, ":")
diff --git a/pkg/trait/service_binding.go b/pkg/trait/service_binding.go
deleted file mode 100644
index ce790e8ae..000000000
--- a/pkg/trait/service_binding.go
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package trait
-
-import (
-       corev1 "k8s.io/api/core/v1"
-       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-       "k8s.io/client-go/dynamic"
-       "k8s.io/utils/ptr"
-
-       sb 
"github.com/redhat-developer/service-binding-operator/apis/binding/v1alpha1"
-       
"github.com/redhat-developer/service-binding-operator/pkg/client/kubernetes"
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline"
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline/context"
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline/handler/collect"
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline/handler/mapping"
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline/handler/naming"
-
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
-       "github.com/apache/camel-k/v2/pkg/util/boolean"
-       "github.com/apache/camel-k/v2/pkg/util/camel"
-       "github.com/apache/camel-k/v2/pkg/util/reference"
-)
-
-const (
-       serviceBindingTraitID    = "service-binding"
-       serviceBindingTraitOrder = 250
-
-       serviceBindingMountPointAnnotation = 
"camel.apache.org/serviceBinding.mount-point"
-       serviceBindingLabel                = "camel.apache.org/serviceBinding"
-)
-
-var handlers = []pipeline.Handler{
-       pipeline.HandlerFunc(collect.PreFlight),
-       pipeline.HandlerFunc(collect.ProvisionedService),
-       pipeline.HandlerFunc(collect.BindingDefinitions),
-       pipeline.HandlerFunc(collect.BindingItems),
-       pipeline.HandlerFunc(collect.OwnedResources),
-       pipeline.HandlerFunc(mapping.Handle),
-       pipeline.HandlerFunc(naming.Handle),
-}
-
-type serviceBindingTrait struct {
-       BaseTrait
-       traitv1.ServiceBindingTrait `property:",squash"`
-}
-
-func newServiceBindingTrait() Trait {
-       return &serviceBindingTrait{
-               BaseTrait: NewBaseTrait(serviceBindingTraitID, 
serviceBindingTraitOrder),
-       }
-}
-
-func (t *serviceBindingTrait) Configure(e *Environment) (bool, 
*TraitCondition, error) {
-       if e.Integration == nil {
-               return false, nil, nil
-       }
-       if !ptr.Deref(t.Enabled, true) {
-               return false, 
NewIntegrationConditionUserDisabled("ServiceBinding"), nil
-       }
-       if len(t.Services) == 0 {
-               return false, nil, nil
-       }
-
-       var condition *TraitCondition
-       enabled := e.IntegrationInPhase(v1.IntegrationPhaseInitialization) || 
e.IntegrationInRunningPhases()
-       if enabled {
-               condition = NewIntegrationCondition(
-                       "ServiceBinding",
-                       v1.IntegrationConditionTraitInfo,
-                       corev1.ConditionTrue,
-                       TraitConfigurationReason,
-                       "ServiceBinding trait is deprecated as the Service 
Binding Operator is no longer supported. It may be removed in future version.",
-               )
-       }
-
-       return enabled, condition, nil
-}
-
-func (t *serviceBindingTrait) Apply(e *Environment) error {
-       ctx, err := t.getContext(e)
-       if err != nil {
-               return err
-       }
-       // let the SBO retry policy be controlled by Camel-k
-       err = process(ctx, handlers)
-       if err != nil {
-               return err
-       }
-
-       if 
e.CamelCatalog.Runtime.Capabilities["service-binding"].RuntimeProperties != nil 
{
-               t.setCatalogConfiguration(e)
-       } else {
-               t.setProperties(e)
-       }
-
-       secret := createSecret(ctx, e.Integration.Namespace, e.Integration.Name)
-       if secret != nil {
-               e.Resources.Add(secret)
-       }
-
-       return nil
-}
-
-func (t *serviceBindingTrait) setCatalogConfiguration(e *Environment) {
-       if e.ApplicationProperties == nil {
-               e.ApplicationProperties = make(map[string]string)
-       }
-       e.ApplicationProperties["camel.k.serviceBinding.enabled"] = 
boolean.TrueString
-       for _, cp := range 
e.CamelCatalog.Runtime.Capabilities["service-binding"].RuntimeProperties {
-               e.ApplicationProperties[CapabilityPropertyKey(cp.Key, 
e.ApplicationProperties)] = cp.Value
-       }
-}
-
-// Deprecated: to be removed in future release in favor of func 
setCatalogConfiguration().
-func (t *serviceBindingTrait) setProperties(e *Environment) {
-       if e.ApplicationProperties == nil {
-               e.ApplicationProperties = make(map[string]string)
-       }
-       e.ApplicationProperties["quarkus.kubernetes-service-binding.enabled"] = 
boolean.TrueString
-}
-
-func (t *serviceBindingTrait) getContext(e *Environment) (pipeline.Context, 
error) {
-       services, err := t.parseServices(e.Integration.Namespace)
-       if err != nil {
-               return nil, err
-       }
-       serviceBinding := createServiceBinding(e, services, e.Integration.Name)
-       dyn, err := dynamic.NewForConfig(e.Client.GetConfig())
-       if err != nil {
-               return nil, err
-       }
-       ctxProvider := context.Provider(dyn, 
e.Client.AuthorizationV1().SubjectAccessReviews(), 
kubernetes.ResourceLookup(e.Client.RESTMapper()))
-       ctx, err := ctxProvider.Get(serviceBinding)
-       if err != nil {
-               return nil, err
-       }
-       return ctx, nil
-}
-
-func (t *serviceBindingTrait) parseServices(ns string) ([]sb.Service, error) {
-       services := make([]sb.Service, 0)
-       converter := reference.NewConverter("")
-       for _, s := range t.Services {
-               ref, err := converter.FromString(s)
-               if err != nil {
-                       return services, err
-               }
-               namespace := ns
-               if ref.Namespace != "" {
-                       namespace = ref.Namespace
-               }
-               service := sb.Service{
-                       NamespacedRef: sb.NamespacedRef{
-                               Ref: sb.Ref{
-                                       Group:   ref.GroupVersionKind().Group,
-                                       Version: ref.GroupVersionKind().Version,
-                                       Kind:    ref.Kind,
-                                       Name:    ref.Name,
-                               },
-                               Namespace: &namespace,
-                       },
-               }
-               services = append(services, service)
-       }
-       return services, nil
-}
-
-func process(ctx pipeline.Context, handlers []pipeline.Handler) error {
-       var status pipeline.FlowStatus
-       for _, h := range handlers {
-               h.Handle(ctx)
-               status = ctx.FlowStatus()
-               if status.Stop {
-                       break
-               }
-       }
-
-       return status.Err
-}
-
-func createServiceBinding(e *Environment, services []sb.Service, name string) 
*sb.ServiceBinding {
-       spec := sb.ServiceBindingSpec{
-               NamingStrategy: "none",
-               Services:       services,
-       }
-       labels := map[string]string{
-               v1.IntegrationLabel: e.Integration.Name,
-       }
-       return &sb.ServiceBinding{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "ServiceBinding",
-                       APIVersion: "binding.operators.coreos.com/v1alpha1",
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Namespace: e.Integration.Namespace,
-                       Name:      name,
-                       Labels:    labels,
-               },
-               Spec: spec,
-       }
-}
-
-func createSecret(ctx pipeline.Context, ns, integrationName string) 
*corev1.Secret {
-       name := ctx.BindingSecretName()
-       items := ctx.BindingItems()
-       data := items.AsMap()
-       if len(data) == 0 {
-               return nil
-       }
-       return &corev1.Secret{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "Secret",
-                       APIVersion: corev1.SchemeGroupVersion.String(),
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Namespace: ns,
-                       Name:      name,
-                       Labels: map[string]string{
-                               v1.IntegrationLabel: integrationName,
-                               serviceBindingLabel: boolean.TrueString,
-                       },
-                       Annotations: map[string]string{
-                               serviceBindingMountPointAnnotation: 
camel.ServiceBindingsMountPath,
-                       },
-               },
-               StringData: data,
-       }
-}
diff --git a/pkg/trait/service_binding_test.go 
b/pkg/trait/service_binding_test.go
deleted file mode 100644
index ee00d87c2..000000000
--- a/pkg/trait/service_binding_test.go
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package trait
-
-import (
-       "testing"
-
-       
"github.com/redhat-developer/service-binding-operator/pkg/reconcile/pipeline"
-       "github.com/stretchr/testify/assert"
-       "github.com/stretchr/testify/require"
-
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "github.com/apache/camel-k/v2/pkg/internal"
-       "github.com/apache/camel-k/v2/pkg/util/boolean"
-       "github.com/apache/camel-k/v2/pkg/util/camel"
-)
-
-func TestServiceBinding(t *testing.T) {
-       sbTrait, environment := createNominalServiceBindingTest()
-       sbTrait.Services = []string{
-               "ConfigMap:default/my-service-name",
-       }
-       configured, condition, err := sbTrait.Configure(environment)
-
-       assert.True(t, configured)
-       require.NoError(t, err)
-       assert.NotNil(t, condition)
-       assert.Equal(t, "ServiceBinding trait is deprecated as the Service 
Binding Operator is no longer supported. It may be removed in future version.",
-               condition.message)
-
-       // Required for local testing purposes only
-       handlers = []pipeline.Handler{}
-       err = sbTrait.Apply(environment)
-       require.NoError(t, err)
-       assert.Equal(t, boolean.TrueString, 
environment.ApplicationProperties["camel.k.serviceBinding.enabled"])
-       assert.Equal(t, "${camel.k.serviceBinding.enabled}", 
environment.ApplicationProperties["quarkus.kubernetes-service-binding.enabled"])
-       // TODO we should make the service binding trait to easily work with 
fake client
-       // and test the apply secret in the environment accordingly.
-}
-
-func createNominalServiceBindingTest() (*serviceBindingTrait, *Environment) {
-       trait, _ := newServiceBindingTrait().(*serviceBindingTrait)
-       client, _ := internal.NewFakeClient()
-       catalog := NewCatalog(client)
-       c, err := camel.DefaultCatalog()
-       if err != nil {
-               panic(err)
-       }
-       environment := &Environment{
-               Client:       client,
-               Catalog:      catalog,
-               CamelCatalog: c,
-               Integration: &v1.Integration{
-                       Spec: v1.IntegrationSpec{
-                               Sources: []v1.SourceSpec{
-                                       {
-                                               Language: v1.LanguageJavaSource,
-                                       },
-                               },
-                       },
-                       Status: v1.IntegrationStatus{
-                               Phase: v1.IntegrationPhaseInitialization,
-                       },
-               },
-               IntegrationKit: &v1.IntegrationKit{},
-               Pipeline: []v1.Task{
-                       {
-                               Builder: &v1.BuilderTask{},
-                       },
-                       {
-                               Package: &v1.BuilderTask{},
-                       },
-               },
-               Platform: &v1.IntegrationPlatform{},
-       }
-
-       return trait, environment
-}
diff --git a/pkg/trait/trait_configure_test.go 
b/pkg/trait/trait_configure_test.go
index a9bfbdf75..5e5d76d7d 100644
--- a/pkg/trait/trait_configure_test.go
+++ b/pkg/trait/trait_configure_test.go
@@ -178,8 +178,8 @@ func TestTraitListConfigurationFromAnnotations(t 
*testing.T) {
                Integration: &v1.Integration{
                        ObjectMeta: metav1.ObjectMeta{
                                Annotations: map[string]string{
-                                       v1.TraitAnnotationPrefix + 
"jolokia.options":          `["opt1", "opt2"]`,
-                                       v1.TraitAnnotationPrefix + 
"service-binding.services": `Binding:xxx`, // lenient
+                                       v1.TraitAnnotationPrefix + 
"jolokia.options":       `["opt1", "opt2"]`,
+                                       v1.TraitAnnotationPrefix + 
"camel.runtime-version": "1.2.3",
                                },
                        },
                        Spec: v1.IntegrationSpec{
@@ -191,8 +191,8 @@ func TestTraitListConfigurationFromAnnotations(t 
*testing.T) {
        require.NoError(t, c.Configure(&env))
        jt, _ := c.GetTrait("jolokia").(*jolokiaTrait)
        assert.Equal(t, []string{"opt1", "opt2"}, jt.Options)
-       sbt, _ := c.GetTrait("service-binding").(*serviceBindingTrait)
-       assert.Equal(t, []string{"Binding:xxx"}, sbt.Services)
+       cml, _ := c.GetTrait("camel").(*camelTrait)
+       assert.Equal(t, "1.2.3", cml.RuntimeVersion)
 }
 
 func TestTraitSplitConfiguration(t *testing.T) {
diff --git a/pkg/trait/trait_register.go b/pkg/trait/trait_register.go
index e21402783..a0f8544fe 100644
--- a/pkg/trait/trait_register.go
+++ b/pkg/trait/trait_register.go
@@ -53,7 +53,6 @@ func init() {
        AddToTraits(newRouteTrait)
        AddToTraits(newSecurityContextTrait)
        AddToTraits(newServiceTrait)
-       AddToTraits(newServiceBindingTrait)
        AddToTraits(NewTelemetryTrait)
        AddToTraits(newTolerationTrait)
        // ^^ Declaration order is not important, but let's keep them sorted 
for debugging.

Reply via email to