Chapter 195. Kubernetes Components Available as of Camel version 2.17 The Kubernetes components integrate your application with Kubernetes standalone or on top of Openshift. The camel-kubernetes consists of 13 components: Kubernetes ConfigMap Kubernetes Namespace Kubernetes Node Kubernetes Persistent Volume Kubernetes Persistent Volume Claim Kubernetes Pod Kubernetes Replication Controller Kubernetes Resource Quota Kubernetes Secrets Kubernetes Service Account Kubernetes Service In OpenShift, also: Kubernetes Build Config Kubernetes Build Maven users will need to add the following dependency to their pom.xml for this component: <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-kubernetes</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency> 195.1. Headers Name Type Description CamelKubernetesOperation String The Producer operation CamelKubernetesNamespaceName String The Namespace name CamelKubernetesNamespaceLabels Map The Namespace Labels CamelKubernetesServiceLabels Map The Service labels CamelKubernetesServiceName String The Service name CamelKubernetesServiceSpec io.fabric8.kubernetes.api.model.ServiceSpec The Spec for a Service CamelKubernetesReplicationControllersLabels Map Replication controller labels CamelKubernetesReplicationControllerName String Replication controller name CamelKubernetesReplicationControllerSpec io.fabric8.kubernetes.api.model.ReplicationControllerSpec The Spec for a Replication Controller CamelKubernetesReplicationControllerReplicas Integer The number of replicas for a Replication Controller during the Scale operation CamelKubernetesPodsLabels Map Pod labels CamelKubernetesPodName String Pod name CamelKubernetesPodSpec io.fabric8.kubernetes.api.model.PodSpec The Spec for a Pod CamelKubernetesPersistentVolumesLabels Map Persistent Volume labels CamelKubernetesPersistentVolumesName String Persistent Volume name CamelKubernetesPersistentVolumesClaimsLabels Map Persistent Volume Claim labels CamelKubernetesPersistentVolumesClaimsName String Persistent Volume Claim name CamelKubernetesPersistentVolumesClaimsSpec io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec The Spec for a Persistent Volume claim CamelKubernetesSecretsLabels Map Secret labels CamelKubernetesSecretsName String Secret name CamelKubernetesSecret io.fabric8.kubernetes.api.model.Secret A Secret Object CamelKubernetesResourcesQuotaLabels Map Resource Quota labels CamelKubernetesResourcesQuotaName String Resource Quota name CamelKubernetesResourceQuotaSpec io.fabric8.kubernetes.api.model.ResourceQuotaSpec The Spec for a Resource Quota CamelKubernetesServiceAccountsLabels Map Service Account labels CamelKubernetesServiceAccountName String Service Account name CamelKubernetesServiceAccount io.fabric8.kubernetes.api.model.ServiceAccount A Service Account object CamelKubernetesNodesLabels Map Node labels CamelKubernetesNodeName String Node name CamelKubernetesBuildsLabels Map Openshift Build labels CamelKubernetesBuildName String Openshift Build name CamelKubernetesBuildConfigsLabels Map Openshift Build Config labels CamelKubernetesBuildConfigName String Openshift Build Config name CamelKubernetesEventAction io.fabric8.kubernetes.client.Watcher.Action Action watched by the consumer CamelKubernetesEventTimestamp String Timestamp of the action watched by the consumer CamelKubernetesConfigMapName String ConfigMap name CamelKubernetesConfigMapsLabels Map ConfigMap labels CamelKubernetesConfigData Map ConfigMap Data 195.2. Usage 195.2.1. Producer examples Here we show some examples of producer using camel-kubernetes. 195.2.2. Create a pod from("direct:createPod") .toF("kubernetes-pods://%s?oauthToken=%s&operation=createPod", host, authToken); By using the KubernetesConstants.KUBERNETES_POD_SPEC header you can specify your PodSpec and pass it to this operation. 195.2.3. Delete a pod from("direct:createPod") .toF("kubernetes-pods://%s?oauthToken=%s&operation=deletePod", host, authToken); By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.

Commands:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-kubernetes</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
from("direct:createPod") .toF("kubernetes-pods://%s?oauthToken=%s&operation=createPod", host, authToken);
from("direct:createPod") .toF("kubernetes-pods://%s?oauthToken=%s&operation=deletePod", host, authToken);