gw-08 — Execution

Prerequisites

  • Go ≥ 1.25 (stdlib only, offline). Optional for the real-Envoy path: func-e/getenvoy + go-control-plane (see steps/01).

One-shot

cd gw-08-envoy-xds-control-plane && bash scripts/verify.sh   # tests + control-loop demo

Per-language workflow (Go)

cd gw-08-envoy-xds-control-plane/src/go
go test -race -count=1 ./...        # snapshot consistency, fingerprint, ACK/NACK, reconcile
go run ./cmd/xdsdemo                # reconcile + ACK + debounce + reject-keeps-last-good

Package map

FileWhat
xds/resource.goLDS/RDS/CDS/EDS resources, snapshot, consistency (ADS ordering), content-hash version
xds/cache.gosnapshot cache per node, subscribe/push, ACK/NACK + last-known-good tracking
xds/reconcile.golevel-triggered reconcile loop with debounce + keep-last-good-on-error
cmd/xdsdemothe control-loop demonstration

Driving real Envoy

steps/01-minimal-xds-server.md shows the go-control-plane wiring and the Envoy bootstrap to point a real proxy at an xDS server. The protocol mechanics there (snapshot/version/ACK/NACK/ADS) are exactly what this lab's xds package implements.

See GUIDE.md for the deep dive.