Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Most of the main plugins are configurable (here are some examples) and the rest you can configure via groovy. If there's good documentation, writing the groovy scripts is fairly easy too
Repo: https://github.com/tektoncd/pipeline
So, yep done all this and completely agree. I set this all up with Terraform, Docker, and JCasC. However with our 80 person org and around 30 active repos (all with multibranch pipelines) ,200-300 builds a day; I'm seeing reboot times in the 15-20 minutes range (which hurts.) Also, if you don't drain the Jenkins instance prior to replacement then the currently running jobs fail; causing more issues (need to automate this anyone got a script?). Other complaints, plugins break ALL THE TIME so we really have to do some QA before sending a new Jenkins container out to prod. The S3 Artifact plugin doesn't do multipart uploads which limits the maximum size and performance on stash/archiveArtifact (patch here https://github.com/jenkinsci/artifact-manager-s3-plugin/pull/141; could still use a patch to stream the zip/tarball creation). The downstream build feature is really powerful but the blue ocean ui is iffy on it (sometimes it shows downstream builds; sometimes not). The ec2 plugin works but I've never gotten the spot-fleet plugin to work properly (specifically interested in being able to choose alternately sized instances based on spot price and availability). If you use spot-instances with the ec2 plugin; there's no clear way to retry the build (would love a tutorial or script that accomplishes the steps needed on this. i.e. trapping the signal coming from the OS and turning it into an exception in the pipeline). Overall, it's nice once you get here; but it's a metric ton of work... and there's still a bunch of problems. Really wish there was something easier to maintain and grow with a cloud first approach (i.e. rolling upgrades, object store support, fleet support).
Have a look at https://github.com/sheehan/job-dsl-gradle-example it's a nice example that even allows you to test your job configuration.