This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 6e7478a668 kubernetes: add documentation related to cluster service
#4086
6e7478a668 is described below
commit 6e7478a668a366c02a0d6b4da1330fda4a6e5002
Author: aldettinger <[email protected]>
AuthorDate: Thu Sep 29 10:49:25 2022 +0200
kubernetes: add documentation related to cluster service #4086
---
.../pages/reference/extensions/kubernetes.adoc | 31 ++++++++++++++++++++++
.../ROOT/pages/reference/extensions/master.adoc | 8 ++++++
.../runtime/src/main/doc/configuration.adoc | 29 ++++++++++++++++++++
.../master/runtime/src/main/doc/configuration.adoc | 3 +++
4 files changed, 71 insertions(+)
diff --git a/docs/modules/ROOT/pages/reference/extensions/kubernetes.adoc
b/docs/modules/ROOT/pages/reference/extensions/kubernetes.adoc
index 0610850405..a8a56dc796 100644
--- a/docs/modules/ROOT/pages/reference/extensions/kubernetes.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/kubernetes.adoc
@@ -65,6 +65,13 @@ endif::[]
[id="extensions-kubernetes-additional-camel-quarkus-configuration"]
== Additional Camel Quarkus configuration
+ifeval::[{doc-show-extra-content} == true]
+include::extra-content.adoc[]
+endif::[]
+
+[id="extensions-kubernetes-configuration-automatic-registration-of-a-kubernetes-client-instance"]
+=== Automatic registration of a Kubernetes Client instance
+
The extension automatically registers a Kubernetes Client bean named
`kubernetesClient`. You can reference the bean in your routes like this:
from("direct:pods")
@@ -80,6 +87,30 @@ quarkus.kubernetes-client.namespace=my-namespace
The full set of configuration options are documented in the
https://quarkus.io/guides/kubernetes-client#quarkus-kubernetes-client_configuration[Quarkus
Kubernetes Client guide].
+[id="extensions-kubernetes-configuration-having-only-a-single-consumer-in-a-cluster-consuming-from-a-given-endpoint"]
+=== Having only a single consumer in a cluster consuming from a given endpoint
+
+When the same route is deployed on multiple pods, it could be interesting to
use this extension in conjunction with the
xref:reference/extensions/master.adoc[Master one].
+In such a setup, a single consumer will be active at a time across the whole
camel master namespace.
+
+For instance, having the route below deployed on multiple pods:
+
+```
+from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at
a time");
+```
+
+It's possible to enable the kubernetes cluster service with a property like
below:
+
+```
+quarkus.camel.cluster.kubernetes.enabled = true
+```
+
+As a result, a single consumer will be active across the `ns` camel master
namespace.
+It means that, at a given time, only a single timer will generate exchanges
across the whole cluster.
+In other words, messages will be logged every 100ms on a single pod at a time.
+
+The kubernetes cluster service could further be tuned by tweaking
`quarkus.camel.cluster.kubernetes.*` properties.
+
[width="100%",cols="80,5,15",options="header"]
|===
diff --git a/docs/modules/ROOT/pages/reference/extensions/master.adoc
b/docs/modules/ROOT/pages/reference/extensions/master.adoc
index cf89ab82f8..09c2ce58bc 100644
--- a/docs/modules/ROOT/pages/reference/extensions/master.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/master.adoc
@@ -44,3 +44,11 @@ Or add the coordinates to your existing project:
ifeval::[{doc-show-user-guide-link} == true]
Check the xref:user-guide/index.adoc[User guide] for more information about
writing Camel Quarkus applications.
endif::[]
+
+[id="extensions-master-additional-camel-quarkus-configuration"]
+== Additional Camel Quarkus configuration
+
+This extension can be used in conjunction with extensions below:
+
+* xref:reference/extensions/kubernetes.adoc[Camel Quarkus Kubernetes]
+
diff --git a/extensions/kubernetes/runtime/src/main/doc/configuration.adoc
b/extensions/kubernetes/runtime/src/main/doc/configuration.adoc
index 2bcc9fd811..8acafeb39f 100644
--- a/extensions/kubernetes/runtime/src/main/doc/configuration.adoc
+++ b/extensions/kubernetes/runtime/src/main/doc/configuration.adoc
@@ -1,3 +1,9 @@
+ifeval::[{doc-show-extra-content} == true]
+include::extra-content.adoc[]
+endif::[]
+
+=== Automatic registration of a Kubernetes Client instance
+
The extension automatically registers a Kubernetes Client bean named
`kubernetesClient`. You can reference the bean in your routes like this:
from("direct:pods")
@@ -12,3 +18,26 @@ quarkus.kubernetes-client.namespace=my-namespace
----
The full set of configuration options are documented in the
https://quarkus.io/guides/kubernetes-client#quarkus-kubernetes-client_configuration[Quarkus
Kubernetes Client guide].
+
+=== Having only a single consumer in a cluster consuming from a given endpoint
+
+When the same route is deployed on multiple pods, it could be interesting to
use this extension in conjunction with the
xref:reference/extensions/master.adoc[Master one].
+In such a setup, a single consumer will be active at a time across the whole
camel master namespace.
+
+For instance, having the route below deployed on multiple pods:
+
+```
+from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at
a time");
+```
+
+It's possible to enable the kubernetes cluster service with a property like
below:
+
+```
+quarkus.camel.cluster.kubernetes.enabled = true
+```
+
+As a result, a single consumer will be active across the `ns` camel master
namespace.
+It means that, at a given time, only a single timer will generate exchanges
across the whole cluster.
+In other words, messages will be logged every 100ms on a single pod at a time.
+
+The kubernetes cluster service could further be tuned by tweaking
`quarkus.camel.cluster.kubernetes.*` properties.
diff --git a/extensions/master/runtime/src/main/doc/configuration.adoc
b/extensions/master/runtime/src/main/doc/configuration.adoc
new file mode 100644
index 0000000000..8fa5657956
--- /dev/null
+++ b/extensions/master/runtime/src/main/doc/configuration.adoc
@@ -0,0 +1,3 @@
+This extension can be used in conjunction with extensions below:
+
+* xref:reference/extensions/kubernetes.adoc[Camel Quarkus Kubernetes]
\ No newline at end of file