Service Trait
The Service trait exposes the Integration with a Service resource so that it can be accessed by other applications (or Integrations) in the same namespace.
| this trait is automatically disabled if the Knative Service trait is enabled. |
It’s enabled by default if the integration depends on a Camel component that can expose a HTTP endpoint.
This trait is available in the following profiles: Kubernetes, Knative, OpenShift.
Configuration
Trait properties can be specified when running any integration with the CLI:
$ kamel run --trait service.[key]=[value] --trait service.[key2]=[value2] integration.yaml The following configuration options are available:
| Property | Type | Description |
|---|---|---|
|
| Can be used to enable or disable a trait. All traits share this common property. |
|
| To automatically detect from the code if a Service needs to be created. |
|
| Enable Service to be exposed as NodePort (default |
|
| The type of service to be used, either 'ClusterIP', 'NodePort' or 'LoadBalancer'. |
|
| The annotations added to the Service object. |
|
| The labels added to the Service object. |
|
| List of container ports available in the container to expose (syntax: <port-name>;<port-number>;<container-port-number>[;<port-protocol]). When omitted, |
Examples
-
Expose a Service (we call it
hello) on a port (85`) which is used internally by your application (8085):$ kamel run PlatformHttpServer.java -p quarkus.http.port=8085 -t container.ports=hello;8085 -t service.ports=hello;85;8085 -
Expose an UDP Service (we call it
udp) on a port (95) which is used internally by your application (9095):$ kamel run MyUDPServer.java -t container.ports=udp;95;UDP -t service.ports=udp;95;9095;UDP