aboutsummaryrefslogtreecommitdiff
path: root/agent
AgeCommit message (Collapse)Author
2021-05-05fix(agent): restrict allowed IPsHEADv1.13.2masterdevTrumeet
2021-04-08feat(agent): bird: use a concentrated configurationTrumeet
2021-04-04fix(agent): disable legacy services before calculating netlink changesv1.13.1Trumeet
Disabling wg-quick services will remove interfaces, making the predict of netlink changes outdated.
2021-04-04feat(agent): persistent configurationTrumeet
2021-04-03feat(agent): provision WireGuard before BGPTrumeet
2021-04-03fix(agent): move WireGuard ip del commands to a separate provisioner to be ↵Trumeet
executed after all done This resolves conflicts with systemd managed wg-quick legacy services
2021-04-03refactor(agent): clarify steps and parallelTrumeet
2021-04-03feat(agent): always use sequential executionTrumeet
2021-04-03fix(agent): wrong service name when disabling legacy systemd wg-quick unitsTrumeet
2021-04-03fix(agent): some tasks cannot execute in parallelTrumeet
2021-04-03feat(agent): use `ip` to operate WireGuard interfaces instead of wg-quickTrumeet
Existing wg-quick services will be automatically removed. Manual inspection may be required.
2021-04-02fix(agent): null pointer while rendering WireGuard configurationTrumeet
getPeerIPv6() will return "" rather than null if the actual value should be null. However, '<#if peer_ipv6??>' in the template will only check it for null, not for empty. Therefore, when peer_ipv6 equals to "", the peer_ipv6_ll will not be set and thus, lead to a null pointer rendering error at wg_conf.ftlh:8.
2021-04-02feat(central/agent/rpc): completely rewrite of provision handlingTrumeet
Now we are shifting from transactional operations (Central tells what to do like provision, reload or unprovision to nodes) to declarative configurations (Central renders a desired state of all BGP sessions and VPN tunnels and the agent will compare the desired state with actual state and merge changes). This greatly simplifies provision process and reduces atomic operations. It also simplifies locks as now, the only lock is deploy lock. However, the current implementation does not support result tracing. That is, all provision results are ignored and the provision status will not be updated nor the user will know whether a peer is successfully provisioned. This will be introduced later. Even if error tracking is more difficult, using this method or communication still results in great benifit in reducing errors. Nodes are now stateless: whenever a deploy is required, it compares all its local state to the desired state. Thus, issues will be likely solved by restarting. Lastly, unprovision operations will not block peer deletion. Their results will also be ignored. Breaking changes: * Not compatible with existing central / agents. They must be upgraded together. * Agents now must not be installed on the same machine.
2021-03-27fix(agent): use /128 for non-ll IPv6 addressesTrumeet
2021-01-16fix(central/agent): fix WireGuard no-endpoint peeringv1.4Trumeet
2021-01-16fix(central/agent/rpc): fix non-link local IPv6 supportTrumeet
2021-01-13fix(agent): the name of BGP sessions is invalidv1.3Trumeet
2021-01-09fix(agent): do not try deleting BGP config if it is absentTrumeet
2021-01-09build: use dynamic version nameTrumeet
2021-01-09feat(agent): show full command in log if it failsTrumeet
2021-01-08fix(agent/central): support optional endpointTrumeet
2021-01-07fix(agent): typo in usage messageTrumeet
2021-01-07First CommitTrumeet