Concourse CI on Kubernetes (GKE), Part 4: Concourse

In our previous post, we configured our GKE (Google Kubernetes Engine) to use Let’s Encrypt TLS certificates. In this post, the capstone of our series, we install Concourse CI. Installation These instructions are a more-opinionated version of the canonical instructions for the Concourse CI Helm chart found here: https://github.com/concourse/concourse-chart. First Install: with Helm We use helm to install Concourse. We first add the Helm repo, and then install it. We take the opportunity to bump the default login time from 24 hours to ten days (duration=240h) because we hate re-authenticating to our Concourse every morning....

September 1, 2021 · 5 min · Brian Cunnie

Concourse CI on Kubernetes (GKE), Part 3: TLS

In our previous blog post, we configured ingress to our Kubernetes cluster but were disappointed to discover that the TLS certificates were self-signed. In this post we’ll remedy that by installing cert-manager, the Cloud native certificate management tool. Disclaimer: most of this blog post was lifted whole cloth from the most-excellent cert-manager documentation. We merely condensed it & made it more opinionated. Installation Let’s add the Jetstack Helm Repository:...

August 11, 2021 · 4 min · Brian Cunnie

Concourse CI on Kubernetes (GKE), Part 2: Ingress

In our previous blog post, we set up our Kubernetes cluster and deployed a pod running nginx, but the experience was disappointing—we couldn’t browse to our pod. Let’s fix that by deploying the nginx Ingress controller. Acquire the External IP Address (Elastic IP) We’ll use the Google Cloud console to acquire the external address [external address] for our load balancer. Navigate to VPC network → External IP addresses → Reserve Static Address:...

August 7, 2021 · 3 min · Brian Cunnie

Concourse CI on Kubernetes (GKE), Part 1: Terraform

Let’s deploy Concourse, a continuous-integration, continuous delivery (CI/CD) application (similar to Jenkins and CircleCI). We’ll deploy it to Google Cloud, to our Google Kubernetes Engine (GKE). In this post, we’ll use HashiCorp’s Terraform to create our cluster. We assume you’ve already installed the terraform command-line interface (CLI) and created a Google Cloud account. mkdir -p ~/workspace/gke cd ~/workspace/gke Next we download the terraform templates and terraform vars file: curl -OL https://raw....

August 6, 2021 · 5 min · Brian Cunnie

The Old Blog is Dead. Long Live the New Blog!

Why am I creating a new blog? What was wrong with the old blog? Why don’t I use Medium? The short version: The old blog is frozen in time, like a prince caught in amber 1 or a dandy in aspic 2. I can no longer post to it. The old blog, the Pivotal Engineering Journal, which many of Pivotal’s engineers contributed to, was archived a year after VMware acquired Pivotal....

July 18, 2021 · 2 min · Brian Cunnie