Analyzing Kubernetes Capabilities of Bamboo — Part 1

Sugendh K Ganga
3 min readJul 31, 2018

Are you a DevOps enthusiast?

If yes, chances are containers & Kubernetes are going to be among your best friends at office, if not just yet.

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

Since we are DevOps engineers, Kubernetes alone is not going to serve the purpose. CI/CD tools are an integral part of DevOps Practice. We have multiple options when it comes to capable tools in this segment, but for now we are going to stick to Atlassian Bamboo and analyse, how it fares against other market leaders like Jenkins & VSTS when it comes to managing applications on a Kubernetes Cluster.

Bamboo is a widely recognised Continuous Integration/Delivery tool, and is used by many organisations for dictating the lifecycle of their applications. But does it give you ‘out of the box’ solution to manage deployments to a Kubernetes cluster? Answer is a staggering “No!”. On the contrary, Microsoft’s VSTS has complete integration with Kubernetes, should you need to create a build and release pipeline for any Kubernetes deployment. It allows secure storage of kubeconfig file and provides a service endpoint to talk to the cluster.

That being said, it doesn’t mean that Bamboo can’t do it, it sure can.

Now, that’s a bit confusing! Yes, Bamboo does not provide any integrated plugins/tasks for interacting with Kubernetes. That’s why I said, it does not provide any out of the box solution when it comes to talking to Kubernetes. But, it has the capability to have dedicated remote agents for any given Build Plan/Project or Deployment Project. You now know where I’m going with this, don’t you?

You can create a dedicated agent for the entire pipeline and configure it with all the binaries (Kubectl & Helm) that you need, to interact with Kubernetes Clusters. You should also import your kubeconfig file to this remote agent so that it can talk to the cluster. In short, all the magic is going to happen in this machine that is pre-configured to talk to your Kubernetes Cluster.

Next, we create a build plan in Bamboo which is synonymous with the term continuous integration. Then, a deployment project which takes care of continuous delivery.

Below is a high level block diagram of the CI/CD pipeline that we are going to set up.

A CI/CD pipeline to deploy containerized applications on Kubernetes using Bamboo — Overview

Part 2 of this article will walk you through step by step procedure to create a Bamboo build plan and deployment project to build & deploy a sample Asp.Net core application to Kubernetes.

Once your application goes live, how do you keep track of all the releases? Don’t you think it’s important to monitor your Kubernetes cluster? What about intrusion prevention? What if the cluster runs out of resources? How important is cluster security? All these questions will be answered in Part 3 of this article!

--

--