MeranaTona opened a new issue, #3580:
URL: https://github.com/apache/camel-k/issues/3580

   Hi all,
   
   I have setup a route sending Strings to an OPC UA Server. Unfortunately the 
server (exposed via nodeport) is not reachable for OPC UA clients.
   
   Server component (producer): 
https://camel.apache.org/components/3.14.x/milo-server-component.html
   
https://github.com/apache/camel/tree/main/components/camel-milo/src/main/java/org/apache/camel/component/milo/server
   
   route:
   ```
   // camel-k: language=java
   import org.apache.camel.CamelContext;
   import org.apache.camel.builder.RouteBuilder;
   import org.apache.camel.component.milo.server.MiloServerComponent;
   //import org.apache.camel.impl.DefaultCamelContext;
   import org.apache.camel.main.Main;
   
   import org.apache.camel.CamelContext;
   import org.apache.camel.component.milo.server.MiloServerComponent;
   import org.apache.camel.impl.DefaultCamelContext;
   
   import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
   
   public class ExampleServer extends RouteBuilder {
   
           @Override
           public void configure() throws Exception {
                   final CamelContext context = getContext();
   
                   MiloServerComponent miloServerComponent = 
((MiloServerComponent) context.getComponent("milo-server"));
                   miloServerComponent.setBindAddresses("0.0.0.0");
                   miloServerComponent.setPort(4862);
                   
miloServerComponent.setUsernameSecurityPolicyUri(SecurityPolicy.None);
                   miloServerComponent.setSecurityPoliciesById("None");
   
                   from("timer:tick?period=3000")
                           .setBody().constant("Hello world from Camel K")
                   .to("milo-server:itemId");
           }
   
           public static void main(String... args) throws Exception {
                   Main main = new Main();
   
                   main.configure().addRoutesBuilder(new ExampleServer());
                   main.run(args);
           }
   }
   ```
   
   Seems like the server trait only allows http but no tcp, which is used for 
OPC: https://camel.apache.org/camel-k/1.8.x/traits/service.html . So I followed 
this advice, for setting up container and service via yaml: 
https://github.com/apache/camel-k/issues/2693
   
   container-template.yaml:
   ```
   containers:
     - name: integration
       ports:
         - containerPort: 4862
           protocol: TCP
   ```
   
   service.yaml:
   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: service
     namespace: camel-k
   spec:
     selector:
       camel.apache.org/integration: example-server
     ports:
       - protocol: TCP
         port: 4862
         targetPort: 4862
   ```
   
   Then, finally my run.sh:
   ```
   #!/bin/bash
   
   namespace="camel-k"
   
   kubectl delete -f network/service.yaml
   
   kamel run --pod-template network/container-template.yaml 
./ExampleServer.java --namespace $namespace
   sleep 7
   kubectl apply -f network/service.yaml
   kubectl get po -n $namespace
   ```
   
   ExampleServer pod logs:
   ```
   ESC[38;5;145m2022-08-27 12:05:46,980ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.k.RuntimeESC[39m
   ESC[38;5;188m] (ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) 
ESC[39mESC[38;5;151mApache Camel K Runtime 
1.12.0ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:47,003ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.qua.cor.C
   amelBootstrapRecorderESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) 
ESC[39mESC[38;5;151mESC[39mBootstrap runtime: ESC[38;5;188morg
   
.apache.camel.quarkus.main.CamelMainRuntimeESC[39mESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:47,035ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.k.lis.Sou
   rcesConfigurerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mLoading 
routes from: SourceDefinition{name='Examp
   leServer', language='java', type='source', 
location='file:/etc/camel/sources/ExampleServer.java', 
}ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:47,974ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sdk.s
   er.OpcUaServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mEclipse Milo 
OPC UA Stack version: 0.3.7ESC[39m
   ESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:47,974ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sdk.s
   er.OpcUaServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mEclipse Milo 
OPC UA Server SDK version: 0.3.7ESC[
   39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,804ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sdk.s
   er.nam.OpcUaNamespaceESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mLoaded nodes 
in 516ms.ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,840ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://example-server-76d99b79d9-pn6bw:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,929ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://example-server-76d99b79d9-pn6bw:4862/discovery to 
0.0.0.0:4862 [None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,929ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://localhost:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,929ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://localhost:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,930ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://10.42.7.112:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,930ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://10.42.7.112:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,931ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://127.0.0.1:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,931ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint opc.tcp://127.0.0.1:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,931ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://example-server-76d99b79d9-pn6bw:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,932ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://example-server-76d99b79d9-pn6bw:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,932ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://localhost:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,932ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://localhost:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,932ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://10.42.7.112:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,932ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://10.42.7.112:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,933ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://127.0.0.1:4862 to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,933ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.ecl.mil.opc.sta.ser.UaStackServerESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mBinding 
endpoint https://127.0.0.1:4862/discovery to 0.0.0.0:4862 
[None/None]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,943ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.imp.eng.AbstractCamelContextESC[39mESC[38;5;188m]
 (ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mRoutes 
startup (total:1 started:1)ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,943ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.imp.eng.AbstractCamelContextESC[39mESC[38;5;188m]
 (ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151m    Started 
route1 (timer://tick)ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,944ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69morg.apa.cam.imp.eng.AbstractCamelContextESC[39mESC[38;5;188m]
 (ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) ESC[39mESC[38;5;151mApache Camel 
3.14.1 (camel-1) started in 1s211ms (build:0ms init:35ms 
start:1s176ms)ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,947ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69mio.quarkusESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) 
ESC[39mESC[38;5;151mESC[39mESC[38;5;188mcamel-k-integrationESC[39m 
ESC[38;5;188m1.8.2ESC[39m ESC[38;5;188mon JVMESC[39m (powered by Quarkus 
ESC[38;5;188m2.7.0.FinalESC[39m) started in ESC[38;5;188m2.676ESC[39ms. 
ESC[38;5;188mESC[39mESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,947ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69mio.quarkusESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) 
ESC[39mESC[38;5;151mESC[39mProfile ESC[38;5;188mprodESC[39m activated.
   ESC[38;5;188mESC[39mESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ESC[39mESC[38;5;145m2022-08-27 12:05:48,947ESC[39mESC[38;5;188m 
ESC[39mESC[38;5;107mINFO ESC[39mESC[38;5;188m 
[ESC[39mESC[38;5;69mio.quarkusESC[39mESC[38;5;188m] 
(ESC[39mESC[38;5;71mmainESC[39mESC[38;5;188m) 
ESC[39mESC[38;5;151mESC[39mInstalled features: [ESC[38;5;188mcamel-bean, 
camel-core, camel-java-joor-dsl, camel-k-core, camel-k-runtime, camel-milo, 
camel-timer, cdiESC[39m]ESC[39mESC[38;5;203mESC[39mESC[38;5;227m
   ```
   Service:
   ```
    kubectl get svc -n camel-k
   NAME      TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
   service   NodePort   10.43.83.204   <none>        4862:31185/TCP   20m
   ```
   
   If I now try to connect a client outside of K8s to the server via 
opc.tcp://pod-hostname:31185, the client wont find the server.
   
   Im not really sure what the problem is. Thank you in advance.
   
   Greetings


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to