Stages are separate PipelineRuns chained by events. The interesting part is identity: each hop is authenticated by Kubernetes itself, and the next stage runs as the tenant, never as the broker.
Principle honored
Workload identity over minted secrets: the pod's own audience-bound token is the credential, verified by the API server.
What changes
One shared EventListener with 2 to 3 replicas, not a listener per tenant.
Each tenant has its own Trigger object, scoped to its own service account.
The same events feed DORA metrics.
Why it holds
A tenant cannot trigger another tenant's pipeline: routing follows the identity TokenReview returns, not anything in the payload.