| = Kubernetes Services Component |
| :doctitle: Kubernetes Services |
| :shortname: kubernetes-services |
| :artifactid: camel-kubernetes |
| :description: Perform operations on Kubernetes Services and get notified on Service changes. |
| :since: 2.17 |
| :supportlevel: Stable |
| :tabs-sync-option: |
| :component-header: Both producer and consumer are supported |
| //Manually maintained attributes |
| :group: Kubernetes |
| :camel-spring-boot-name: kubernetes |
| |
| *Since Camel {since}* |
| |
| *{component-header}* |
| |
| The Kubernetes Services component is one of xref:kubernetes-summary.adoc[Kubernetes Components] which |
| provides a producer to execute Kubernetes Service operations and a consumer to consume events related to Service objects. |
| |
| |
| // component-configure options: START |
| |
| // component-configure options: END |
| |
| // component options: START |
| include::partial$component-configure-options.adoc[] |
| include::partial$component-endpoint-options.adoc[] |
| // component options: END |
| |
| // endpoint options: START |
| |
| // endpoint options: END |
| // component headers: START |
| include::partial$component-endpoint-headers.adoc[] |
| // component headers: END |
| |
| == Supported producer operation |
| |
| - listServices |
| - listServicesByLabels |
| - getService |
| - createService |
| - deleteService |
| |
| == Kubernetes Services Producer Examples |
| |
| - listServices: this operation list the services on a kubernetes cluster |
| |
| [source,java] |
| -------------------------------------------------------------------------------- |
| from("direct:list"). |
| toF("kubernetes-services:///?kubernetesClient=#kubernetesClient&operation=listServices"). |
| to("mock:result"); |
| -------------------------------------------------------------------------------- |
| |
| This operation return a List of services from your cluster |
| |
| - listServicesByLabels: this operation list the deployments by labels on a kubernetes cluster |
| |
| [source,java] |
| -------------------------------------------------------------------------------- |
| from("direct:listByLabels").process(new Processor() { |
| @Override |
| public void process(Exchange exchange) throws Exception { |
| Map<String, String> labels = new HashMap<>(); |
| labels.put("key1", "value1"); |
| labels.put("key2", "value2"); |
| exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS, labels); |
| } |
| }); |
| toF("kubernetes-services:///?kubernetesClient=#kubernetesClient&operation=listServicesByLabels"). |
| to("mock:result"); |
| -------------------------------------------------------------------------------- |
| |
| This operation return a List of Services from your cluster, using a label selector (with key1 and key2, with value value1 and value2) |
| |
| == Kubernetes Services Consumer Example |
| |
| [source,java] |
| -------------------------------------------------------------------------------- |
| fromF("kubernetes-services://%s?oauthToken=%s&namespace=default&resourceName=test", host, authToken).process(new KubernertesProcessor()).to("mock:result"); |
| |
| public class KubernertesProcessor implements Processor { |
| @Override |
| public void process(Exchange exchange) throws Exception { |
| Message in = exchange.getIn(); |
| Service sv = exchange.getIn().getBody(Service.class); |
| log.info("Got event with configmap name: " + sv.getMetadata().getName() + " and action " + in.getHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION)); |
| } |
| } |
| -------------------------------------------------------------------------------- |
| |
| This consumer will return a list of events on the namespace default for the service test. |
| |
| |
| include::spring-boot:partial$starter.adoc[] |