In our earlier blogs, we had described how to build and deploy BOSH and how to build and deploy cf-release on OpenPOWER systems, an alternative processor architecture based on IBM POWER systems. In this blog, we will describe how to build and deploy the Concourse continuous integration service as a BOSH release to OpenStack on OpenPOWER systems. Concourse installation steps with BOSH documented here need just OpenPOWER specific releases and resources to deploy on OpenPOWER. We are providing a base Concourse release which contains four resources – git-resource, time-resource, archive-resource and docker-image-resource as Docker images. The list of supported resources and additional custom resource types can be built using Concourse pipelines. We will describe steps to build these additional resources.
Prepare the environment:
- Install BOSH on OpenStack on OpenPOWER as described in this blog.
- Specify a Cloud Config as described in this sample.
- Upload a BOSH stemcell for OpenPOWER. Download v3232 from here.
Deploy Concourse:
- Download pre-built Concourse-release (v2.1.0) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download a pre-built Garden-runc-release (v0.8.0) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download and customize deployment manifest using this example for OpenPOWER based on this generic example manifest
- Deploy using bosh deploy. The output of the bosh deploy command should be similar to this log. The results can be seen with the following commands: bosh releases and bosh vms.
Add other Concourse resources with Concourse pipelines:
- Set up a public Docker hub account for adding your Concourse resource images.
- Alternatively set up a private Docker registry, following these instructions.
- Download the Concourse cli called fly for OpenPOWER systems from here. Alternatively use Mac, Linux or Windows versions, available with the standard concourse installation. We need only two commands – login (login to Concourse) and set-pipeline (set Concourse pipeline).
- Create pipelines and projects for Concourse resources using instructions from: pipeline and parameters.
- Add the new pipelines to the deployed concourse service after login using the follow command:
fly --target pipelines login username: <check your manifest/Cloud config> password: <check your manifest/Cloud config> fly --target pipelines set-pipeline --config $path/concourse-resources-pipeline.yml --pipeline concourse-resources-pipeline --load-vars-from $path/secret.yml
Here is a screenshot from a running pipeline using source code from these Github projects for resources: (archive-resource, time-resource, git-resource, docker-image-resource, s3-resource)
With contributions from IBM’ers Yulia Gaponenko, Konstantin Maximov and Indrajit Poddar.