Search code examples
ibm-cloud-privatemicroclimate

Microservice Builder used for inner loop builds in microclimate on IBM Cloud Private?


When I use microclimate on ICP, if I create a pipeline it will use Microservice Builder running in Jenkins to orchestrate a maven build, a docker package into a container image, and a deploy to Kubernetes.

Does Microservice Builder also orchestrate these steps when running "inner loop" builds?

i.e. when I change my code I see it is built by maven and ends up as a pod running in Kubernetes. Does Microservice Builder orchestrate this inner loop? And if not, what does?

The reason for the question is I'd like to extend Microservice Builder and I want to know if these extensions would also be invoked in the "inner loop" builds.


Solution

  • Jenkins is only involved in the builds triggered from the 'Pipeline' menu option. The inner loop is managed separately. An 'editor-filewatcher' pod is created for each separate user, along with a per-user persistent volume for their files. Filewatcher tracks these files, and when you make a change, rebuilds the associated application if appropriate. (So a build is performed for maven projects but not for Node.js, for example.) The built or packaged files are then mounted into a second pod containing a running instance of the application.

    Microservice Builder was merged into Microclimate, and is no longer available under its old name. You are correct that its Jenkins script is still in use, at https://github.com/microclimate-dev2ops/jenkins-library. As you say, you can fork and change this library as you see fit.

    The best way to extend what happens in the inner loop build is to consider using multi-stage Dockerfiles. These will work both in the developer and pipeline environments.