Commit Graph

5 Commits

Author SHA1 Message Date
Mick Semb Wever 209ef2b6c4
Jenkins improvements: fail-fast, disk-usage, helm overrides and safety
* Add ephemeral-storage requests and limits to agents, and log peak disk usage
Agents were evicted at the node level due to lack of disk space. Each pod needs minimum 100GiB, and each template now budgets 80Gi of the ~89Gi that a 100GiB node allocates, with docker's own volume carries a 60Gi sizeLimit.  Exceeding either evicts the pod, so logging has been added in each test split before and after the run. All script blocks in Jenkinsfile are now labeled for improved readability in test runs.

* `.build/run-ci` must not silently drop a site's helm values customisations
Long-lived instances like pre-ci.cassandra.apache.org carry values in addition to the jenkins-deployment.yaml, and any `helm upgrade -f jenkins-deployment.yaml` (or `.build/run-ci`) would drop them.  Allow these values to be kept in a separate file, passed in with `--values-override`. Before upgrading helm values, we now compare the deployed values against what is about to be applied and require confirmation for anything only the site holds.  This catches added keys and dropped list items (but it cannot catch every change).
Also keep the jenkins-home pvc claim on uninstall, so --only-tear-down no longer destroys build history. Add jenkins-test.sh and a gha workflow for test validating changes under .jenkins/

 patch by Mick Semb Wever; reviewed by Dmitry Konstantinov for CASSANDRA-21523
2026-07-28 21:58:28 +02:00
mck b78f654fff
Preload dependencies in build docker images to reduce downloading at build/test/ci runtime
Additional fixes
 - upgrade ubuntu-test.docker to ubuntu 22.04 (and some small fixes brought forward from CASSANDRA-20997)
 - (.jenkins/k8s) changes gke's small node pool from n2-highcpu-8 to e2-highcpu-8 (gke's own pod resources reqs increased)
 - (.jenkins/k8s) limit one agent pod per node (when jenkins is deployed in k8s using our helm)
 - (.jenkins/k8s) add the cassandra-6.0 job
 - pass maven.repo.local sys prop, if set, into accord's gradle build
 - check and fail on maven dependencies checksums when downloading
 - when on-the-fly building docker images add `--load` (podman compatbility)
 - newer python versions can use venv instead of virtualenv
 - rename ubuntu2004_test.docker to ubuntu-test.docker (in 5.0)
 - (Jenkinsfile) fix retries (which was no longer working when agents/nodes died, since CASSANDRA-20833)
 - (Jenkinsfile) @NonCPS where (now) needed
 - (Jenkinsfile) fix default value for the branch parameter (after a new helm deploy)
 - (.build/run-ci) fix missing parameters on jobs also at helm deploy time
 - (.build/run-ci) .git suffixes on repo urls are optional

 patch by Mick Semb Wever; reviewed by Dmitry Konstantinov, Stefan Miklosovic for CASSANDRA-21403
2026-06-05 21:01:30 +02:00
Mick Semb Wever b3ee9713f8
Implement microbench test target type
Add microbench-test target for quick test run
 Unify declaration and add assertions on target types
 Fix dirname usages for macos
 Parameter for docker_timeout
 Add more jmh class ignores (that are broken)
 Add disableResume() and better host debug to Jenkinsfile

 patch by Mick Semb Wever; reviewed by Dmitry Konstantinov for CASSANDRA-18873
2026-01-27 11:31:17 +01:00
Mick Semb Wever 965eb1d223
ninjafix – docker buildx build instructions in .jenkins/k8s/agent-build.docker 2025-11-12 16:36:09 +01:00
Richa Mishra 05f0e513e8
K8s immutable provisioning of ci-cassandra.apache.org jenkins instances
.build/run-ci is a a python script used to create and interact with k8s provisioned ci-cassandra.apache.org clones
See .build/run-ci.d/README.md for docs on usage.

.jenkins/k8s/ contains the k8s jenkins helm chart, JSaC configuration, and docker image for provisioning.

.build/run-ci.d/  contains python requirements and tests for .build/run-ci

 patch by Richa Mishra, Nishant Barola, Aleksandr Volochnev, Mick Semb Wever; reviewed by Richa Mishra, Nishant Barola, Aleksandr Volochnev, Brandon Hsieh, Mick Semb Wever, Brandon Williams for CASSANDRA-18145

Co-authored-by: Richa Mishra <richa.mishra@infracloud.io>
Co-authored-by: Nishant Barola <nishant.barola@infracloud.io>
Co-authored-by: Aleksandr Volochnev <a.volochnev@gmail.com>
Co-authored-by: Mick Semb Wever <mck@apache.org>
2025-08-27 23:33:16 +02:00