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 2023/08/02 06:33:03 UTC
[camel-k-examples] 02/03: feat(config): Add kamelets configuration examples
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-examples.git
commit 46bbfecce903177c4bd0e4185d41d22b23d5d229
Author: Gaelle Fournier <ga...@gmail.com>
AuthorDate: Mon Jul 31 17:25:33 2023 +0200
feat(config): Add kamelets configuration examples
---
generic-examples/kamelets/README.md | 5 +-
.../kamelets/user-config/application.properties | 2 +
.../kamelets/user-config/config.properties | 3 +
.../kamelets-pipe-embedded-parameters-2.yaml | 38 ++++
.../kamelets-pipe-embedded-parameters.yaml | 42 +++++
.../kamelets-pipe-secret-parameters-2.yaml | 38 ++++
.../kamelets-pipe-secret-parameters-3.yaml | 34 ++++
.../kamelets-pipe-secret-parameters.yaml | 41 +++++
.../kamelets-route-embedded-parameters-2.yaml | 37 ++++
.../kamelets-route-embedded-parameters.yaml | 38 ++++
.../kamelets-route-secret-parameters-2.yaml | 35 ++++
.../kamelets-route-secret-parameters.yaml | 37 ++++
.../kamelets/user-config/log-sink.properties | 1 +
generic-examples/kamelets/user-config/readme.md | 200 +++++++++++++++++++++
.../kamelets/user-config/timer-source.properties | 1 +
15 files changed, 551 insertions(+), 1 deletion(-)
diff --git a/generic-examples/kamelets/README.md b/generic-examples/kamelets/README.md
index f0f2a5c..51686ee 100644
--- a/generic-examples/kamelets/README.md
+++ b/generic-examples/kamelets/README.md
@@ -26,4 +26,7 @@ The examples are grouped into the following sub-directories:
- [timer-source-log-sink](./timer-source-log-sink/):
- create and use a timer source kamelet
- bind a source kamelet to a Knative destination using KamletBinding
- - create a log sink kamlet and bind it to the Knative destination using KamletBinding
\ No newline at end of file
+ - create a log sink kamlet and bind it to the Knative destination using KamletBinding
+- [user-config](./user-config/): contains examples on how to:
+ - configure from Properties or Secrets an Integration using Kamelets
+ - configure from Properties or Secrets a Pipe/KameletBinding
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/application.properties b/generic-examples/kamelets/user-config/application.properties
new file mode 100644
index 0000000..b54851c
--- /dev/null
+++ b/generic-examples/kamelets/user-config/application.properties
@@ -0,0 +1,2 @@
+my-message=Property secret
+my-logger=PropertySecretLogger
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/config.properties b/generic-examples/kamelets/user-config/config.properties
new file mode 100644
index 0000000..4f7eb9e
--- /dev/null
+++ b/generic-examples/kamelets/user-config/config.properties
@@ -0,0 +1,3 @@
+camel.kamelet.timer-source.myconfig.message=My config secret
+camel.kamelet.log-sink.mylogconfig.loggerName=SecretLogger
+camel.kamelet.log-sink.myotherlogconfig.loggerName=SecretOtherLogger
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters-2.yaml b/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters-2.yaml
new file mode 100644
index 0000000..e0c1913
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters-2.yaml
@@ -0,0 +1,38 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+ name: kamelets-pipe-embedded-parameters-2
+spec:
+ integration:
+ configuration:
+ - type: "property"
+ value: "camel.kamelet.timer-source.source.message=My message"
+ - type: "property"
+ value: "camel.kamelet.log-sink.sink.loggerName=mylog"
+ source:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: timer-source
+ sink:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: log-sink
diff --git a/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters.yaml b/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters.yaml
new file mode 100644
index 0000000..4ef5570
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-pipe-embedded-parameters.yaml
@@ -0,0 +1,42 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+ name: kamelets-pipe-embedded-parameters
+spec:
+ integration:
+ configuration:
+ - type: "property"
+ value: "my-message=embedded message"
+ - type: "property"
+ value: "my-logger=embeddedlog"
+ source:
+ properties:
+ message: "{{my-message}}"
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: timer-source
+ sink:
+ properties:
+ loggerName: "{{my-logger}}"
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: log-sink
diff --git a/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-2.yaml b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-2.yaml
new file mode 100644
index 0000000..735d7b4
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-2.yaml
@@ -0,0 +1,38 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+ name: kamelets-pipe-secret-parameters-2
+spec:
+ integration:
+ traits:
+ mount:
+ configs:
+ - secret:my-timer-source-secret
+ - secret:my-log-sink-secret
+ source:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: timer-source
+ sink:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: log-sink
diff --git a/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-3.yaml b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-3.yaml
new file mode 100644
index 0000000..230891d
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters-3.yaml
@@ -0,0 +1,34 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+ name: kamelets-pipe-secret-parameters-3
+ annotations:
+ trait.camel.apache.org/mount.configs: '["secret:my-timer-source-secret","secret:my-log-sink-secret"]'
+spec:
+ source:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: timer-source
+ sink:
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: log-sink
diff --git a/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters.yaml b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters.yaml
new file mode 100644
index 0000000..1d11740
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-pipe-secret-parameters.yaml
@@ -0,0 +1,41 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+ name: kamelets-pipe-secret-parameters
+spec:
+ integration:
+ traits:
+ mount:
+ configs:
+ - secret:my-pipe-secret
+ source:
+ properties:
+ message: "{{my-message}}"
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: timer-source
+ sink:
+ properties:
+ loggerName: "{{my-logger}}"
+ ref:
+ apiVersion: camel.apache.org/v1
+ kind: Kamelet
+ name: log-sink
diff --git a/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters-2.yaml b/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters-2.yaml
new file mode 100644
index 0000000..f309a84
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters-2.yaml
@@ -0,0 +1,37 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: kamelets-route-embedded-parameters-2
+spec:
+ traits:
+ camel:
+ properties:
+ - camel.kamelet.timer-source.myconfig.message = My Config message
+ - camel.kamelet.log-sink.mylogconfig.loggerName = myconfiglog
+ - camel.kamelet.log-sink.myotherlogconfig.loggerName = myotherconfiglog
+ flows:
+ - route:
+ from:
+ uri: kamelet:timer-source/myconfig
+ steps:
+ - to:
+ uri: kamelet:log-sink/mylogconfig
+ - to:
+ uri: kamelet:log-sink/myotherlogconfig
diff --git a/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters.yaml b/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters.yaml
new file mode 100644
index 0000000..bf55f79
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-route-embedded-parameters.yaml
@@ -0,0 +1,38 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: kamelets-route-embedded-parameters
+spec:
+ traits:
+ camel:
+ properties:
+ - my-message = embedded message
+ - my-logger = embeddedlog
+ flows:
+ - route:
+ from:
+ uri: kamelet:timer-source
+ parameters:
+ message: '{{my-message}}'
+ steps:
+ - to:
+ uri: kamelet:log-sink
+ parameters:
+ loggerName: '{{my-logger}}'
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/kamelets-route-secret-parameters-2.yaml b/generic-examples/kamelets/user-config/kamelets-route-secret-parameters-2.yaml
new file mode 100644
index 0000000..247ebd2
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-route-secret-parameters-2.yaml
@@ -0,0 +1,35 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: kamelets-route-secret-parameters-2
+spec:
+ traits:
+ mount:
+ configs:
+ - secret:my-kamelets-secret-2
+ flows:
+ - route:
+ from:
+ uri: kamelet:timer-source/myconfig
+ steps:
+ - to:
+ uri: kamelet:log-sink/mylogconfig
+ - to:
+ uri: kamelet:log-sink/myotherlogconfig
diff --git a/generic-examples/kamelets/user-config/kamelets-route-secret-parameters.yaml b/generic-examples/kamelets/user-config/kamelets-route-secret-parameters.yaml
new file mode 100644
index 0000000..02d39ed
--- /dev/null
+++ b/generic-examples/kamelets/user-config/kamelets-route-secret-parameters.yaml
@@ -0,0 +1,37 @@
+# ---------------------------------------------------------------------------
+# 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.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Integration
+metadata:
+ name: kamelets-route-secret-parameters
+spec:
+ traits:
+ mount:
+ configs:
+ - secret:my-kamelets-secret
+ flows:
+ - route:
+ from:
+ uri: kamelet:timer-source
+ parameters:
+ message: '{{my-message}}'
+ steps:
+ - to:
+ uri: kamelet:log-sink
+ parameters:
+ loggerName: '{{my-logger}}'
diff --git a/generic-examples/kamelets/user-config/log-sink.properties b/generic-examples/kamelets/user-config/log-sink.properties
new file mode 100644
index 0000000..b5b737b
--- /dev/null
+++ b/generic-examples/kamelets/user-config/log-sink.properties
@@ -0,0 +1 @@
+camel.kamelet.log-sink.loggerName=SecretLogger
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/readme.md b/generic-examples/kamelets/user-config/readme.md
new file mode 100644
index 0000000..d4a3259
--- /dev/null
+++ b/generic-examples/kamelets/user-config/readme.md
@@ -0,0 +1,200 @@
+# User Config
+
+This example shows how you can configure applications built on Kamelets as Integrations or Pipes/KameletBindings. The Integrations and Pipes are provided as Kubernetes Custom Resource and make no use of the `kamel` CLI.
+
+This example uses use out of the box Kamelets Timer Source and Log Sink.
+
+## Integrations using Kamelets
+
+You have multiple options when using parameters in your integrations.
+
+### Basic usage parameters
+
+1. `camel` trait
+
+You can define your kamelets parameters by adding them directly inside you integration using the `camel` trait.
+
+Run the following command to create your [integration](./kamelets-route-embedded-parameters.yaml):
+```
+$ kubectl apply -f kamelets-route-embedded-parameters.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-route-embedded-parameters
+
+2023-08-01 08:18:35,119 INFO [embeddedlog] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: embedded message]
+```
+
+2. Kubernetes Secret and `mount` trait
+
+You can define your kamelets parameters by declaring them in a kubernetes secret and binding them to your integration using the `mount` trait.
+
+Run the following command to create the secret related containing your parameters values:
+```
+$ kubectl create secret generic my-kamelets-secret --from-file=application.properties
+```
+
+Run the following command to create your [integration](./kamelets-route-secret-parameters.yaml):
+```
+$ kubectl apply -f kamelets-route-secret-parameters.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-route-embedded-parameters
+
+2023-08-01 08:36:11,084 INFO [PropertySecretLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Property secret]
+```
+
+### Named configuration
+
+The usage of a named configuration allows for different properties for the separate usages of the same kamelet in an integration.
+
+1. `camel` trait
+
+You can use named configuration with the `camel` trait to allow different configuration for the same kamelet.
+
+Run the following command to create your [integration](./kamelets-route-embedded-parameters-2.yaml):
+```
+$ kubectl apply -f kamelets-route-embedded-parameters-2.yaml
+```
+
+After a while you will be able to watch your logs with the 2 loggers:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-route-embedded-parameters-2
+
+2023-08-01 09:17:28,818 INFO [myconfiglog] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My Config message]
+2023-08-01 09:17:28,819 INFO [myotherconfiglog] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My Config message]
+```
+
+2. Kubernetes Secret and `mount` trait
+
+You can define your kamelets parameters by declaring them in a kubernetes secret and binding them to your integration using the `mount` trait.
+
+Run the following command to create the secret related containing your parameters values:
+```
+$ kubectl create secret generic my-kamelets-secret-2 --from-file=config.properties
+```
+
+Run the following command to create your [integration](./kamelets-route-secret-parameters-2.yaml):
+```
+$ kubectl apply -f kamelets-route-secret-parameters-2.yaml
+```
+
+After a while you will be able to watch your logs with the 2 loggers:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-route-embedded-parameters
+
+2023-08-01 09:44:38,824 INFO [SecretLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My config secret]
+2023-08-01 09:44:38,824 INFO [SecretOtherLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My config secret]
+```
+
+
+## Pipes/KameletBindings
+
+Pipes allow using the same declarative style of binding to connect to various sources/sinks kamelets. The way to configure them is slightly different from Integrations.
+
+
+### Basic usage parameters
+
+1. Pipe integration configuration
+
+You can define your kamelets parameters by adding them directly inside you integration using the `.spec.integration.configuration` object with type `property`.
+
+Run the following command to create your [integration](./kamelets-pipe-embedded-parameters.yaml):
+```
+$ kubectl apply -f kamelets-pipe-embedded-parameters.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-pipe-embedded-parameters
+
+2023-08-01 12:20:36,168 INFO [embeddedlog] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: embedded message]
+```
+
+2. Kubernetes Secret and `mount` trait
+
+You can define your kamelets parameters by declaring them in a kubernetes secret and binding them to your integration using the `mount` trait.
+
+Run the following command to create the secret related containing your parameters values:
+```
+$ kubectl create secret generic my-pipe-secret --from-file=application.properties
+```
+
+Run the following command to create your [integration](./kamelets-route-secret-parameters.yaml):
+```
+$ kubectl apply -f kamelets-route-secret-parameters.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-pipe-secret-parameters
+
+2023-08-01 08:36:11,084 INFO [PropertySecretLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: Property secret]
+```
+
+### Implicit configuration
+
+This is a case when you inject your properties without refering them on the kamelet declaration.
+
+1. Pipe integration configuration
+
+You can define your kamelets parameters by adding them directly inside you integration using the `.spec.integration.configuration` object with type `property`. This version uses the default property name.
+
+Run the following command to create your [pipe](./kamelets-pipe-embedded-parameters.yaml):
+```
+$ kubectl apply -f kamelets-pipe-embedded-parameters.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-pipe-embedded-parameters
+
+2023-08-01 15:38:04,919 INFO [embeddedlog] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: embedded message]
+```
+
+2. Kubernetes Secret and `mount` trait
+
+You can define your kamelets parameters by declaring them in a kubernetes secret and binding them to your integration using the `mount` trait.
+
+Run the following commands to create the secrets related containing your default parameters values:
+```
+$ kubectl create secret generic my-timer-source-secret --from-file=timer-source.properties
+$ kubectl create secret generic my-log-sink-secret --from-file=log-sink.properties
+```
+
+Run the following command to create your [pipe](./kamelets-pipe-secret-parameters-2.yaml):
+```
+$ kubectl apply -f kamelets-pipe-secret-parameters-2.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-pipe-secret-parameters-2
+
+2023-08-01 15:39:50,124 INFO [SecretLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My secret]
+```
+
+The `mount` trait can also be declared as an annotation.
+
+Run the following command to create your [pipe](./kamelets-pipe-secret-parameters-3.yaml):
+```
+$ kubectl apply -f kamelets-pipe-secret-parameters-3.yaml
+```
+
+After a while you will be able to watch your logs:
+```
+$ kubectl logs -l camel.apache.org/integration=kamelets-pipe-secret-parameters-3
+
+2023-08-01 15:40:24,266 INFO [SecretLogger] (Camel (camel-1) thread #1 - timer://tick) Exchange[ExchangePattern: InOnly, BodyType: String, Body: My secret]
+```
+
+## Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please see the [community support page](https://camel.apache.org/community/support/) and let us know.
+
+We also love contributors, so [get involved](https://camel.apache.org/community/contributing/) :-)
+
+The Camel riders!
\ No newline at end of file
diff --git a/generic-examples/kamelets/user-config/timer-source.properties b/generic-examples/kamelets/user-config/timer-source.properties
new file mode 100644
index 0000000..565560a
--- /dev/null
+++ b/generic-examples/kamelets/user-config/timer-source.properties
@@ -0,0 +1 @@
+camel.kamelet.timer-source.message=My secret
\ No newline at end of file