ci: retry the k3d cluster creation on a transient install failure - #14960
Open
asaf-sw wants to merge 1 commit into
Open
ci: retry the k3d cluster creation on a transient install failure#14960asaf-sw wants to merge 1 commit into
asaf-sw wants to merge 1 commit into
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Same class as #14952, different install site.
AbsaOSS/k3d-actiondownloads the k3d binary from GitHub with no retry of its own, so a transient upstream 503 failssystem_test_hybridat a setup step.Observed on run 31639041988, during the same 503 wave that motivated #14952:
Notably, that run had already survived the Foundry outage thanks to #14952: the Anvil install failed four times and succeeded on the fifth attempt, and then the job died here instead.
Change
Attempt the step twice.
continue-on-erroris what makes auses:step retriable, and unlike the composite action in #14952 it is available here, because this is a workflow step rather than a step inside a composite action.Between attempts, a cleanup step discards a partial cluster. The observed failure is the binary download, which leaves no cluster behind, but a first attempt that got as far as creating one would otherwise make the retry fail on an existing cluster. It is guarded by
command -v k3d, since a failed download means no k3d binary to call. It also waits 60 seconds, so the retry is not fired into the same outage.The cluster name is passed through
env:rather than interpolated into therun:block, matching the fix Semgrep asked for on #14952.Scope
One retry, not five. Duplicating the
with:block is the cost of retrying auses:step, so this trades a second attempt for readability, and a sustained multi-minute outage will still fail the job. That is a deliberate limit rather than an oversight: the alternative is reimplementing the action's install in shell, which is a bigger change with more ways to break the 14 workflows that depend on this job.Verification
The workflow parses, and the three k3d steps are in the intended order with
continue-on-errorset only on the first:This one cannot be proven locally, since the failure it handles is an upstream outage. The real evidence would be a future 503 that costs a retry instead of a job.
🤖 Generated with Claude Code