Kubernetes

JVM since1.0.0 Native since1.0.0

Perform operations against Kubernetes API

What’s inside

Please refer to the above links for usage and configuration details.

Maven coordinates

Or add the coordinates to your existing project:

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>

Check the User guide for more information about writing Camel Quarkus applications.

Additional Camel Quarkus configuration

Automatic registration of a Kubernetes Client instance

The extension automatically registers a Kubernetes Client bean named kubernetesClient. You can reference the bean in your routes like this:

from("direct:pods")
    .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")

Or you can omit referring to the client bean entirely and the Kubernetes component will automatically use the Kubernetes client that was autowired.

from("direct:pods")
    .to("kubernetes-pods:local?operation=listPods")

By default, the client is configured from the local kubeconfig file. You can customize the client configuration via properties within application.properties:

quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace

The full set of configuration options are documented in the Quarkus Kubernetes Client guide.

If you want to suppress this behavior, you can disable autowiring and all configuration will be driven from the documented component and endpoint options.

To disable autowiring at the component level, add the following configuration to application.properties.

camel.component.kubernetes-pods.autowired-enabled=false

To disable autowiring at the endpoint level.

from("direct:pods")
    .to("kubernetes-pods:https://my.cluster.host?autowiredEnabled=false&operation=listPods")

OpenShift specific components

When using any of the OpenShift specific components:

  • openenshift-build-configs

  • openenshift-builds

  • openshift-deploymentconfigs

You must add the following dependency to your application.

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-openshift-client</artifactId>
</dependency>

Having only a single consumer in a cluster consuming from a given endpoint

This functionality is provided by the camel-quarkus-kubernetes-cluster-service extension. Refer to the extension documentation for more information.