Establish tomswall codebase and add the control-plane agent #1
Reference in New Issue
Block a user
Delete Branch "benvin/agent"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The tomswall codebase existed only locally; the remote had just an initial commit. This publishes the codebase and adds
tomswall agent, the piece that lets a device consume its compiled config from the tomswallapi control plane — closing the loop so a single fleet-wide rule is actually enforced on every hop.Changes
internal/agent: rendered-config types, an HTTP client (fetch config + report generation), an on-disk last-known-good cache, an on-device DNS resolver for dns sets (honors the device's configured resolver; fail-safe on lookup failure), and the pull-apply-report loop behind a mockable Applier.all:<cidr>any-interface source/dest form, reusing the existing differential engine. Named-set members are inlined as concrete addresses (native nftables set references are a tracked follow-up).tomswall agentsubcommand (flags + TOMSWALL_* env, --once). It never fails closed: if the control plane is unreachable it keeps applying the cached config.Follow-up
Release machinery (make patch|minor|major, nfpm RPM, release-on-tag pipeline) will land in a separate PR.