jenkins-x / jx

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
https://jenkins-x.io/
Apache License 2.0
4.58k stars 788 forks source link

add Cloud Native Jenkins workloads #2312

Closed jstrachan closed 6 years ago

jstrachan commented 6 years ago

we want to use Jenkins X as the basis of Cloud Native Jenkins - i.e. a cloud native way of automating any CI or CI+CD pipelines for any workloads.

So rather than baking in Kubernetes workloads OOTB, we'd like to make it easy for folks to setup a Team and configure the team with either Kubernetes Workloads or Release Workloads (just do CI and release libraries/jars/npm modules/binaries but don't do deployment) and allow folks to create additional workloads as extensions.

So when installing Jenkins X we should prompt for the workload kind to be used and default to Kubernetes workloads unless folks specify a CLI argument --buildpack=jenkins-x-classic etc.

As part of this work it would be great to refactor our current build packs so that they are more modular and easy to reuse. e.g. the Kubernetes workload pipelines should reuse the Release workload pipelines (for doing things like setting up git, creating a new release version, tagging git, deploying the jars/npm modules etc) - then layer on top the helm/skaffold/promote/preview stuff.

So lets refactor the build packs into 2 repos here: https://github.com/jenkins-x-buildpacks and make it easier to use a single build pack for both Prow & serverless Jenkins or static Jenkins Servers etc

jstrachan commented 6 years ago

we should roll these changes in too btw - so folks can easily enable feature branches & Previews using custom patterns: https://github.com/jenkins-x/draft-packs/pull/84

jstrachan commented 6 years ago

we may want to introduce common build steps which are reused across release,pullRequest and feature pipelines