You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2024/10/12 07:03:08 UTC

(camel-k) branch main updated (559585b53 -> 17f879532)

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

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


    from 559585b53 fix(e2e): add test to make sure
     new 6d1366770 feat: bump default runtime to 3.15
     new c80d616c4 fix(trait): Telemetry trait hack for camel-k-runtime catalog 3.15.0
     new 05b854d7e chore(ci): adjust tests for runtime 3.15
     new 17f879532 fix(test): Fix telemetry tests

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 e2e/advanced/operator_restart_test.go              |   7 +-
 e2e/common/misc/pipe_test.go                       |  22 ++-
 e2e/telemetry/telemetry_test.go                    |   8 +-
 pkg/controller/integrationplatform/create.go       |   8 +-
 pkg/controller/integrationplatform/kamelets.go     |   2 +-
 ...atalog-3.8.1.yaml => camel-catalog-3.15.0.yaml} | 147 ++++++++++++++++++---
 pkg/trait/telemetry.go                             |  46 +++++++
 pkg/util/defaults/defaults.go                      |   2 +-
 script/Makefile                                    |   2 +-
 9 files changed, 211 insertions(+), 33 deletions(-)
 rename pkg/resources/resources/{camel-catalog-3.8.1.yaml => camel-catalog-3.15.0.yaml} (95%)


(camel-k) 02/04: fix(trait): Telemetry trait hack for camel-k-runtime catalog 3.15.0

Posted by pc...@apache.org.
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

commit c80d616c4361c2c9fa1e930016230c44c43e74cd
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Thu Oct 10 13:48:04 2024 +0200

    fix(trait): Telemetry trait hack for camel-k-runtime catalog 3.15.0
    
    Properties modification:
    * propEndpoint: "quarkus.opentelemetry.tracer.exporter.otlp.endpoint" => "quarkus.otel.exporter.otlp.traces.endpoint"
    * propServiceName: "quarkus.opentelemetry.tracer.resource-attributes" =>  "quarkus.otel.resource.attributes"
    * propSampler: "quarkus.opentelemetry.tracer.sampler" =>  "quarkus.otel.traces.sampler"
    * propSamplerRatio: "quarkus.opentelemetry.tracer.sampler.ratio" => "quarkus.otel.traces.sampler.ratio"
    * propSamplerParentBased: "quarkus.opentelemetry.tracer.sampler.parent-based" => "quarkus.otel.traces.sampler.parent-based"
---
 pkg/trait/telemetry.go | 46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/pkg/trait/telemetry.go b/pkg/trait/telemetry.go
