blob: dab571f53a0878d7a2347663cb3ee55d47e6cf13 [file] [log] [blame]
= 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[]