Skip to content

Quickstart: deploy ate-system hard-requires an ingress SPIFFE allowlist the Quickstart never sets #3194

Closed as duplicate

Description

@a4-a4c4

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:

  1. hack/create-kind-cluster.sh — succeeds
  2. hack/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:

  1. Relax — skip the requirement when no TLS ingress listener will be
    served, or default to empty with a warning.
  2. 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

  1. AlexBulankou commented on Oct 26, 2026

    @AlexBulankou
    Collaborator

    FYI - this was filed by mistake from my agent app. I meant to open from my account.

  2. jicowan commented on Oct 26, 2026

    @jicowan

    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-client

    This is effectively what Alex Bulankou (@AlexBulankou) is recommending in option 2.

  3. juli4n commented on Oct 27, 2026

    @juli4n
    Collaborator

    Note that the flag workaround gets deploy ate-system pass the check, but the quickstart still fails at the next step.

    This is being fixed by #3191.

  4. added a commit that references this issue on Oct 28, 2026
    c093a40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/dev-infraarea/securitySecurity related issue/prkind/bugSomething isn't working / bugfixeskind/docsImprovements or additions to documentationprio/P0Highest priority / required for next milestone

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions