| = Kubernetes Nodes Component |
| :doctitle: Kubernetes Nodes |
| :shortname: kubernetes-nodes |
| :artifactid: camel-kubernetes |
| :description: Perform operations on Kubernetes Nodes and get notified on Node 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 Nodes component is one of xref:kubernetes-summary.adoc[Kubernetes Components] which |
| provides a producer to execute Kubernetes Node operations and a consumer to consume events related to Node 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 |
| |
| - listNodes |
| - listNodesByLabels |
| - getNode |
| - createNode |
| - updateNode |
| - deleteNode |
| |
| |
| == Kubernetes Nodes Producer Examples |
| |
| - listNodes: this operation list the nodes on a kubernetes cluster |
| |
| [source,java] |
| -------------------------------------------------------------------------------- |
| from("direct:list"). |
| toF("kubernetes-nodes:///?kubernetesClient=#kubernetesClient&operation=listNodes"). |
| to("mock:result"); |
| -------------------------------------------------------------------------------- |
| |
| This operation return a List of Nodes from your cluster |
| |
| - listNodesByLabels: this operation list the nodes 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_NODES_LABELS, labels); |
| } |
| }); |
| toF("kubernetes-deployments:///?kubernetesClient=#kubernetesClient&operation=listNodesByLabels"). |
| to("mock:result"); |
| -------------------------------------------------------------------------------- |
| |
| This operation return a List of Nodes from your cluster, using a label selector (with key1 and key2, with value value1 and value2) |
| |
| == Kubernetes Nodes Consumer Example |
| |
| [source,java] |
| -------------------------------------------------------------------------------- |
| fromF("kubernetes-nodes://%s?oauthToken=%s&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(); |
| Node node = exchange.getIn().getBody(Node.class); |
| log.info("Got event with configmap name: " + node.getMetadata().getName() + " and action " + in.getHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION)); |
| } |
| } |
| -------------------------------------------------------------------------------- |
| |
| This consumer will return a list of events for the node test. |
| |
| |
| |
| include::spring-boot:partial$starter.adoc[] |