Java Libraries
If you want to write any Java/JVM based tools to interact with Kubernetes, Docker or Etcd we have a number of libraries to help:
Kubernetes
Kubernetes provides the main REST API for working with the Kubernetes Platform. It should provide all you need for writing most services and plugins for Kubernetes.
- kubernetes-api provides a Java API for working with the Kubernetes REST API (pods, replication controllers, services etc)
- kubernetes-jolokia makes it easy to work with the Jolokia Client API and Java containers running in Pods inside Kubernetes which expose the Jolokia port
- kubernetes-template provides a simple templating mechanism for generating the Kubernetes JSON files from MVEL templates with parameters from a DTO
Testing
- fabric8-arquillian provides a plugin for Arquillian for integration testing Apps on top of Kubernetes; using Kubernetes to provision and orchestrate the containers and then making assertions that the required resources startup correctly.
- fabric8-selenium provides a library to make it easier to create Selenium WebDriver based integration and system tests on Kubernetes using fabric8-arquillian
- kubernetes-assertions provides a set of assertj assertions of the form assertThat(kubernetesResource) for working with the kubernetes-api
- jolokia-assertions makes it easy to perform assertions on remote JVMs via JMX using Jolokia over HTTP/JSON
ActiveMQ
mq-client provides the the io.fabric8.mq.core.MQConnectionFactory class which implements the JMS ConnectionFactory to connect to ActiveMQ using the Kubernetes Service discovery mechanism which requires no user configuration (other than a single environment variable if you wish to switch to a non default service implementation)
camel-amq provides the Camel amq: component which uses the Kubernetes Service discovery mechanism to discover and connect to the ActiveMQ brokers so that no configuration is required (other than a single environment variable if you wish to switch to a non default service implementation)
CDI
- fabric8-cdi provides an easy way to work with Kubernetes services using the CDI Dependency Injection approach
- fabric8-apt provides an APT code generator to create a JSON Schema file for each environment variable injected by the @ConfigProperty annotation from deltaspike - giving dteails of the name, type, default value and description. This can then be used by the fabric8:json maven goal to list all of the environment variables and their value in the generated kubernetes JSON file.
DevOps
- fabric8-devops provides a Java API for reading and writing the
fabric8.yml
file used to configure DevOps options inside the source code of a project
DevOps Connector
- fabric8-devops-connector provides a Java library for connecting the various DevOps services like git hosting, chat, issue tracking and jenkins for a project reusing the optional
fabric8.yml
file
Etcd
Git Repos
- gitrepo-api provides a Java API for working with git repositories such as gogs or github
Hubot
- hubot-api provides a Java API for working with the Hubot chat bot for sending notifications to chat services like Lets Chat, IRC, Slack, HipChat and Campfire
Hubot
- hubot-letschat provides a Java API for working with the Let's Chat to auto-create rooms etc.