Understanding Jenkins X Version Stream

This lesson explains the Jenkins X version stream.

The jenkins-x-versions repository#

By now, you should know that Jenkins X packages a lot of useful applications, tools, and wrappers. It has command line packages installed on your laptop, and quite a few applications were deployed in your cluster. Many third-party Helm charts were used during the installation. The jx CLI converted them into “pure” Kubernetes YAML files before sending them to Kube API.

Given that new Jenkins X releases are made all the time, things would get messy very quickly if we would be using “latest” releases of all those charts and packages. It should come as no surprise that Jenkins X needs a place to store the information about stable versions of all packages and charts. That place is the jenkins-x/jenkins-x-versions repository.

I will not waste space by explaining how jenkins-x-versions work. If you’re curious, please visit the Version Stream page.

Let’s take a quick look at the jenkins-x/jenkins-x-versions repository.

For now, we are only interested in the current version of the Jenkins X platform. Since it is installed through yet another Helm chart (without Tiller), you can probably guess where we could find the version of the latest release.

Please open the charts/jenkins-x directory and open the jenkins-x-platform.yml file.

One of the versions of the platform
One of the versions of the platform

The value of the version field is significant. It defines a combination of quite a few applications running inside the cluster (e.g., ChartMuseum, Docker Registry, garbage collectors, etc.). So far, you installed only the latest Jenkins X. While using the newest version is not a bad idea, not specifying the version is a bad thing to do. That’s not a good idea with any application, so it shouldn’t be a good idea with Jenkins X either. The only reason why we have used the latest (without explicit version) so far is to simplify exercises and to avoid making a new release of this book every day. But, when you do start using Jenkins X in production, you should always be specific. Even if you do choose to run the latest version, specify it explicitly through the --version argument available both in jx create cluster and jx install commands. That way, you will be in full control over which platform you’re running. Now that you know where to find the information, there is no excuse for being vague.

Installing an older version of the cluster#

Today we’ll do something different. Since we want to practice all sorts of upgrades, we are going to break our habit of creating a new cluster based on the latest release and intentionally install an older one. That will allow us to experience upgrades instead of trying to imagine what they would look like. That, of course, does not apply to you if you’re reusing the same cluster throughout all the chapters since that means that you are certainly running an older version of Jenkins X platform. If that’s the case, feel free to jump straight into the “Validating Upgrades And Backing Up The Cluster” lesson.

Assuming that you still have the jenkins-x-platform.yml file open in your browser, please click the History button and select one of the older commits. Just make sure that commit is not marked as failed (icon with a red X). Next, scroll to the jenkins-x-platform.yml file (unless its the only one in that commit) and copy the version value.

We’ll store the version in a variable so that we can reference it easier later on.

⚠️ Please replace [...] with the version you copied before executing the command that follows.

Next comes the familiar part where we create a new cluster (unless you are reusing the one from the previous chapter). But, as already mentioned, this time, we will not use the latest platform. We’ll add --version argument.

⚠️ Make sure that you add --version $PLATFORM_VERSION to the arguments when creating the cluster or installing Jenkins X. The gists specified in the next section are the same as before, and you will need to add the --version argument to jx create cluster or jx install commands. Otherwise, you will no be able to see the outcome of upgrading the cluster.


The next lesson contains instructions for creating the cluster.

Getting Started with Jenkin X Upgrades
Creating a Kubernetes Cluster with Jenkins X and Importing App
Mark as Completed
Report an Issue