Commit Graph

71 Commits

Author SHA1 Message Date
Paul Lorenz e5fb69935e Support multi-underlay links. Fixes #3134 2025-07-11 20:56:11 -04:00
Paul Lorenz cc7eefaf24 Add support for tracking network interfaces on routers and identities. Fixes #3082. Add network discover to router. Fixes #3083 2025-06-17 09:32:51 -04:00
Paul Lorenz da35cbd1a3 Ensure cluster peers are present and correct before adding. Fixes #3005 2025-05-01 16:26:45 -04:00
Paul Lorenz c5f67f6a1a Cluster operations should return 503 if there's no leader. Also add 503s for other operations where appropriate. Fixes #2738 2025-02-14 11:56:10 -05:00
Paul Lorenz 6ad8aca5fb Rename raft operations to cluster. Fixes #2546 2025-01-31 11:19:16 -05:00
Paul Lorenz b8f944326f Ensure controller is initialized before raft. Fixes #2279 2024-08-01 14:14:55 -04:00
Paul Lorenz 77d27ca781 Enhance the router data model with config information, fixes #2010 Add subscription model to router data model, fixes #1990 2024-07-17 14:31:39 -04:00
Paul Lorenz e0ca4fb188 Add read only status to cluster list. Fixes #2222 2024-07-12 14:34:30 -04:00
Paul Lorenz 895551a991 Change raft list REST property name from values to data to match rest of REST spec. Fixes #2191 2024-07-12 14:34:30 -04:00
Paul Lorenz c3b43133d1 Merge fabric and controller model code. Fixes #2205 2024-07-09 16:11:01 -04:00
Paul Lorenz 97b9b44171 Spelling fixes from codespell 2024-05-28 13:44:54 -04:00
Paul Lorenz 8d11af3d97 Optimize network run loop. Fixes #1897
* When routers change (connect/disconnect), we re-check the mesh. We are passing in the routers to the channel and they can build up, which is unnecessary. We only need to signal once for all the routers that change since the last time we checked, that the mesh needs to be checked.
* We pass link changes through the run method, which is unnecessary since we pass it to a new goroutine. This inefficiency should be fixed.
* We're evaluating all faulted links for rerouting, even if they were still pending. Only reroute connected links.
* We're using time.After in each for loop, which can accumulate timers. Use a single Ticker instead.
2024-04-04 18:46:50 -04:00
Paul Lorenz aaceb84a0f Don't save old link statues in memory, the info is in link events. Fixes #1896 2024-04-04 18:18:35 -04:00
Paul Lorenz fab81e4cd4 Add terminator chaos testing and fix issues found. Fixes #1794 Fixes #1369 2024-03-12 10:31:36 -04:00
Paul Lorenz c4abcae949 Link management fixes. Fixes #1692 Fixes #1693 2024-01-19 17:33:21 -05:00
Paul Lorenz 4141668382 Cluster mode -> HA mode for consistency 2023-12-13 11:35:10 -05:00
Paul Lorenz 95f650d4b8 Add support adding/removing members and transferring leadership via REST API. Fixes #1544 and fixes #1543 2023-12-11 16:31:48 -05:00
Paul Lorenz 9ddd1b941d Add service max idle time. Fixes #1496. Add decomission router support. Fixes #1402 2023-12-08 12:48:56 -05:00
Paul Lorenz 16cf13ac08 Support filter/sort/page on circuits and links. Fixes #1547 2023-12-05 10:30:08 -05:00
Paul Lorenz 9bed8a14a8 Add optional command rate limiter. Fixes #1445 2023-10-23 13:45:49 -04:00
Paul Lorenz f3d67b7f49 Update fabric imports 2023-09-28 23:34:28 -04:00
Paul Lorenz bed7b0eb02 Allow specifying snapshot name with templating. Fixes #794 Fixes openziti/fabric#792 2023-09-18 15:19:23 -04:00
Paul Lorenz a77817240c Move REST code into controller 2023-08-16 12:39:59 -04:00
Paul Lorenz f71db654eb Move build and inspect packages to common 2023-08-10 19:45:23 -04:00
Paul Lorenz 8dbc759d45 move event and events packages to controller 2023-08-10 17:10:17 -04:00
Paul Lorenz 2ee9539f9c Move link calculation to routers. Fixes #692, fixes #749, fixes openziti/fabric#343 2023-08-03 17:07:48 -04:00
Paul Lorenz d1d0fe781b Update for storage API changes. 2023-04-25 11:32:33 -04:00
Paul Lorenz 32da1861ca Add router disable flag. Fixes openziti/fabric#651 2023-03-27 14:18:43 -04:00
Cam Otts c299a06669 Added raft leave and raft list members (#580)
* Added raft leave and raft list members

* reordered agent raft leave to only check address if is is not found

* instead of adding second raft ctrl, just cast the dispatcher
2023-01-12 10:18:13 -06:00
Paul Lorenz 4a1f234839 Add linter and update deps 2022-10-10 13:29:40 -04:00
Paul Lorenz 02539e9e16 Support multiple control channels. Fixes openziti/fabric#469 2022-09-29 12:06:41 -04:00
Paul Lorenz 519574497e Update to channel v2 2022-09-26 17:00:34 -04:00
Paul Lorenz aafa99ae6f Fix some linting issues. svcId -> serviceId 2022-09-15 17:34:44 -04:00
Paul Lorenz c77160ba6d Fix patching tags on routers and services. Fixes openziti/fabric#499 2022-09-14 23:29:07 -04:00
Paul Lorenz 4d05c59df0 Run gofmt -w -s 2022-08-22 14:17:43 -04:00
Paul Lorenz 858642bc38 Move UpdatedFields to fabric. Start moving model layer to generics 2022-07-27 11:33:24 -04:00
Paul Lorenz 98160bb8b0 Merge pull request openziti/fabric#448 from openziti/link-events
Refactor events subsystem. Add link events. Fixes openziti/fabric#415
2022-07-19 10:59:27 -04:00
Paul Lorenz 8f0150f242 Add host id to terminator. This will allow tracking usage to hosting entities. Fixes openziti/fabric#440 2022-07-15 23:13:01 -04:00
Paul Lorenz 77bce93e85 Refactor events subsystem. Add link events. Fixes openziti/fabric#415
Previously we often had two sets of events, one in the network
package, and then another in the events package. We now only
have one, in the events package. Events now have a public API,
 with minimal deps. There's an implementation package which has
the dependencies. This allows the network package to generate
events, without have a circular dependency on the events
implementation package.
2022-07-15 18:31:52 -04:00
Paul Lorenz 70d37bf44a Merge pull request openziti/fabric#430 from openziti/prevent-strange-loops
Prevent strange loops
2022-07-01 15:37:59 -04:00
Paul Lorenz 3d49022f4a Update for foundation changes 2022-07-01 14:29:12 -04:00
Paul Lorenz b281372757 Retry smart route on failure. Add circuit createdAt 2022-07-01 11:19:37 -04:00
Paul Lorenz b26fcf8909 Fix copyright 2022-06-29 16:59:46 -04:00
Paul Lorenz d3a5d5151f Merge pull request openziti/fabric#425 from openziti/circuit-failed-events
Circuit failed events
2022-06-22 15:00:58 -04:00
Paul Lorenz a731cd9aec Circuit failed events and rename terminator identity -> instanceId 2022-06-22 14:34:32 -04:00
Tod d8f5db8cf6 Prometheus format feedback (#422)
* Adding timestamps to prometheus bucket metrics

* Making Prometheus timestamps optional
2022-06-22 09:20:48 -04:00
Tod 1ccfa2f3dc Adding Metrics API on '/metrics' (#410)
* Adding fabric `/metrics` API/binding to provide metrics in the prometheus text exposition format (https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format)
2022-06-09 11:17:00 -04:00
Andrew Martinez 660a4af582 upgrades xweb to v2.0.0
- xweb v2 uses different simpler names
- reduce xweb instances to a single instance in fabric
2022-06-06 10:19:44 -04:00
Paul Lorenz a64c626cb4 Controller -> Manager for entity managers 2022-06-02 22:53:22 -04:00
Paul Lorenz eaa75d48c6 Initial support for distributed model via RAFT 2022-06-02 22:49:55 -04:00