aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-02feat(central): support manually re-deployingv1.11Trumeet
2021-04-02fix(central): deadlock if deployment is failedTrumeet
2021-04-02feat(central): add nodes admin UITrumeet
2021-04-02feat(central): add logging to ProvisionRemoteServiceImplTrumeet
There are no clients that handle the result of provisioning. If there is no logging, it would be hard to debug.
2021-04-02feat(central): only allow one peer per ASN on the same nodeTrumeet
If migration failed with duplication keys, manually remove duplicated peers and repair. Check duplicated peers: SELECT id, asn, node, COUNT(*) FROM peer GROUP BY asn, node HAVING COUNT(*) > 1
2021-04-02feat(central): add peering policy to the indexTrumeet
2021-04-02feat(central): add internal IP unique indexTrumeet
If migration failed with duplication keys, manually remove duplicated nodes and repair.
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-04-01feat(central): implement database auto migrationTrumeet
2021-04-01feat(central): move database configuration a separate data classTrumeet
2021-04-01refactor(central): abstract database poolTrumeet
This enables the project to easily switch to other pools or centrally change pool options without modifying each service or individual classes.
2021-04-01feat(central): add debug info for remote proxy calls and log them. This is ↵Trumeet
useful for debugging
2021-03-31feat(central): add sudo and admin panelv1.10Trumeet
2021-03-30fix(central): wg-quick does not support IP switchingTrumeet
2021-03-30fix(central): move % out of <b>Trumeet
2021-03-29fix(central): showconf: use /128 for non-ll ipv6v1.9Trumeet
2021-03-29feat(central): wrap wg keys in <code>Trumeet
2021-03-29feat(central): merge table IPv4 and IPv6 for better mobile experienceTrumeet
2021-03-29feat(central): add CSS and optimize mobile UITrumeet
2021-03-29refactor(central): move getGeneralRenderingHandler to RenderingUtilsTrumeet
2021-03-29refactor(central): move ASN frontend logic to a separate web API serviceTrumeet
2021-03-28refactor(central): move some common codes outside of ManageHandlerTrumeet
2021-03-28fix(central): handle HTTPException at a higher level and remove some ↵v1.8Trumeet
printStackTrace calls
2021-03-27fix(central): compress income IPv6 addresses to prevent identical addresses ↵Trumeet
with different forms from being processed Existing peers are not checked
2021-03-27feat(central): move gRPC logic into a separate verticle and fix shutdown issuesv1.7Trumeet
2021-03-27fix(agent): use /128 for non-ll IPv6 addressesTrumeet
2021-03-27fix(central): remove unnecessary semicolon in the sample configurationsTrumeet
2021-03-27feat(central/agent/rpc): upgrade Vert.x to 4.0.3Trumeet
2021-02-03fix(central): do not check duplication for Link-Local IPv6 addressesv1.6Trumeet
2021-01-22fix(central): remove 'AS' in the example configurationTrumeet
2021-01-22feat(central): do not show example configuration when the node is downTrumeet
2021-01-22fix(central): wrong WireGuard interface name in example configTrumeet
2021-01-21fix(central): NoSuchElementException if we cannot find any peersTrumeet
2021-01-20feat(central): provide an example configurationv1.5Trumeet
2021-01-20fix(central): use custom basic auth realm instead of the default 'vertx-web'Trumeet
2021-01-20fix(central): no Content-Type in responseTrumeet
2021-01-18feat(central): clearify IPv6 address typeTrumeet
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-09ci: remove dup keysv1.2Trumeet
2021-01-09fix(central): manually set ID for rendering when editing a peer and the ↵Trumeet
parsing process fails
2021-01-09fix(central): check if the wg endpoint is specified but the port is missingTrumeet
2021-01-09fix(central): wrong type castTrumeet
2021-01-09fix(central): set Peer#wgEndpointPort to Integer to allow nullable values ↵Trumeet
and integrate with MySQL NULL value
2021-01-09fix(central): manually reset field values to null if they are blankTrumeet
2021-01-09fix(central): add non-null check for wg_endpoint_port form fieldTrumeet
2021-01-09fix(central): correct WireGuard endpoint IP non-null checkTrumeet
The request body could contain keys without values. In this case, we use non-null and non-empty check to make sure their values are present.
2021-01-09feat(central): more clearly state that the WireGuard endpoint IP could be ↵Trumeet
invalid