You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🐛 eventing: five manifest assertions skip in CI, so the Secret-vs-ConfigMap rule is unenforced there #894
kubectl is not on the CI runner, so every test marked @needs_kubectl skips — currently
reported as 5 skipped on every run, in both CI and most sandboxes. The assertions that
do not run include:
test_no_phase3_secret_is_inlined_into_a_manifest — the §8.3 Secret-vs-ConfigMap rule,
which is the whole of T22
So a manifest change that violates any of these merges green. #884 found one case of a
manifest assertion silently ceasing to mean anything; nothing automated would have caught
the next.
Why this is cheap to fix
kustomize is a separate binary from kubectl, and it is present in environments
where kubectl is not — including the sandbox where both of those reviews were run. kubectl kustomize and kustomize build produce the same output for these overlays.
and needs_kubectl becomes needs_kustomize, skipping only when neither is available.
The tests that genuinely need a cluster (needs_cluster, for API-server-defaulted JSON)
are unaffected and should keep skipping.
Worth checking before doing it
Does CI have either binary? If neither, this needs a setup step in the workflow —
still worth it, since kustomize is a single static binary, but it changes the shape
of the fix from "a fallback" to "a fallback plus a CI change".
Do the two renderers agree byte for byte on all four overlays? They should for
these manifests, but the assertions are string-matching against indentation, so it is
worth diffing rather than assuming. If they differ, the assertions may need \s*
loosening — test_manifests.py already does that in several places for related reasons.
Both reviews flagged it and both concluded it is bigger than a docs or feature PR should
carry: it is test infrastructure affecting five assertions across two phases, and it
deserves its own verification that the fallback renders identically. Filing it so it is
not rediscovered the next time a manifest assertion stops meaning anything.
Phases 1–3 (the assertions span all three). Not blocking anything.
The reason is that ubuntu-latest ships kubectl 1.37.1 and kustomize 5.8.1
preinstalled (actions/runner-images, Ubuntu 24.04 manifest, image 20260927.320.1), so _HAVE_KUBECTL is true on the runner and all 21 @needs_kubectl tests execute. The Secret-vs-ConfigMap rule from T22 is enforced in CI
today.
The run ends 896 passed, 8 skipped. The five test_manifests.py skips are the @needs_cluster ones:
— which this issue itself says should keep skipping, since they need a live API server.
So the "5 skipped" count is real, but it is the cluster-dependent five, not the kubectl-dependent five. It looks like the observation came from a sandbox with no kubectl on PATH and was read as a CI symptom.
The kustomize fallback proposed here is still a mild robustness win for sandboxes
without kubectl, and needs_kustomize would be a more accurate name than needs_kubectl. But it changes nothing in CI and fixes no unenforced assertion, so I
don't think it earns a PR on its own — happy to be told otherwise if you'd rather have
the local-dev ergonomics.
For context, this came out of a pass over the other issues filed alongside it — #889, #886 and #891 did turn out to be real and now have PRs (#901, #902, #903).
Closing as already satisfied. Reopen if you see these skipping on a run I've missed.
Activity
mrsabath commentedon Oct 7, 2026
Went to fix this and checked the premise first — it does not hold: the five assertions
named above do not skip in CI, they pass.
From the
CIrun onmainat8ab8b30— run37501858445, job112400597006(eventing-test):The reason is that
ubuntu-latestships kubectl 1.37.1 and kustomize 5.8.1preinstalled (
actions/runner-images, Ubuntu 24.04 manifest, image20260927.320.1), so_HAVE_KUBECTLis true on the runner and all 21@needs_kubectltests execute. The Secret-vs-ConfigMap rule from T22 is enforced in CItoday.
The run ends
896 passed, 8 skipped. The fivetest_manifests.pyskips are the@needs_clusterones:test_every_object_is_accepted_by_the_api_servertest_the_topics_are_accepted_by_strimzitest_applying_the_overlay_never_overwrites_the_replica_count_keda_ownstest_the_server_keeps_eventbridge_at_one_replicatest_the_scaledobject_survives_the_keda_admission_webhook— which this issue itself says should keep skipping, since they need a live API server.
So the "5 skipped" count is real, but it is the cluster-dependent five, not the
kubectl-dependent five. It looks like the observation came from a sandbox with nokubectlonPATHand was read as a CI symptom.The
kustomizefallback proposed here is still a mild robustness win for sandboxeswithout
kubectl, andneeds_kustomizewould be a more accurate name thanneeds_kubectl. But it changes nothing in CI and fixes no unenforced assertion, so Idon't think it earns a PR on its own — happy to be told otherwise if you'd rather have
the local-dev ergonomics.
For context, this came out of a pass over the other issues filed alongside it — #889,
#886 and #891 did turn out to be real and now have PRs (#901, #902, #903).
Closing as already satisfied. Reopen if you see these skipping on a run I've missed.