Fabric8 Documentation

Continuous Integration and Continous Delivery

Microservices Platform provides a Continuous Integration and Continous Delivery (CI and CD) infrastructure built as a set of Kubernetes resources which are easy to Install.

Continous Delivery Diagram


Continuous Integration and Continous Delivery in Microservices Platform consists of the following open source components:

  • Jenkins for Building, Continuous Integration and creating Continuous Delivery pipelines.
  • Nexus as the artifact repository for caching public artifacts and hosting canary and real release artifacts
  • Gogs for on premise git repository hosting and GitHub for public hosting
  • SonarQube provides a platform to maintain code quality

In addition it adds the following optional capabilities:

You can choose to opt in or out of any of the micro services within Microservices Platform; for example use any git repository hosting or Nexus installation. The Chat integration works with hubot so that it can work with any back end chat service such as IRC, Slack, HipChat, Campfire etc.

By default we try and integrate all the components closely out of the box so Microservices Platform is an easy, 1 click install. e.g. by default Jenkins builds will use the local Nexus server for all downloads of maven artifacts and for all canary and full releases.

Since Microservices Platform is built on top of Kubernetes we get an easy way to scale (e.g. Jenkins build slaves) together with letting us reuse Kubernetes services for service discovery to wire up the various components (e.g. for Jenkins to discover Nexus). If you opt out of any of the default implementations; you just need to create a Kubernetes Service pointing to your external installation of the service.

Automate Jenkins Jobs

Teams often have many git repositories with many artifacts and docker container builds. Manually maintaining individual Jenkins build configurations for each git repository can be time consuming and error prone.

So we recommend the use of the Jenkins Job DSL to generate the Jenkins build jobs for your projects.

The Jenkins app comes with a template parameter SEED_GIT_URL which is the location of the git repository to clone in Jenkins for the Jenkins Job DSL used to generate the Jenkins builds. Any change in that git repository results in the seed job being rerun which then regenerates any of its Jenkins jobs.

The SEED_GIT_URL parameter defaults to the value https://github.com/fabric8io/default-jenkins-dsl.git for the default-jenkins-dsl project which provides an example set of scripts to iterate over your projects and create the necessary jobs for them. We hope soon those scripts will automatically setup CI / CD jobs for projects in the hosted Gogs repositories (for now it will iterate over a github organisation and generates builds for matching projects).

Getting started

For more information on getting started with Continous Delivery check out the Fabric8 Getting Started Guide.


Here is a video demonstrating Fabric8 Continuous Delivery Pipelines