This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push:
new 3e22750 expose-pod-service (#608)
3e22750 is described below
commit 3e227508ebeffbdc32a1a1857ae3c1638307f678
Author: Mrinal Sharma <[email protected]>
AuthorDate: Sat Jan 14 10:04:00 2023 -0500
expose-pod-service (#608)
---
karavan-demo/expose-pod-service/Readme.md | 12 ++++++++++++
.../quarkus/Responseprocessor.java | 20 ++++++++++++++++++++
.../quarkus/application.properties | 15 +++++++++++++++
.../quarkus/integration-yaml.camel.yaml | 14 ++++++++++++++
.../expose-pod-service/spring/Responseprocessor.java | 20 ++++++++++++++++++++
.../expose-pod-service/spring/application.properties | 20 ++++++++++++++++++++
.../expose-pod-service/spring/integration.camel.yaml | 15 +++++++++++++++
7 files changed, 116 insertions(+)
diff --git a/karavan-demo/expose-pod-service/Readme.md
b/karavan-demo/expose-pod-service/Readme.md
new file mode 100644
index 0000000..20b7cd2
--- /dev/null
+++ b/karavan-demo/expose-pod-service/Readme.md
@@ -0,0 +1,12 @@
+
+1. These examples expose NodePort service for the Integration.
+2. Services can be listed by executing command
+ ```
+ kubectl get svc
+ ```
+2. The integration code creates a TCP listener. You can connect to it using
any TCP client like telnet.
+ ```
+ telnet your-node-ip Nodeport
+ ```
+3. Tcp connection can be disconnected by typing `quit`
+
diff --git a/karavan-demo/expose-pod-service/quarkus/Responseprocessor.java
b/karavan-demo/expose-pod-service/quarkus/Responseprocessor.java
new file mode 100644
index 0000000..fab2dad
--- /dev/null
+++ b/karavan-demo/expose-pod-service/quarkus/Responseprocessor.java
@@ -0,0 +1,20 @@
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.lang.String;
+
+@Singleton
+@Named("ResponseProcessor")
+public class Responseprocessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ if(exchange.getIn().getBody(String.class).contains("quit")) {
+ System.out.println("received Quit");
+ exchange.getOut().setHeader("CamelNettyCloseChannelWhenComplete", true);
+ }
+ else {
+ exchange.getOut().setBody("Hello from Karavan Pod");
+ }
+ }
+}
\ No newline at end of file
diff --git a/karavan-demo/expose-pod-service/quarkus/application.properties
b/karavan-demo/expose-pod-service/quarkus/application.properties
new file mode 100644
index 0000000..5a72a54
--- /dev/null
+++ b/karavan-demo/expose-pod-service/quarkus/application.properties
@@ -0,0 +1,15 @@
+camel.karavan.project-id=nodeportexpose
+camel.karavan.project-name=NodePortExpose
+camel.karavan.project-description=Example to show the way to expose POD port
via NodePort service
+camel.jbang.gav=org.camel.karavan.demo:nodeportexpose:1
+camel.jbang.runtime=quarkus
+camel.jbang.quarkusVersion=2.13.5.Final
+camel.jbang.dependencies=camel:microprofile-health,mvn:io.quarkus:quarkus-kubernetes,mvn:io.quarkus:quarkus-container-image-jib
+camel.health.enabled=true
+camel.health.exposure-level=full
+quarkus.container-image.name=nodeportexpose
+quarkus.kubernetes.replicas=2
+quarkus.kubernetes.ports."ports".host-port=30010
+quarkus.kubernetes.ports."ports".container-port=8000
+quarkus.kubernetes.service-type=NodePort
+quarkus.kubernetes.ports."ports".node-port=30010
\ No newline at end of file
diff --git
a/karavan-demo/expose-pod-service/quarkus/integration-yaml.camel.yaml
b/karavan-demo/expose-pod-service/quarkus/integration-yaml.camel.yaml
new file mode 100644
index 0000000..bc0c7e2
--- /dev/null
+++ b/karavan-demo/expose-pod-service/quarkus/integration-yaml.camel.yaml
@@ -0,0 +1,14 @@
+- route:
+ id: route-4bac
+ from:
+ uri: 'netty:tcp://0.0.0.0:8000'
+ id: from-b670
+ parameters:
+ keepAlive: true
+ steps:
+ - log:
+ message: '${body}'
+ id: log-31e4
+ - process:
+ ref: ResponseProcessor
+ id: process-7ea2
diff --git a/karavan-demo/expose-pod-service/spring/Responseprocessor.java
b/karavan-demo/expose-pod-service/spring/Responseprocessor.java
new file mode 100644
index 0000000..fab2dad
--- /dev/null
+++ b/karavan-demo/expose-pod-service/spring/Responseprocessor.java
@@ -0,0 +1,20 @@
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.lang.String;
+
+@Singleton
+@Named("ResponseProcessor")
+public class Responseprocessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ if(exchange.getIn().getBody(String.class).contains("quit")) {
+ System.out.println("received Quit");
+ exchange.getOut().setHeader("CamelNettyCloseChannelWhenComplete", true);
+ }
+ else {
+ exchange.getOut().setBody("Hello from Karavan Pod");
+ }
+ }
+}
\ No newline at end of file
diff --git a/karavan-demo/expose-pod-service/spring/application.properties
b/karavan-demo/expose-pod-service/spring/application.properties
new file mode 100644
index 0000000..de3febf
--- /dev/null
+++ b/karavan-demo/expose-pod-service/spring/application.properties
@@ -0,0 +1,20 @@
+camel.karavan.project-id=nodeportexposespring
+camel.karavan.project-name=nodeportexposespring
+camel.karavan.project-description= This Example shows the way to expose POD
port via NodePort service
+camel.jbang.gav=org.camel.karavan.demo:nodeportexposespring:1
+camel.jbang.runtime=spring-boot
+camel.jbang.dependencies=camel:microprofile-health
+camel.health.enabled=true
+camel.health.exposure-level=full
+management.endpoints.web.exposure.include=health
+management.health.probes.enabled=true
+management.health.livenessState.enabled=true
+management.health.readinessState.enabled=true
+management.endpoint.health.show-details=always
+jkube.version=1.10.1
+jkube.build.strategy=jib
+jkube.imagePullPolicy=IfNotPresent
+jkube.enricher.jkube-controller.replicaCount=2
+jkube.enricher.jkube-service.port=30011:8000
+jkube.enricher.jkube-service.type=NodePort
+jkube.enricher.jkube-service.protocol=tcp
diff --git a/karavan-demo/expose-pod-service/spring/integration.camel.yaml
b/karavan-demo/expose-pod-service/spring/integration.camel.yaml
new file mode 100644
index 0000000..f520aed
--- /dev/null
+++ b/karavan-demo/expose-pod-service/spring/integration.camel.yaml
@@ -0,0 +1,15 @@
+- route:
+ id: route-4bac
+ from:
+ uri: 'netty:tcp://0.0.0.0:8000'
+ id: from-b670
+ parameters:
+ keepAlive: true
+ steps:
+ - log:
+ message: '${body}'
+ id: log-31e4
+ - process:
+ ref: ResponseProcessor
+ id: process-7ea2
+