🤖 Generated by the Agentic Engineer
Evidence
🔐 Validate EKS Authorization fails on the pull_request event for any PR that modifies a
HelmRelease, reporting unresolved Flux substitution in authorization resource for ~26 HelmReleases
across the platform — regardless of which one the PR touched.
Measured across the 12 most recent ci.yaml runs (2026-08-16):
| Branch |
HelmRelease files changed |
EKS-auth job |
codex/fix-default-deny-schema (#3170) |
0 |
✅ success (×3) |
claude/homepage-groups (#3173) |
0 |
✅ success |
claude/crossview-config-reload (#3171) |
1 |
❌ failure |
renovate/docker.io-actualbudget-actual |
image bump in a HelmRelease |
❌ failure (×4) |
The correlation is exact and has no counterexample in the window: zero HelmRelease changes → pass;
any HelmRelease change → fail. merge_group runs pass (pr-2723, pr-3170), and neither of those
carried a HelmRelease change either, so no run has yet shown this check passing over a changed
HelmRelease on any event.
On #3171 the diff is a single annotation added to one HelmRelease's postRenderer patch. Crossview
is not among the 26 resources reported unresolved — the failures are all unrelated HelmReleases
(dex, cilium, reloader, cert-manager, …), so the PR's own content is not what the validator is
objecting to.
Impact
This blocks a whole class of change from ever going green on a PR:
CI - Required Checks aggregates it, so affected PRs sit BLOCKED and cannot enqueue.
Suspected cause
The job runs the validator identically on pull_request and merge_group with no Flux substitution
variables available, so ${domain}-style references in HelmReleases cannot resolve. There is already
precedent in this repo for handling exactly that: validate-talos renders with placeholder values
standing in for env-expanded secrets so a PR event can validate without secrets.
Expected behaviour
A PR that changes a HelmRelease can pass this check, without weakening what it verifies on the
merge-group/deploy path.
Candidate fixes
- Substitute placeholders for unresolvable Flux variables on the
pull_request event, mirroring
validate-talos.
- Have the validator treat an unresolved substitution in an unchanged resource as out of scope,
so a PR is judged on its own diff.
- ❌ Do not simply drop the job from
pull_request — that removes the pre-merge signal entirely.
Acceptance criteria
- A PR touching only a HelmRelease passes the check.
- A PR that genuinely breaks the authorization surface still fails it (negative control — without
this, a fix could pass by disabling the check).
- The Renovate HelmRelease PRs above go green without manual intervention.
Evidence
🔐 Validate EKS Authorizationfails on thepull_requestevent for any PR that modifies aHelmRelease, reporting
unresolved Flux substitution in authorization resourcefor ~26 HelmReleasesacross the platform — regardless of which one the PR touched.
Measured across the 12 most recent
ci.yamlruns (2026-08-16):codex/fix-default-deny-schema(#3170)claude/homepage-groups(#3173)claude/crossview-config-reload(#3171)renovate/docker.io-actualbudget-actualThe correlation is exact and has no counterexample in the window: zero HelmRelease changes → pass;
any HelmRelease change → fail.
merge_groupruns pass (pr-2723, pr-3170), and neither of thosecarried a HelmRelease change either, so no run has yet shown this check passing over a changed
HelmRelease on any event.
On #3171 the diff is a single annotation added to one HelmRelease's postRenderer patch. Crossview
is not among the 26 resources reported unresolved — the failures are all unrelated HelmReleases
(
dex,cilium,reloader,cert-manager, …), so the PR's own content is not what the validator isobjecting to.
Impact
This blocks a whole class of change from ever going green on a PR:
CI - Required Checksaggregates it, so affected PRs sitBLOCKEDand cannot enqueue.Suspected cause
The job runs the validator identically on
pull_requestandmerge_groupwith no Flux substitutionvariables available, so
${domain}-style references in HelmReleases cannot resolve. There is alreadyprecedent in this repo for handling exactly that:
validate-talosrenders with placeholder valuesstanding in for env-expanded secrets so a PR event can validate without secrets.
Expected behaviour
A PR that changes a HelmRelease can pass this check, without weakening what it verifies on the
merge-group/deploy path.
Candidate fixes
pull_requestevent, mirroringvalidate-talos.so a PR is judged on its own diff.
pull_request— that removes the pre-merge signal entirely.Acceptance criteria
this, a fix could pass by disabling the check).