Compose remains the lab. The product repo ships example manifests in deploy/k8s/: 2-replica API/worker plus host-network dhcpd. Do not run a single-pod database as the lease store. Use managed Postgres or Patroni.
These are examples, not a Kubernetes product SKU. Relays, VIP, and DHCP snooping still sit on the network fabric.
Images
Build the same distroless binaries as compose:
docker build -f deploy/compose/Dockerfile --build-arg BINARY=lattice-api -t lattice-api:0.1.0-beta.1 .
docker build -f deploy/compose/Dockerfile --build-arg BINARY=lattice-worker -t lattice-worker:0.1.0-beta.1 .
docker build -f deploy/compose/Dockerfile --build-arg BINARY=lattice-dhcpd -t lattice-dhcpd:0.1.0-beta.1 .
Point the Deployments at your registry tags. No latest.
Apply
- Edit
deploy/k8s/configmap.yamlSecretLATTICE_PG_DSN(sslmode=require) andLATTICE_TRUSTED_RELAYS. kubectl apply -f deploy/k8s/- Front
lattice-api:8080with an Ingress/TLS terminator. Front dhcpd with an anycast VIP or per-node listeners (VIP).
API /readyz is the load-balancer health check. dhcpd HTTP /readyz is Postgres ping plus a subnet-count query.
Entitlement
Admins can upload lattice.entitlement.json in the console; Lattice stores it in Postgres so every process sees it. Or mount the file at /etc/lattice/entitlement.json (Secret volume) for api, dhcpd, and worker. Missing or invalid file is community (1,000 IPs). License.
What this is not
- Not a BGP speaker. Document FRR/BIRD beside the cluster.
- Not a substitute for DHCP snooping and trusted relays on the switching fabric.