Overview
This demo runs a workload outside Kubernetes and gives it a SPIFFE identity that an
in-cluster service trusts. A point-of-sale service (store-pos) runs on a separate
machine that is not part of the cluster. Linkerd’s mesh expansion adds it to the mesh
with a SPIRE-issued identity (spiffe://root.linkerd.cluster.local/store-pos) that
chains to the cluster’s trust anchor. store-pos sends inventory and sales data to
the in-cluster retail-cloud service over mTLS. The store initiates the connection,
because the cluster cannot assume that a machine inside the store is reachable.
Authorization is expressed in terms of identity rather than network location. The
retail-cloud ingest endpoint admits only the store’s SPIFFE identity. If that
identity is removed from the policy, the next request is rejected with HTTP 403; no
addresses, routes, or firewall rules change. A workload is authorized by its
identity, which remains the same across machines and networks.
Where to go next
Section titled “Where to go next”- Concepts — how SPIFFE identity and Linkerd mesh expansion work, and how authorization by identity differs from authorization by network.
- The manual — a step-by-step walkthrough of every configuration file, field, and command, without setup scripts.
- Reference — the key configuration artifacts in one place.
The runnable code lives in the repository.