index 72af4a261..a8ce6d5d4 100644
--- a/pkg/trait/telemetry.go
+++ b/pkg/trait/telemetry.go
@@ -123,7 +123,11 @@ func (t *telemetryTrait) Configure(e *Environment) (bool, *TraitCondition, error
 func (t *telemetryTrait) Apply(e *Environment) error {
 	util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, v1.CapabilityTelemetry)
 
-	if e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties != nil {
+	// Hack for camel-k-runtime 3.15.0
+	if e.CamelCatalog.CamelCatalogSpec.Runtime.Provider == v1.RuntimeProviderQuarkus &&
+		e.CamelCatalog.CamelCatalogSpec.Runtime.Version == "3.15.0" {
+		t.setRuntimeProviderQuarkus315Properties(e)
+	} else if e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties != nil {
 		t.setCatalogConfiguration(e)
 	} else {
 		t.setRuntimeProviderProperties(e)
@@ -189,3 +193,43 @@ func (t *telemetryTrait) setRuntimeProviderProperties(e *Environment) {
 		}
 	}
 }
+
+// Hack for camel-k-runtime 3.15.0
+// Otel quarkus properties name breaking change not present in camel-k-runtime.
+func (t *telemetryTrait) setRuntimeProviderQuarkus315Properties(e *Environment) {
+	propEndpoint := "quarkus.otel.exporter.otlp.traces.endpoint"
+	propServiceName := "quarkus.otel.resource.attributes"
+	propSampler := "quarkus.otel.traces.sampler"
+	propSamplerRatio := "quarkus.otel.traces.sampler.ratio"
+	propSamplerParentBased := "quarkus.otel.traces.sampler.parent-based"
+
+	if t.Endpoint != "" {
+		e.ApplicationProperties["camel.k.telemetry.endpoint"] = t.Endpoint
+		e.ApplicationProperties[propEndpoint] = t.Endpoint
+	}
+	if t.ServiceName != "" {
+		e.ApplicationProperties["camel.k.telemetry.serviceName"] = fmt.Sprintf("service.name=%s", t.ServiceName)
+		e.ApplicationProperties[propServiceName] = fmt.Sprintf("service.name=%s", t.ServiceName)
+	}
+	if t.Sampler != "" {
+		e.ApplicationProperties["camel.k.telemetry.sampler"] = t.Sampler
+		e.ApplicationProperties[propSampler] = t.Sampler
+	}
+	if t.SamplerRatio != "" {
+		e.ApplicationProperties["camel.k.telemetry.samplerRatio"] = t.SamplerRatio
+		e.ApplicationProperties[propSamplerRatio] = t.SamplerRatio
+	}
+	if ptr.Deref(t.SamplerParentBased, true) {
+		e.ApplicationProperties["camel.k.telemetry.samplerParentBased"] = boolean.TrueString
+		e.ApplicationProperties[propSamplerParentBased] = boolean.TrueString
+	} else {
+		e.ApplicationProperties["camel.k.telemetry.samplerParentBased"] = boolean.FalseString
+		e.ApplicationProperties[propSamplerParentBased] = boolean.FalseString
+	}
+
+	if e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties != nil {
+		for _, cp := range e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties {
+			e.ApplicationProperties[CapabilityPropertyKey(cp.Key, e.ApplicationProperties)] = cp.Value
+		}
+	}
+}


(camel-k) 03/04: chore(ci): adjust tests for runtime 3.15

Posted by pc...@apache.org.
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

commit 05b854d7ec86ee0e5726fc7bab035a8bbadef379
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri Oct 11 08:28:13 2024 +0200

    chore(ci): adjust tests for runtime 3.15
---
 e2e/advanced/operator_restart_test.go          |  7 ++++++-
 e2e/common/misc/pipe_test.go                   | 22 ++++++++++++++++++----
 pkg/controller/integrationplatform/create.go   |  8 ++++++--
 pkg/controller/integrationplatform/kamelets.go |  2 +-
 4 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/e2e/advanced/operator_restart_test.go b/e2e/advanced/operator_restart_test.go
index 0f84972d5..a2e0368fe 100644
--- a/e2e/advanced/operator_restart_test.go
+++ b/e2e/advanced/operator_restart_test.go
@@ -66,7 +66,12 @@ func TestOperatorRestart(t *testing.T) {
 		})
 
 		t.Run("Operator reinstalled", func(t *testing.T) {
-			InstallOperator(t, ctx, g, ns)
+			// Install Camel K without Kamelets. There may be loading error that could affect the validity of this test.
+			InstallOperatorWithConf(t, ctx, g, ns, "", false,
+				map[string]string{
+					"KAMEL_INSTALL_DEFAULT_KAMELETS": "false",
+				},
+			)
 			g.Eventually(OperatorPod(t, ctx, ns)).Should(Not(BeNil()))
 			g.Eventually(PlatformPhase(t, ctx, ns), TestTimeoutShort).Should(Equal(v1.IntegrationPlatformPhaseReady))
 			g.Consistently(OperatorLogs(t, ctx, ns), 1*time.Minute, 3*time.Second).Should(Not(ContainSubstring("error")))
diff --git a/e2e/common/misc/pipe_test.go b/e2e/common/misc/pipe_test.go
index 1093b9d6e..8a89c7a19 100644
--- a/e2e/common/misc/pipe_test.go
+++ b/e2e/common/misc/pipe_test.go
@@ -58,8 +58,13 @@ func TestPipe(t *testing.T) {
 					"--name", "throw-error-binding").Execute()).To(Succeed())
 
 				g.Eventually(IntegrationPodPhase(t, ctx, ns, "throw-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				g.Eventually(IntegrationLogs(t, ctx, ns, "throw-error-binding"), TestTimeoutShort).Should(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
-				g.Eventually(IntegrationLogs(t, ctx, ns, "throw-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
+				g.Eventually(IntegrationLogs(t, ctx, ns, "throw-error-binding"), TestTimeoutShort).
+					Should(And(
+						ContainSubstring("[kameletErrorHandler]"),
+						ContainSubstring("throw Error"),
+					))
+				g.Eventually(IntegrationLogs(t, ctx, ns, "throw-error-binding"), TestTimeoutShort).
+					ShouldNot(ContainSubstring("[integrationLogger]"))
 
 			})
 
@@ -74,8 +79,17 @@ func TestPipe(t *testing.T) {
 					"--name", "no-error-binding").Execute()).To(Succeed())
 
 				g.Eventually(IntegrationPodPhase(t, ctx, ns, "no-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				g.Eventually(IntegrationLogs(t, ctx, ns, "no-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
-				g.Eventually(IntegrationLogs(t, ctx, ns, "no-error-binding"), TestTimeoutShort).Should(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
+				g.Eventually(IntegrationLogs(t, ctx, ns, "no-error-binding"), TestTimeoutShort).
+					ShouldNot(
+						And(
+							ContainSubstring("[kameletErrorHandler]"),
+							ContainSubstring("throw Error"),
+						))
+				g.Eventually(IntegrationLogs(t, ctx, ns, "no-error-binding"), TestTimeoutShort).
+					Should(And(
+						ContainSubstring("[integrationLogger]"),
+						ContainSubstring("true"),
+					))
 
 			})
 		})
diff --git a/pkg/controller/integrationplatform/create.go b/pkg/controller/integrationplatform/create.go
index 55e9ca3f3..a53044749 100644
--- a/pkg/controller/integrationplatform/create.go
+++ b/pkg/controller/integrationplatform/create.go
@@ -175,12 +175,16 @@ func installKamelets(ctx context.Context, c client.Client, platform *v1.Integrat
 				fmt.Sprintf("kamelet catalog %s not available. Error: %s", camelVersion, err),
 			)
 		} else {
+			message := fmt.Sprintf("successfully installed Kamelet catalog version %s: success %d Kamelets, failed %d Kamelets",
+				camelVersion, installedKam, erroredKam)
+			if erroredKam > 0 {
+				message += ". Check operator log to discover more about the failure"
+			}
 			platform.Status.SetCondition(
 				v1.IntegrationPlatformConditionKameletCatalogAvailable,
 				corev1.ConditionTrue,
 				"IntegrationPlatformKameletCatalogAvailable",
-				fmt.Sprintf("successfully installed Kamelet catalog version %s: success %d Kamelets, failed %d Kamelets",
-					camelVersion, installedKam, erroredKam),
+				message,
 			)
 		}
 	}
