Maintaining BOSH Directors with Concourse CI and bosh-deployment

“BOSH deploys Concourse, and Concourse deploys BOSH” —Cloud Foundry koan A BOSH Director is a VM (virtual machine) orchestrator which is itself a VM. BOSH solves the problem of keeping its VMs’ applications (operating systems (stemcells) and releases) up-to-date with the command, bosh deploy; however, this begs the question, “what keeps the BOSH Director itself up-to-date?”. [Quis custodiet?] We explore using Concourse, a Continuous Integration (CI) server, and bosh-deployment [Updating BOSH], in order to create a Concourse pipeline which updates, in turn, a BOSH director on AWS (Amazon Web Services), on Microsoft Azure, and GCP (Google Cloud Platform). Updating all three BOSH directors can be accomplished with a single click. [One click] Best of all, our directors are re-deployed with a recent stemcell, BOSH release, and CPI release. [How recent?] ...

November 24, 2017 · 17 min · Brian Cunnie

Concourse has Badges

The Concourse Continuous Integration (CI) server has an API endpoint that displays a badge which shows health of your project: http(s)://concourse-server/api/v1/pipelines/pipeline-name/jobs/job-name/badge 0. Abstract Open Source projects that have CI (e.g. Bootstrap, Node.js) often feature status badges (also known as images or icons) to display the health of their projects. CI servers such as Travis CI offer status badges. Concourse CI also offers status badges. The status badge is a Scalable Vector Graphics (SVG) image available from the Concourse API. [Concourse versions] ...

September 1, 2016 · 3 min · Brian Cunnie

Concourse without a Load Balancer

Abstract Concourse is a continuous integration (CI) server. It can be deployed manually or via BOSH. In this blog post, we describe the BOSH deployment of a Concourse CI server to natively accept Secure Sockets Layer (SSL) connections without using a load balancer. This may reduce the complexity and cost [ELB-pricing] of a Concourse deployment. 2016-09-12: This blog post is obsolete. Newer (v2.0.0+) versions of Concourse allow binding to the privileged ports 80 and 443, eliminating the need for an nginx proxy. Here is an example of a BOSH-deployed Concourse server that binds natively to ports 80 & 443: BOSH manifest. 0. Pre-requisites Deploy Concourse with BOSH. Follow the instructions here. ...

August 26, 2016 · 5 min · Brian Cunnie

The World's Smallest Concourse CI Server

[2016-04-06: This Blog Post is out-of-date; Please refer to the official Concourse documentation for instructions how to install a Concourse server] Continuous Integration (CI) is often used in conjunction with test-driven development (TDD); however, CI servers often bring their own set of challenges: they are usually “snowflakes”, uniquely configured machines that are difficult to upgrade, re-configure, or re-install. [snowflakes] In this blog post, we describe deploying a publicly-accessible, lean (1GB RAM, 1 vCPU, 15GB disk) Concourse CI server using a 350-line manifest. Upgrades/re-configurations/re-installs are as simple as editing a file and typing one command (bosh-init). ...

October 24, 2015 · 8 min · Brian Cunnie