# maglevd Health checker and gRPC control plane for VPP Maglev load balancing. ## Build and Install ```sh make # builds build//maglevd and build//maglevc make test # runs all tests make pkg-deb # Creates a debian package for arm64 and amd64 ``` Requires Go 1.25+ and (for `make proto`) `protoc` with `protoc-gen-go` and `protoc-gen-go-grpc`. Produces `vpp-maglev__amd64.deb` and `vpp-maglev__arm64.deb` in the `build/` directory by cross-compiling with `GOOS=linux GOARCH=`. Requires `dpkg-deb` (available on any Debian/Ubuntu host). ## Running After installing, the unit is enabled but not started automatically: ```sh # edit /etc/vpp-maglev/maglev.yaml, then: systemctl enable --now vpp-maglevd ``` Or run the server and client by hand: ```sh maglevd --config /etc/vpp-maglev/maglev.yaml --grpc-addr :9090 maglevd --version # print version and exit maglevc --server localhost:9090 # interactive shell maglevc show frontends # one-shot maglevc -color=false show backends # one-shot, no ANSI color maglevc set backend nginx0-ams pause ``` Send `SIGHUP` to `maglevd` to reload config without restarting. `maglevd` requires `CAP_NET_RAW` for ICMP health checks. Check out a minimal configuration file in [[debian/maglev.yaml](debian/maglev.yaml)]. See [docs/user-guide.md](docs/user-guide.md) for flags, signals, and `maglevc` usage. See [docs/config-guide.md](docs/config-guide.md) for the full configuration reference. See [docs/healthchecks.md](docs/healthchecks.md) for health state machine details. ## Docker ```sh docker build -t maglevd . docker run --cap-add NET_RAW -v /etc/vpp-maglev:/etc/vpp-maglev maglevd ```