diff --git a/pkg/controller/integrationplatform/kamelets.go b/pkg/controller/integrationplatform/kamelets.go
index 83cfa5d6d..9ff27c956 100644
--- a/pkg/controller/integrationplatform/kamelets.go
+++ b/pkg/controller/integrationplatform/kamelets.go
@@ -146,7 +146,7 @@ func applyKamelets(ctx context.Context, c client.Client, platform *v1.Integratio
 		err = applier.Apply(ctx, kamelet)
 		if err != nil {
 			erroredKam++
-			log.Error(err, "Error occurred whilst applying a bundled kamelet named %s", kamelet.GetName())
+			log.Errorf(err, "Error occurred whilst applying a bundled kamelet named %s", kamelet.GetName())
 			return nil
 		}
 		appliedKam++


(camel-k) 04/04: fix(test): Fix telemetry tests

Posted by pc...@apache.org.
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

commit 17f87953255f156aaeb5470b69b08011c90ab613
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Fri Oct 11 11:27:48 2024 +0200

    fix(test): Fix telemetry tests
---
 e2e/telemetry/telemetry_test.go | 8 ++++----
 pkg/trait/telemetry.go          | 4 +++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/e2e/telemetry/telemetry_test.go b/e2e/telemetry/telemetry_test.go
index 0c8ba28da..8513ca25d 100644
--- a/e2e/telemetry/telemetry_test.go
+++ b/e2e/telemetry/telemetry_test.go
@@ -62,8 +62,8 @@ func TestTelemetryTrait(t *testing.T) {
 		g.Expect(pod).NotTo(BeNil())
 
 		// Ensured logs in opentelemetry collector pod are present
-		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("http.target: Str(/customers/%s)", name)))
-		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("http.url: Str(http://%s/customers/%s)", serviceName, name)))
+		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("url.path: Str(/customers/%s)", name)))
+		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring("http.route: Str(/customers/:name)"))
 	})
 }
 
@@ -94,7 +94,7 @@ func TestTelemetryAddon(t *testing.T) {
 		g.Expect(pod).NotTo(BeNil())
 
 		// Ensured logs in opentelemetry collector pod are present
-		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("http.target: Str(/customers/%s)", name)))
-		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("http.url: Str(http://%s/customers/%s)", serviceName, name)))
+		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("url.path: Str(/customers/%s)", name)))
+		g.Eventually(TailedLogs(t, ctx, pod.Namespace, pod.Name, 100), TestTimeoutLong).Should(ContainSubstring("http.route: Str(/customers/:name)"))
 	})
 }
diff --git a/pkg/trait/telemetry.go b/pkg/trait/telemetry.go
index a8ce6d5d4..c6be72574 100644
--- a/pkg/trait/telemetry.go
+++ b/pkg/trait/telemetry.go
@@ -127,7 +127,9 @@ func (t *telemetryTrait) Apply(e *Environment) error {
 	if e.CamelCatalog.CamelCatalogSpec.Runtime.Provider == v1.RuntimeProviderQuarkus &&
 		e.CamelCatalog.CamelCatalogSpec.Runtime.Version == "3.15.0" {
 		t.setRuntimeProviderQuarkus315Properties(e)
-	} else if e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties != nil {
+		return nil
+	}
+	if e.CamelCatalog.Runtime.Capabilities["telemetry"].RuntimeProperties != nil {
 		t.setCatalogConfiguration(e)
 	} else {
 		t.setRuntimeProviderProperties(e)


(camel-k) 01/04: feat: bump default runtime to 3.15

Posted by pc...@apache.org.
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

commit 6d136677076640cd7b70140e52b88f5b7f314e26
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Oct 10 07:38:18 2024 +0200

    feat: bump default runtime to 3.15
---
 ...atalog-3.8.1.yaml => camel-catalog-3.15.0.yaml} | 147 ++++++++++++++++++---
 pkg/util/defaults/defaults.go                      |   2 +-
 script/Makefile                                    |   2 +-
 3 files changed, 130 insertions(+), 21 deletions(-)

diff --git a/pkg/resources/resources/camel-catalog-3.8.1.yaml b/pkg/resources/resources/camel-catalog-3.15.0.yaml
similarity index 95%
rename from pkg/resources/resources/camel-catalog-3.8.1.yaml
rename to pkg/resources/resources/camel-catalog-3.15.0.yaml
index 842cc4e2d..1008ddba1 100644
--- a/pkg/resources/resources/camel-catalog-3.8.1.yaml
+++ b/pkg/resources/resources/camel-catalog-3.15.0.yaml
@@ -18,24 +18,24 @@
 apiVersion: camel.apache.org/v1
 kind: CamelCatalog
 metadata:
-  name: camel-catalog-3.8.1
+  name: camel-catalog-3.15.0
   labels:
     app: camel-k
-    camel.apache.org/catalog.loader.version: 4.4.1
-    camel.apache.org/catalog.version: 4.4.1
-    camel.apache.org/runtime.version: 3.8.1
+    camel.apache.org/catalog.loader.version: 4.8.0
+    camel.apache.org/catalog.version: 4.8.0
+    camel.apache.org/runtime.version: 3.15.0
 spec:
   runtime:
-    version: 3.8.1
+    version: 3.15.0
     provider: quarkus
     applicationClass: io.quarkus.bootstrap.runner.QuarkusEntryPoint
     metadata:
-      camel-quarkus.version: 3.8.1
-      camel.version: 4.4.1
+      camel-quarkus.version: 3.15.0
+      camel.version: 4.8.0
       jib.layer-filter-extension-maven.version: 0.3.0
-      jib.maven-plugin.version: 3.4.1
+      jib.maven-plugin.version: 3.4.3
       quarkus.native-builder-image: quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-21
-      quarkus.version: 3.8.3
+      quarkus.version: 3.15.1
     dependencies:
     - groupId: org.apache.camel.k
       artifactId: camel-k-runtime
@@ -111,17 +111,14 @@ spec:
           value: "${camel.k.master.resourceName}"
         - key: quarkus.camel.cluster.kubernetes.resource-type
           value: "${camel.k.master.resourceType}"
-        buildTimeProperties:
-        - key: quarkus.camel.cluster.kubernetes.enabled
-          value: "${camel.k.master.enabled}"
       platform-http:
         dependencies:
         - groupId: org.apache.camel.quarkus
           artifactId: camel-quarkus-platform-http
       prometheus:
         dependencies:
-        - groupId: io.micrometer
-          artifactId: micrometer-registry-prometheus
+        - groupId: io.quarkus
+          artifactId: quarkus-micrometer-registry-prometheus
         - groupId: org.apache.camel.quarkus
           artifactId: camel-quarkus-micrometer
       rest:
@@ -154,10 +151,6 @@ spec:
           value: "${camel.k.telemetry.samplerParentBased}"
         - key: quarkus.opentelemetry.tracer.sampler.ratio
           value: "${camel.k.telemetry.samplerRatio}"
-      tracing:
-        dependencies:
-        - groupId: org.apache.camel.quarkus
-          artifactId: camel-quarkus-opentracing
   artifacts:
     camel-k-cron:
       groupId: org.apache.camel.k
@@ -239,6 +232,23 @@ spec:
       - avro
       javaTypes:
       - org.apache.camel.dataformat.avro.AvroDataFormat
+    camel-quarkus-aws-bedrock:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-aws-bedrock
+      schemes:
+      - id: aws-bedrock
+        http: false
+        passive: false
+      - id: aws-bedrock-agent
+        http: false
+        passive: false
+      - id: aws-bedrock-agent-runtime
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent
+      - org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeComponent
+      - org.apache.camel.component.aws2.bedrock.runtime.BedrockComponent
     camel-quarkus-aws-secrets-manager:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-aws-secrets-manager
@@ -759,10 +769,15 @@ spec:
         passive: false
       dataformats:
       - crypto
-      - pgp
       javaTypes:
       - org.apache.camel.component.crypto.DigitalSignatureComponent
       - org.apache.camel.converter.crypto.CryptoDataFormat
+    camel-quarkus-crypto-pgp:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-crypto-pgp
+      dataformats:
+      - pgp
+      javaTypes:
       - org.apache.camel.converter.crypto.PGPDataFormat
     camel-quarkus-csimple:
       groupId: org.apache.camel.quarkus
@@ -1000,6 +1015,9 @@ spec:
         passive: false
       javaTypes:
       - org.apache.camel.component.file.FileComponent
+    camel-quarkus-file-cluster-service:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-file-cluster-service
     camel-quarkus-file-watch:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-file-watch
@@ -1446,6 +1464,13 @@ spec:
     camel-quarkus-java-joor-dsl:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-java-joor-dsl
+    camel-quarkus-javascript:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-javascript
+      languages:
+      - js
+      javaTypes:
+      - org.apache.camel.language.js.JavaScriptLanguage
     camel-quarkus-jaxb:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-jaxb
@@ -1770,6 +1795,9 @@ spec:
       - org.apache.camel.component.openshift.build_configs.OpenshiftBuildConfigsComponent
       - org.apache.camel.component.openshift.builds.OpenshiftBuildsComponent
       - org.apache.camel.component.openshift.deploymentconfigs.OpenshiftDeploymentConfigsComponent
+    camel-quarkus-kubernetes-cluster-service:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-kubernetes-cluster-service
     camel-quarkus-kudu:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-kudu
@@ -1779,6 +1807,45 @@ spec:
         passive: false
       javaTypes:
       - org.apache.camel.component.kudu.KuduComponent
+    camel-quarkus-langchain4j-chat:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-langchain4j-chat
+      schemes:
+      - id: langchain4j-chat
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.langchain4j.chat.LangChain4jChatComponent
+    camel-quarkus-langchain4j-embeddings:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-langchain4j-embeddings
+      schemes:
+      - id: langchain4j-embeddings
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.langchain4j.embeddings.LangChain4jEmbeddingsComponent
+    camel-quarkus-langchain4j-tokenizer:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-langchain4j-tokenizer
+    camel-quarkus-langchain4j-tools:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-langchain4j-tools
+      schemes:
+      - id: langchain4j-tools
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.langchain4j.tools.LangChain4jToolsComponent
+    camel-quarkus-langchain4j-web-search:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-langchain4j-web-search
+      schemes:
+      - id: langchain4j-web-search
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.langchain4j.web.search.LangChain4jWebSearchComponent
     camel-quarkus-language:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-language
@@ -1912,6 +1979,15 @@ spec:
     camel-quarkus-microprofile-health:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-microprofile-health
+    camel-quarkus-milvus:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-milvus
+      schemes:
+      - id: milvus
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.milvus.MilvusComponent
     camel-quarkus-minio:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-minio
@@ -2150,6 +2226,15 @@ spec:
         passive: false
       javaTypes:
       - org.apache.camel.component.pgevent.PgEventComponent
+    camel-quarkus-pinecone:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-pinecone
+      schemes:
+      - id: pinecone
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.pinecone.PineconeVectorDbComponent
     camel-quarkus-platform-http:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-platform-http
@@ -2193,6 +2278,15 @@ spec:
         passive: false
       javaTypes:
       - org.apache.camel.component.pulsar.PulsarComponent
+    camel-quarkus-qdrant:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-qdrant
+      schemes:
+      - id: qdrant
+        http: false
+        passive: false
+      javaTypes:
+      - org.apache.camel.component.qdrant.QdrantComponent
     camel-quarkus-quartz:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-quartz
@@ -2710,6 +2804,18 @@ spec:
         passive: false
       javaTypes:
       - org.apache.camel.component.vertx.websocket.VertxWebsocketComponent
+    camel-quarkus-wasm:
+      groupId: org.apache.camel.quarkus
+      artifactId: camel-quarkus-wasm
+      schemes:
+      - id: wasm
+        http: false
+        passive: false
+      languages:
+      - wasm
+      javaTypes:
+      - org.apache.camel.component.wasm.WasmComponent
+      - org.apache.camel.language.wasm.WasmLanguage
     camel-quarkus-weather:
       groupId: org.apache.camel.quarkus
       artifactId: camel-quarkus-weather
@@ -2899,6 +3005,7 @@ spec:
       languages:
       - js
       metadata:
+        deprecated: "true"
         native: "false"
     jsh:
       groupId: org.apache.camel.quarkus
@@ -2906,6 +3013,7 @@ spec:
       languages:
       - jsh
       metadata:
+        deprecated: "true"
         native: "false"
         sources-required-at-build-time: "true"
     kts:
@@ -2914,6 +3022,7 @@ spec:
       languages:
       - kts
       metadata:
+        deprecated: "true"
         native: "true"
         sources-required-at-build-time: "true"
     xml:
diff --git a/pkg/util/defaults/defaults.go b/pkg/util/defaults/defaults.go
index e50c9576b..f482f7d49 100644
--- a/pkg/util/defaults/defaults.go
+++ b/pkg/util/defaults/defaults.go
@@ -26,7 +26,7 @@ const (
 	Version = "2.5.0-SNAPSHOT"
 
 	// DefaultRuntimeVersion --
-	DefaultRuntimeVersion = "3.8.1"
+	DefaultRuntimeVersion = "3.15.0"
 
 	// baseImage --
 	baseImage = "eclipse-temurin:17"
diff --git a/script/Makefile b/script/Makefile
index f55b1b504..6a10d0c38 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -27,7 +27,7 @@ VERSIONFILE := pkg/util/defaults/defaults.go
 VERSION ?= 2.5.0-SNAPSHOT
 LAST_RELEASED_IMAGE_NAME := camel-k-operator
 LAST_RELEASED_VERSION ?= 2.4.0
-DEFAULT_RUNTIME_VERSION := 3.8.1
+DEFAULT_RUNTIME_VERSION := 3.15.0
 CONTROLLER_GEN_VERSION := v0.15.0
 CODEGEN_VERSION := v0.29.7
 OPERATOR_SDK_VERSION := v1.30.0