Repository navigation
deploy ate-system hard-requires an ingress SPIFFE allowlist the Quickstart never sets#3194Description
Summary
Both Quickstarts tell a new user to run
hack/install-ate-kind.sh deploy ate-system --credential-provider='{"name":"k8s.io"}'
and on current main that command fails before it touches the cluster:
Error: at least one of ATE_INGRESS_ALLOWED_SPIFFE_IDS, config.ingressAllowedSPIFFEIDs
or --ingress-allowed-spiffe-ids must be set, got none
So step 2 of the documented getting-started flow cannot be completed as written.
Reproduction
Clean VM, clean cluster, nothing but the README:
hack/create-kind-cluster.sh— succeedshack/install-ate-kind.sh deploy ate-system --credential-provider='{"name":"k8s.io"}'— fails as above
Reproduced on four consecutive days against main, and on the GKE path too: a
clean GKE Standard cluster on 1.36.3-gke.1767000 with setup-gcp bootstrap
succeeding and ate-setup deploy ate-system then failing identically. So this
is not Kind-specific — it is both front doors.
Where it comes from
deploy ate-system calls RequireIngressAllowedSPIFFEIDs() before applying
anything (cmd/ate-setup/internal/steps/deploy.go). The reason is sound and
documented in cmd/ate-setup/internal/config/config.go: the Envoy ingress
router authenticates clients on its TLS listeners and refuses to start with no
SPIFFE ID to match them against. Envoy is the default dataplane.
The requirement is documented nearly everywhere — cmd/ate-setup/commands.md
marks it Required, docs/operator-install.md lists it, every
benchmarking/**/README.md invocation passes it, and the repo's own CI sets
ATE_INGRESS_ALLOWED_SPIFFE_IDS. The two Quickstart blocks in README.md are
what the sweep missed.
Why this may not be a pure docs fix
The Quickstart's own traffic path is a host-side curl through
kubectl port-forward … svc/atenet-router 8000:80 — plaintext, port 80. It
never reaches a TLS listener, so no client in the documented flow has a SPIFFE
ID that would be meaningful to allowlist. The install now hard-fails on a
setting the documented happy path cannot populate for a real reason.
That suggests two resolutions, and which one is right looks like a product
call rather than a transcription:
- Relax — skip the requirement when no TLS ingress listener will be
served, or default to empty with a warning. - Document — add a placeholder to both Quickstart blocks; CI already uses
spiffe://cluster.local/ns/ate-e2e-router-client/sa/router-client.
Happy to send a PR for whichever you prefer.
Activity
AlexBulankou commentedon Oct 26, 2026
FYI - this was filed by mistake from my agent app. I meant to open from my account.
jicowan commentedon Oct 26, 2026
For those who are running into this error, you can run the following to move onto the next step:
hack/install-ate-kind.sh deploy ate-system --credential-provider='{"name":"k8s.io"}' \ --ingress-allowed-spiffe-ids=spiffe://cluster.local/ns/ate-e2e-router-client/sa/router-clientThis is effectively what Alex Bulankou (@AlexBulankou) is recommending in option 2.
juli4n commentedon Oct 27, 2026
Note that the flag workaround gets
deploy ate-systempass the check, but the quickstart still fails at the next step.This is being fixed by #3191.
Add kubectl ate proxy actor command. (agent-substrate#3191)