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
.
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
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
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
The following is migrated from Addons to Apps:
✅ - Can use the new command
❌ - Cannot use the new command
Addons | Status | New Command | Repository | Notes |
---|---|---|---|---|
Kubeless |
✅ |
jx add app jx-app-kubeless |
N/A |
|
Gloo |
✅ |
jx add app jx-app-gloo |
N/A |
|
Flagger |
✅ |
jx add app jx-app-flagger |
N/A |
|
Ingress |
✅ |
jx add app jx-app-ingress |
N/A |
|
prometheus |
✅ |
jx add app jx-app-prometheus |
N/ |
|
Anchore |
✅ |
jx add app jx-app-anchore |
Migrated by Jenkins X team before GSoC |
|
Ambassador |
✅ |
jx add app jx-app-ambassador |
Migrated by Jenkins X team before GSoC |
|
Gitea |
✅ |
jx add app jx-app-gitea |
Migrated by Jenkins X team before GSoC |
|
Istio |
❌ |
jx add app jx-app-istio |
Not pushed to chartmuseum.jenkins-x.io |
|
OWASP-ZAP |
❌ |
jx add app jx-app-owasp-zap |
Not pushed to chartmuseum.jenkins-x.io |
|
environment |
❌ |
N/A |
N/A |
Deprecated |
pipeline-events |
❌ |
N/A |
N/A |
Deprecated |
Prow |
❌ |
N/A |
N/A |
Deprecated |
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 |
https://github.com/jenkins-x/jx/pull/7440 https://github.com/jenkins-x/jx/pull/7514 |
Fix install Apps |
https://github.com/jenkins-x/jx/pull/7509 https://github.com/jenkins-x/jx/pull/7530 https://github.com/jenkins-x/jx/pull/7472 https://github.com/jenkins-x/jx/pull/7441 |
Improve compatibility with Windows |
https://github.com/jenkins-x/jx/pull/7158 https://github.com/jenkins-x/jx/pull/7096 |
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.
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 are scheduled every Monday at 14:00 UTC on the CDF #jenkins-x-gsoc channel. Meeting notes are available here to read.