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

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

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

Taiga

  • taiga-api provides a Java API for working with the Taiga issue tracker / kanban / scrum management system