// Package agent owns the in-process flock-agent runtime. The agent is a // single Linux DaemonSet pod per node and holds: // // - the durable per-node allocation file at /var/lib/flock/allocations.json // (see Store in state.go), // - an in-memory IPAM seeded from NodeConfig CIDRs and reconciled against // the allocation file at startup (see ipam.go), // - dynamic informers watching the per-node NodeConfig CR (nodeconfig.go) // and the local-node Pod set (podinfo.go), // - an RPC server speaking to the lightweight CNI plugin binary // (cmd/flock and pkg/cni), so kubelet's CNI invocations are answered by // a long-lived process rather than spinning up a fresh binary per ADD, // - the BirdManager that renders bird.conf and triggers `birdc reload` // on changes (bird.go), and // - the AnycastReconciler that programs per-pod /128 and /32 host routes // gated on Pod readiness (anycast_linux.go). // // The package is split between platform-specific files (anycast_linux.go, // netns_linux.go, runtime_linux.go) and stub files used on non-Linux build // hosts so the rest of the package — IPAM, parsing, store, RPC plumbing — // stays unit-testable on macOS and Windows CI. package agent