Continuous Integration and Continous Delivery in Microservices Platform consists of the following open source components:
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.
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.
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).
For more information on getting started with Continous Delivery check out the Fabric8 Getting Started Guide.