Installing Prerequisites

This lesson lists the prerequisite tools for Jenkins X that should be installed in order for you to follow along with this course.

List of tools to install

Before we jump into Jenkins X, we’ll need a few tools that will be used throughout this course.

Git

You likely already have Git. I would not even mention it, if not for GitBash. If you are using Windows, please make sure that you have GitBash (part of the Git setup) and run all the commands from it.

svg viewer

Other shells might work as well. Still, I tested all the commands on Windows with GitBash, so that’s your safest bet. If you are a macOS or Linux user, just fire up your favorite terminal.

kubectl and Helm

Jenkins X CLI (we’ll install it soon) will do its best to install kubectl and Helm. However, the number of permutations of what we have on our laptops is close to infinite, and you’re better off installing those two yourself.

svg viewer

⚠️ At the time of this writing, December 2019, Jenkins X does not yet support Helm v3+. Please make sure that you’re using Helm CLI v2+.

We’ll need a Kubernetes cluster. I’ll assume that you already have CLIs provided by your hosting vendor. You should be able to use (almost) any Kubernetes flavor to run Jenkins X, so the choice is up to you. I won’t force you to use a particular vendor. Just as with kubectl and Helm, Jenkins X will try to install the appropriate CLI, but you might be better off installing it yourself.

AWS CLI and eksctl (for EKS)

If you’re planning on using an AWS EKS cluster, you probably already have the AWS CLI and eksctl.

svg viewer

gcloud (for GKE)

If your preference is Google GKE, I’m sure that you have gcloud.

svg viewer

Azure CLI (for AKS)

Similarly, if you prefer Azure, you likely have Azure CLI on your laptop.

svg viewer

Finally, if you prefer something else, I’m sure you know which CLI fits your situation.

jq

A few examples will use jq to filter and format JSON output. Please install it.

svg viewer

hub

Finally, we’ll perform some GitHub operations using hub. Install it if you don’t have it already.

hub

That’s it. I’m not forcing you to use anything but the tools you should have anyway.

Restriction regarding the Kubernetes cluster

There is one restriction regarding the kind of Kubernetes cluster you can use, though. You can use (almost) any Kubernetes cluster, but it needs to be publicly accessible. The main reason for that lies in GitHub triggers. Jenkins X relies heavily on GitOps principles. Most of the events will be triggered by GitHub webhooks. If your cluster cannot be accessed from GitHub, you won’t be able to trigger those events, and you will have difficulty following the examples.

Now, that might pose two significant issues. You might prefer to practice locally using Minikube or Docker Desktop. Neither of the two are accessible from outside your laptop. You might have a corporate cluster that is inaccessible from the outside world. In those cases, I suggest you use a service from AWS, GCP, Azure, or from anywhere else. Each chapter will start with the instructions to create a new cluster, and it will end with instructions on how to destroy it (if you choose to do so). That way, the costs will be kept to a bare minimum. If you sign up with one of the Cloud providers, they will give you much more credit than what you will spend on the exercises from this course. If you’re not sure which one to pick, I suggest Google Cloud Platform (GCP). At the time of this writing, their managed Kubernetes offering called Google Kubernetes Engine (GKE) is the best cluster on the market.


Now that this is out of the way, let’s install Jenkins X CLI next.