This example illustrates the integration between Camel, CDI and Kubernetes.
The example gets the list of pods from a Kubernetes cluster and emulates the output of the kubectl get pods
command.
The camel-cdi
and camel-kubernetes
components are used in this example. The example assumes you have a running Kubernetes cluster in your environment. For example you can use minikube or the vagrant openshift image from Fabric8 team.
By default, the example use the KUBERNETES_MASTER
environment variable to retrieve the Kubernetes master URL. Besides, it tries to find the current login token and namespace by parsing the users ~/.kube/config
file. However, you can edit the application.properties
file to override the default and provide the Kubernetes master URL and OAuth token for your environment.
To retrieve the tokens in your kubeconfig file, you can execute the following command:
$ kubectl config view -o jsonpath='{range .users[?(@.user.token != "")]}{.name}{":\t"}{.user.token}{"\n"}{end}'
Alternatively, if you're using OpenShift, you can retrieve the token for the current user with:
$ oc whoami -t
You can build this example using:
$ mvn package
You can run this example using:
$ mvn camel:run
When the Camel application runs, you should see the pods list being logged periodically, e.g.:
2016-08-22 18:29:46,449 [ timer://client] INFO kubernetes-client - We currently have 11 pods: NAME READY STATUS RESTARTS AGE content-repository-yhg9u 1/1 Running 34 49d docker-registry-1-bv5vk 1/1 Running 34 49d fabric8-docker-registry-9jd9z 1/1 Running 34 49d fabric8-forge-8gnro 1/1 Running 11 17d fabric8-kw532 1/1 Running 34 49d gogs-2exwf 1/1 Running 22 32d jenkins-kixdv 1/1 Running 12 18d mysql-5-f8trz 1/1 Running 8 13d nexus-5j60s 1/1 Running 71 49d router-1-7eiu5 2/2 Running 26 49d spring-boot-camel-rest-s-13-559vm 1/1 Running 0 6h
The timer has a period
option equals to 10s
.
The Camel application can be stopped pressing ctrl+c in the shell.
If you hit an problems please let us know on the Camel Forums http://camel.apache.org/discussion-forums.html
Please help us make Apache Camel better - we appreciate any feedback you may have. Enjoy!
The Camel riders!