kubesphere / kubesphere/ks-devops
Add Pipeline update strategy support
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 164
- Forks
- 140
- PR merge metrics
- No merged PRs in 30d
Description
What's it about?
Add an update strategy for Pipeline. For example, add three strategies:
- overwrite
- Convert the Pipeline resource into a Jenkins job, then overwrite it every time.
- Consider back-compatible, this should be the default one.
- patch
- Update the Jenkins job configuration partly.
- It's should be possible, but we need to do some research.
- none
- Do not update Jenkins job from the KubeSphere side.
- This looks like a switch that totally up to the users.
Both the backend and frontend need to make changes.
Backend
Add a field into the spec of the pipeline resource struct. Or add it to the annotation.
Do not update the Jenkins job if the strategy is none.
Frontend
Don't allow users to modify Pipeline if the update strategy is none. Given a reasonable tip for users.
What's the reason why we need it?
Jenkins has over 1.5k plugins. Thanks to that, users can have a lot of choices to meet their requirements.
But some of those plugins are not well maintained. Even worse, there is no active maintainer for some plugins. We cannot predict if users will install some additional plugins. So it's impossible to make sure there's no exception when some additional plugins exist.
Secondly, KubeSphere only offers part features of Jenkins instead of all. If users modify Pipelines across from the Jenkins and KubeSphere UI, it might lead to chaos. Because KubeSphere will overwrite the Jenkins jobs once users modify the Pipeline via KubeSphere or kubectl. It means some unexpected options of Jenkins job might be lost.
Please leave your comments below if there's anyone who agrees with me. Or just give me a thumb up.
Area Suggestion
/area devops
/kind feature-request
/kind proposal
/priority medium
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by locating the Pipeline resource definition and the backend and frontend update paths; determine how an overwrite, patch, or none strategy can be represented and validated. Done means the backend respects none and the frontend prevents edits with a user-facing explanation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- backend, devops, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100