Donavan Fritz 3f6dfd3e88
Build flock Image / build (push) Has been cancelled
bird: add source address + next hop self (v6 anycast fix)
Cisco IOS rejects IPv6 BGP advertisements whose next-hop is link-local-
only. BIRD2 was synthesising a link-local next-hop for kernel-learned
routes whose dev had no via gateway (our anycast /128s). Symptom: v4
anycast worked (Cisco doesn't have the same constraint for /32s), v6
anycast didn't make it past crt001.

- pkg/routing/bird/config.go: NodeBGP.LocalV6/LocalV4. Template now
  emits `local <addr> as <asn>` and `next hop self;` in the BGP
  channel for both families, mirroring Calico's `source address` +
  `next hop self` pattern.
- pkg/agent/bird.go: localAddrSameSubnet picks an interface address
  on the peer's /64 or /24 to use as source.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-25 07:45:51 -05:00

flock

Kubernetes CNI for sjc001. Per-pod IPv4 opt-in, IID embedding, Ready-gated anycast via BGP.

Design doc: k8s-manager/dfritz-cni.md (in the operator's k8s-manager repo).

Status: M1 scaffold. Not functional. See milestones table in the design doc.

Layout

  • cmd/flock — CNI plugin binary (kubelet-invoked)
  • cmd/flock-agent — DaemonSet binary
  • pkg/api/v1alpha1NodeConfig CRD types
  • pkg/cni — CNI plugin internals + RPC client
  • pkg/agent — agent server, IPAM, state file, anycast, NetworkPolicy
  • pkg/embedip-algo IID embedding (pure)
  • pkg/routing/{bird,ospf} — routing backends
  • deploy/ — CRDs, RBAC, DaemonSet manifests

License

Apache 2.0.

S
Description
Kubernetes CNI for sjc001 — per-pod IPv4 opt-in, IID embedding, Ready-gated anycast via BGP
Readme 450 KiB
Languages
Go 99.7%
Dockerfile 0.3%