Custom Jenkins distribution service improvements

Project goal: Improve the out of the box solution for packaging Jenkins distributions as WAR files or Docker images

Skills to study/improve: Java, Web Development, Docker

Details

Many users will download Jenkins and spend a great deal of time customizing their environment to be exactly what they need. Often this is done through trial and error. It would not only be nice to create common configurations to share with team members, but with the wider community.

Last summer, a project (custom-distribution-service) created the base application with a UI and support for uploading configurations. There were a lot of suggestions over the course of the summer, to the point where it would make sense to continue the work over another summer. The project is currently hibernating though would be useful after issues are addressed.

The service was temporarily offered as a website at https://customize.jenkins.io. More importantly, it should support self-hosting by Jenkins users who want to run it internally. People can select the following configuration items:

  • Jenkins core version

  • plugins

  • common configuration, user/password, update-center site e.g.

  • plugin based configuration, Kubernetes, Sonarqube plugin config e.g.

  • backup/restore solution

  • data storage solution

  • multi-form package, jenkins.war or docker image

  • configuration should be scenario-based

  • other things

The entire service exists, but could be greatly expanded on in terms of useability. While hosting would be an interesting challenge, initial focus should be on local execution. The most important thing to focus on is the backend. This needs to be documented, and available over a generic REST api.

There are several extra suggestions defined in the Issues of the main project that can be expanded as the student chooses. There are UI enhancements like better notifications of selected plugins, and backend improvements such as REST consistency.

Quickstart

The custom-distribution-service is where the project currently lives.

The ci.jenkins.io-runner is a good starting point. Clone the repository and follow the quickstart guide provided in the readme.

The React Getting Started guide is a good way to get familiar with the front end framework used in the project.

Newbie-friendly Issues

Open issues for the project are found here: custom-distribution-service/issues

References

Below you can find a list of existing plugins and libraries along with the repository of the project:

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2021 project ideas