What is Jenkins X installing Jenkins X CLI

What is Jenkins X? | installing Jenkins X CLI

  • Post comments:8 Comments
  • Reading time:7 mins read

Introduction to Jenkins X

To understand the intricacies and inner workings of Jenkins X, we first need to understand Kubernetes. However, you do not need to understand Kubernetes to use Jenkins X. That is one of the main contributions of the project.

Jenkins X allows us to harness the power of Kubernetes without spending an eternity learning the ever-growing list of the things Kubernetes does.

Jenkins X helps us by simplifying complex processes into concepts that can be adopted quickly, and without spending months trying to figure out ” the right way to do stuff.” It helps by removing and simplifying some of the problems caused by the overall complexity of Kubernetes and its ecosystem.

If you are in fact a Kubernetes ninja, you will appreciate all the effort put into Jenkins X. If you’re not, you will be able to jump right in and harness the power of Kubernetes without ripping your hair out from frustration caused by the complexity of Kubernetes.

Today, most software vendors are building their next generation of software to be Kubernetes-native or, at least, to work better inside it. A whole ecosystem is emerging and treating Kubernetes as a blank canvas.

As a result, new tools are being added on a daily basis, and it is becoming evident that Kubernetes offers near-limitless possibilities. However, with that comes increased complexity. It is harder than ever to choose which tools to use.

  • How are we going to develop our applications?
  • How are we going to manage different environments?
  • How are we going to package our applications?
  • Which process are we going to apply for application lifecycles?
  • And so on and so forth.

Assembling a Kubernetes cluster with all the tools and processes takes time and learning how to use what we assembled feels like a never-ending story. Jenkins X aims to remove those and other obstacles.

Jenkins X is opinionated. It defines many aspects of the software development lifecycle, and it makes decisions for us. It tells us what to do and how.

It is like a tour guide on your vacation that shows you where to go, what to look at, when to take a photo, and when it’s time to take a break. At the same time, it is flexible and allows power users to tweak it to fit their own needs.

The real power behind Jenkins X

The real power behind Jenkins X is:

  • The process,
  • The selection of tools,
  • And the fact that everything is wrapped up in one cohesive unit that is easy to learn and use.

We, the people working in the software industry, tend to reinvent the wheel all the time. We spend countless hours trying to figure out how to develop our applications faster and how to have a local environment that is as close to production as possible.

We dedicate time to searching for tools that will allow us to package and deploy our applications more efficiently. We design the steps that form a continuous delivery pipeline.

We write scripts that automate repetitive tasks. And yet, we cannot escape the feeling that we are likely reinventing things that were already done by others.

If we are about to start working on a new project, Jenkins X will create the structure and the required files. If we need a Kubernetes cluster with all the tools selected, installed, and configured, Jenkins X will do that.

If we need to create Git repositories, set web hooks, and create continuous delivery pipelines, all we need to do is execute a single jx command. The list of what Jenkins X does is vast, and it grows every day.

The critical thing to note is that you need to clear your mind from any Jenkins experience you might already have. Sure, Jenkins is there, but it is only a part of the package. Jenkins X is very different from the “traditional Jenkins”.

The differences are so massive that the only way for you to embrace it is to forget what you know about Jenkins and start from scratch.

Pre-requisite tools for Jenkins X

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.

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.

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.

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

Azure CLI (for AKS): Similarly, if you prefer Azure, you likely have Azure CLI on your laptop.

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.

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

Note: 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.

Installing Jenkins X CLI

macOS

If you are a macOS user, please install jx using brew.

brew tap jenkins-x/jx 
brew install jx

Linux

If you are a Linux user, the instructions are as follows.

mkdir -p ~/.jx/bin 
curl -L https://github.com/jenkins-x/jx/releases/download/v1.3.634/jx-linux-amd64.tar.gz \ | tar xzv -C ~/.jx/bin 
export PATH=$PATH:~/.jx/bin 
echo 'export PATH=$PATH:~/.jx/bin' \ 
>> ~/.bashrc

Windows

Finally, Windows users can install the CLI using Chocolatey.

choco install jenkins-x

Now we are ready to create a cluster and install Jenkins X.

Also Read:

VMware in Google Cloud | Guide to Run VMware Based Applications

AWS vs GCP Which is Better in 2021

This Post Has 8 Comments

Leave a Reply