There’s a lot of confusion about the different version of Jenkins, some of it stemming from the now-famous blog post Jenkins: Shifting Gears by Kohsuke Kawaguchi, the creator of Jenkins itself. I asked around at GitLab to learn more about the context today for Jenkins and CloudBees.

The majority of Jenkins installation are Jenkins 2, the mainstream Jenkins open source product. They ran with version 1.x for many years, before switching version to Jenkins 2.x about 3 yrs ago.

CloudBees Jenkins Enterprise (Core) is the CloudBees commercial offering, based on Jenkins 2.x - simplistically it’s their proprietary software to help organizations manage Jenkins (2) infrastructure at scale. It is designed to be deployed on Kubernetes, supporting ‘team-based’ dockerised Jenkins Masters, as well as shared/autoscaling agents, etc, so was often referred to as “cloud native” - with some justification, but wasn’t what Koshuke was referring to in his blog.

This is where it gets confusing. Jenkins X was developed as a totally separate product/project - doing things similar to GitLab AutoDevOps - so taking an app in a Git repository, through to deploying into K8s - so also referred to as Cloud Native. But again, wasn’t specifically what Koshuke was referring to. Jenkins X creates/uses its own Jenkins masters (which can be ephemeral), so distinct from any existing Jenkins estate an org may have.

Again, this approach didn’t seem to be what Koshuke was refering to as Cloud Native, as he mentioned setting up a new SIG to tackle this - interesting that doesn’t seem too much activity there, and that none of the core Jenkins X team are listed as participants.

There is some movement to integrate Jenkins X into CloudBees Core - initial focus was looking at basics authentication, audit/compliance, etc, rather than anything deeper - but it’s not clear how it will pan out in terms of the wider infrastructure. The Jenkins X team saw everything ‘as code’, hence the ability to have ephemeral Jenkins masters - but with a huge legacy app footprint that can’t generally be the case. There’s still not much indication of integration between the two.