Jenkins X Labs

Jenkins X Labs February update

Jenkins X has entered it’s third year and as always we are looking for big ways things can be improved. Briefly reflecting on the last two years:

  • first was about initial adoption and finding out what developers were both looking for and needed when moving to Kubernetes. We started off using a Static Jenkins server for example to orchestrate builds and other open source projects that folks would be familiar with, to aid their journey to the cloud. We quickly realised that the Jenkins X community wanted to leverage more of their cloud capabilities and so we began to swap in cloud native implementations like Tekton and Prow, as well as better integration with managed cloud services like storage, dns, IAM etc.

  • second year was about improving that developer experience and making the architectural approaches we settled on a reliable experience. This has been a lot of work and there’s still a lot more to do, infact we know this will always be an ongoing effort. Some of the recent highlights of this effort can start to be seen with more details on this blog

  • now that we have started our third year we look at how we can effectively innovate in Jenkins X, grow collaborations with other open source projects and communities and of course build up the Jenkins X community itself. All the time we need to do this with the second years efforts in mind and not lose sight that we need to evolve as a mature project that people and teams can rely on.

We’ve started by introducing the idea of an enhancement process. The aim here is to raise ideas and larger problems that folks would like to collaborate on earlier than when a Pull Request is created. Sometimes issues are a bit low level and for bigger efforts we’d like to raise the profile, potentially discuss in office hours, getting as much early feedback as possible and hope to attract folks looking to be involved. This is aimed to be a lightweight process and be used to help get things right earlier. It is not meant to stifle progress, rather enhance it. Not all changes to Jenkins X should have an enhancement proposal, we still want to attract contributions but for larger efforts this will hopefully help.

Enhancement proposals are currently raised as a pull request to this repository Jenkins X creates a lot of GitHub notifications with all the releases and bot updates but this repo would be useful to ‘watch’ and see new proposals + discussions as they happen. Please if you have any views we’d absolutely love to hear them and every comment will be treated respectfully and in a safe healthy environment. We’ve already had GREAT input from polothy, salaboy and a bunch of core maintainers as well as PMs and engineering managers. We’d like to encourage involvement from any background that would like to help Jenkins X and be part of something that we can all be proud of.

The second part of this blog wants to take your attention to an enhancement proposal which is currently up for review This aims to tackle the challenge outlined above, of how do we enable rapid innovation, increase contributions and collaborations while keeping Jenkins X stable. Please take a look and feed any comments on, it is high level for a reason as we are still learning the right balance.

TL;DR of the above proposal suggests we build out an incubation hub of sorts where we can create new features which we don’t know how they might be received, gather feedback and other metrics to decide whether the feature is good to mature into the main Jenkins X org. The idea is to use an approach where features are ready for alpha, beta and GA.

We have already started piloting this effort in the Jenkins X Labs GitHub org where a small team has been proving out a feature to handle Jenkins X deploying to different clusters including different cloud providers. The feature is known as multi cluster but we will be documenting, demoing and asking people to help be involved either in development or trials.

We will be putting together a roadmap, starting off small but would love suggestions It is important to stress that work which happens in the Jenkins X Labs GitHub organisation may or may not mature into the Jenkins X org. We will work hard to prove out any ideas and and gather as much feedback as we can and improve. We would be looking to make it clear users opt into using alpha or beta features so we maintain a solid base.

We are super excited by this proposal, the rate of innovation it will unlock and the level of OSS collaboration possible all the time having another focus on stability and reliability.