Skip to content

CASSANDRA-21523 jenkins shouldn't retry on fail-fast exceptions - #4939

Closed
michaelsembwever wants to merge 2 commits into
apache:cassandra-5.0from
thelastpickle:mck/jenkins-fail-fast-dont-retry/5.0
Closed

CASSANDRA-21523 jenkins shouldn't retry on fail-fast exceptions#4939
michaelsembwever wants to merge 2 commits into
apache:cassandra-5.0from
thelastpickle:mck/jenkins-fail-fast-dont-retry/5.0

Conversation

@michaelsembwever

@michaelsembwever michaelsembwever commented Jul 15, 2026

Copy link
Copy Markdown
Member

https://issues.apache.org/jira/browse/CASSANDRA-21523

To jenkins k8s add ephemeral-storage limits to agents and log peak disk usage

Agents were being evicted at the node level due to missing ephemeral-storage requests/limits and no sizeLimit on the /var/lib/docker emptyDir.

Also extract inline sh blocks to functions for readability

@michaelsembwever michaelsembwever changed the title jenkins shouldn't retry on fail-fast exceptions CASSANDRA-21523 jenkins shouldn't retry on fail-fast exceptions Jul 15, 2026
Comment thread .build/run-ci
@michaelsembwever
michaelsembwever force-pushed the mck/jenkins-fail-fast-dont-retry/5.0 branch 2 times, most recently from e0a811c to d65252c Compare July 26, 2026 22:11
To jenkins k8s add ephemeral-storage requests and limits to agents, and log peak disk usage

Agents were evicted at the node level, and the node's message named the cause: neither container
declared an ephemeral-storage request, which leaves the pod BestEffort for storage, invisible to
the scheduler and first out when the node fills.  /var/lib/docker was an unbounded emptyDir besides.

Kubelet charges the pod for every emptyDir, the workspace included, together with the containers'
writable layers and logs, all against the containers' limits summed.  Each template now budgets
80Gi of the ~89Gi that a 100GiB node allocates, as ci-cassandra's agent nodes are and pre-ci's now
are, and docker's own volume carries a 60Gi sizeLimit.  Exceeding either evicts the pod naming what
it was, which the node's own threshold does not.

That volume moves into the pod template's raw `yaml:` under a name of its own, the only way it can
keep a sizeLimit: the plugin's EmptyDirVolume has no such field, and a volume declared under
`volumes:` is generated as `volume-N`, whose generated copy wins any merge with a raw entry of that
name.  A deployed agent's pod spec showed the sizeLimit being dropped exactly so.

Also extract inline sh blocks to functions for readability
@michaelsembwever
michaelsembwever force-pushed the mck/jenkins-fail-fast-dont-retry/5.0 branch from d65252c to 2196038 Compare July 27, 2026 22:10
 run-ci must not silently drop a site's helm values customisations

  Long-lived instances like pre-ci.cassandra.apache.org carry values absent from
  jenkins-deployment.yaml, and any `helm upgrade -f jenkins-deployment.yaml` drops
  them.  Keep them in a separate file and pass `--values-override`; helm merges it
  over the repo's.

  Before upgrading, 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; it cannot tell a customisation from a key the
  repo has since removed, hence a prompt, and it is blind to a key present in both
  with a locally edited value, an agent.podTemplates entry for instance.  Aborts
  when not on a tty.

  Also keep the jenkins-home claim on uninstall, so --only-tear-down no longer
  destroys build history; jenkins-test.sh validates .jenkins/ without a cluster,
  including the yaml embedded in the pod templates and JCasC scripts that the
  chart never parses; a workflow runs it and the run-ci tests on changes to either.

  The requests timeouts and unused wait_for_jenkins_http argument are drive-bys to
  get run-ci's own lint command clean, so the workflow can enforce it.
@michaelsembwever
michaelsembwever force-pushed the mck/jenkins-fail-fast-dont-retry/5.0 branch from 2196038 to b6180d8 Compare July 28, 2026 13:04
@michaelsembwever

Copy link
Copy Markdown
Member Author

committed 209ef2b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants