fleet-ops: require claytonia's terraform gate - #73
Merged
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.
Closes #28.
claytonia/terraform/applies on merge tomainagainst the live Proxmox guests, but the repo's ruleset required onlyshellcheck / shellcheckanddocs-check / docs-check— so a red plan, or a plan showing an unintended destroy, did not block the merge that would apply it. This addsgate, bringing it to parity with the other three enforced-surface repos.Two of this issue's findings had gone stale in the eighteen days since it was filed, and the fix differs from what it proposed as a result.
kalmia already gates correctly. The issue recorded it as having no
required_status_checksrule at all. It now requiresgate,ansible-lint,shellcheck / shellcheckanddocs-check / docs-check;droseraandsolidagolikewise requiregate. claytonia was the only enforced surface still unguarded.Requiring
terraform / validateandterraform / planas proposed would have deadlocked the repo. Those jobs sat behind anon:-levelpaths:filter, so on any PR touching no terraform they never ran — and a required check that never runs is held "Expected" forever, blocking every non-terraform PR. The issue predates that trap being understood. claytonia#69 instead ported the pattern the other three already use: thepaths:filter moves offpull_requestinto achangesdetector job, and an always-ongatefans in overchanges/validate/planunderalways(), failing onfailureorcancelledwhile treating a skipped job as passing. One context, always reports, no deadlock.The context is
gate— bare, notterraform / gate— captured from claytonia#69's live check-runs, matching how the other three are mapped.On the trade-off the issue asked to decide: requiring
gatecouples merge-ability for terraform PRs to LAN-runner availability, becauseplanruns on LXC 115. Accepted deliberately, and already the fleet norm — for a surface that applies on merge, a plan that cannot run is not a reason to merge anyway. Non-terraform PRs are unaffected, sinceplanskips and the gate passes.On where to encode it: per-repo in this file, not taught to
fleet-apply.sh. The baserepo-ruleset.jsonstays check-agnostic by design, and this file is exactly the per-repo mapping mechanism — a terraform-aware special case in the script would duplicate it.Verified end to end on claytonia#69 before mapping:
changes,validateandplanall ran green withplanreaching the LAN runner,applycorrectly skipped on the PR,gategreen. The plan output wasNo changes. Your infrastructure matches the configuration., and the post-merge apply completed successfully — so the restructure did not disturb the terraform path.Noted but out of scope: claytonia's
queue-corecheck runs green on every PR and is not required. Requiring it is a separate decision from this issue.