Installing Jenkins X Using GitOps Principles
Explore the process of installing Jenkins X by applying GitOps principles. Understand how to define Jenkins X configurations as code, customize the jx-requirements.yml file, and use the boot process to deploy and manage your Kubernetes cluster setup efficiently. This lesson enables you to leverage Git-based configuration management for a repeatable and secure Jenkins X installation.
We'll cover the following...
- Taking a look at the GitHub repository
- Defining variables
- Cloning the repository
- Exploring and modifying the jx-requirements.yml file
- The cluster section
- The gitops value
- The environments section
- The ingress section
- The kaniko value
- The secretStorage value
- The storage section
- The versionsStream section
- The webhook value
- Alternatives for Prow
- Adding additional information for EKS
- Did we miss any values?
- Installing Jenkins X with jx boot
How can we install Jenkins X in a better way than what we’re used to? Jenkins X configuration should be defined as code and reside in a Git repository, and that’s what the community created for us. It maintains a GitHub repository that contains the structure of the definition of the Jenkins X platform, together with a pipeline that will install it, as well as a requirements file that we can use to tweak it to our specific needs.
Taking a look at the GitHub repository
Let’s take a look at the repository.
We’ll explore the files in it a bit later. Or, to be more precise, we’ll explore those that you are supposed to customize.
Defining variables
Next, we’ll define a variable CLUSTER_NAME that will, as you can guess, hold the name of the cluster we created a short while ago.
⚠️ In the commands that follow, please replace the first occurrence of
[...]with the name of the cluster and the second with your GitHub user.
Cloning the repository
Now that we forked the Boot repo and we know what our cluster is called, we can clone the repository with a proper name that will reflect the naming scheme of our soon-to-be-installed Jenkins X.
Exploring and modifying the jx-requirements.yml file
The key file that contains (almost) all the parameters that can be used to customize the setup is jx-requirements.yml. Let’s take a look at it.
The output is as follows.
As you can see, that file contains values in a format that resembles requirements.yaml file used with Helm charts. It is split into a few sections.
🔍 The format of the
jx-requirements.ymlfile might have changed since I wrote this section, so your output might be different. Nevertheless, what I’m describing should give you a good enough grip over the values you can tweak, and you should be able to extend that knowledge to those not represented here.
The cluster section
First, there is a group of values that define our ...