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