Jenkins X: Consolidate the use of Apps / Addons

Goal: Consolidate Apps and Addons inside Jenkins X

Status: Completed



The current CLI supports apps and addons. Addons were either generic helm charts or a combination of helm chart plus some custom go code to install and integrate them with the Jenkins X platform. Apps framework which provided a more generic way of adding charts chatting to Jenkins X such that anybody could create an app without having to modify the underlying jx code. But now left developers with confusion over what an APP is. Developers think the apps is they are developing.


The main aim of the project would be to consolidate Apps and Addons inside Jenkins X to avoid confusion. Everything as an App and deprecate the use of the word Addon.

App includes system charts like knative, gloo, nginx-controller, flagger, prometheus, external-dns, cert-manager.

Implement jx add app and jx delete app to update the App.

Phase 1

I’ll add new commands to jx by transfer the add addon command to the add app.

The following commands will be supported:

  • jx add app kubeless

  • jx add app anchore

  • jx add app owasp-zap

  • jx add app gitea

  • jx add app environment

  • jx add app flagger

  • jx add app gloo

  • jx add app ingress

  • jx add app istio

  • jx add app ambassador

  • jx add app pipeline-events

  • jx add app prometheus

  • jx add app prow

Phase 2

I’ll add new commands to jx by transfer the delete addon command to the delete app.

The following commands will be supported:

  • jx delete app environment

  • jx delete app flagger

  • jx delete app gitea

  • jx delete app ingress

  • jx delete app istio

Phase 3

  • Resolve the issues and bugs in development

  • Write users documentation

  • Write developer documentation

  • Submit my work to the mentor and ask for feedback then resolve the feedback

What work has been done

The following is migrated from Addons to Apps:

✅ - Can use the new command

❌ - Cannot use the new command

Addons Status New Command Repository Notes


jx add app jx-app-kubeless



jx add app jx-app-gloo



jx add app jx-app-flagger



jx add app jx-app-ingress



jx add app jx-app-prometheus



jx add app jx-app-anchore

Migrated by Jenkins X team before GSoC


jx add app jx-app-ambassador

Migrated by Jenkins X team before GSoC


jx add app jx-app-gitea

Migrated by Jenkins X team before GSoC


jx add app jx-app-istio

Not pushed to


jx add app jx-app-owasp-zap

Not pushed to













The jx delete app command is implemented by other contributors during GSoC, so I cannot impletement it.

The following is my PR to improve Jenkins X:

Name URL

Support add an Apps from git repository

Deprecate Addons

Fix install Apps

Improve compatibility with Windows

Improve get OS name

Fix ignore load jx-requirements.yml validation errors


This is my first time to participate in GSoC. I have never been involved in the research and development of cloud native project, but I am full of interest in it. Jenkins X integrates Tekton, Knave, Lighthouse, Skaffold and Helm, it’s very challenging for me to learn Jenkins X. my focus is on Apps and Addons framework. Jenkins X uses Helm2 to manage all Apps. The interesting feature is that they don’t rely on tiller, which causes some obstacles. Through in-depth study and research, the existing problems are found and solutions are proposed.

Final Demo

In this presentation, I introduce the background of the project, as well as the solutions, and demonstrate the Apps I made.


Google Summer of Code is great opportunity for me, Jenkins X has a great team of mentors, I learned a lot about Kubernetes, Helm and how jx works, big application like jx are a big challenge for me, I am very grateful to Kara de la Marck, James Strachan and James Rawlings of mentors, Jenkins community, Jenkins X community and GSoC contributor guide me, I am looking forward to jx getting better and better, I also expect more and more people to contribute jx.

Office Hours

Office hours are scheduled every Monday at 14:00 UTC on the CDF #jenkins-x-gsoc channel. Meeting notes are available here to read.