Commit Graph

81 Commits

Author SHA1 Message Date
Paul Lorenz 744ae68bbd Fix controller crash. Fixes #1736 2024-02-08 21:55:48 -05:00
Paul Lorenz c4abcae949 Link management fixes. Fixes #1692 Fixes #1693 2024-01-19 17:33:21 -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 20b61e0e9f Add capabilities to hello. Fixes openziti/fabric#799 2023-09-26 11:56:01 -04:00
Paul Lorenz cdfd037da9 Move protobuf definitions to common 2023-08-10 19:38:48 -04:00
Paul Lorenz 8fc97a11d8 Move profiler package to common 2023-08-10 18:09:15 -04:00
Paul Lorenz 13fc2a12c1 Move metrics package to common 2023-08-10 18:08:06 -04:00
Paul Lorenz a23891b702 Move health package to common 2023-08-10 18:05:59 -04:00
Paul Lorenz 368d6e5568 Move config, ctrl_msg and handler_common to common/ 2023-08-10 17:29:08 -04:00
Paul Lorenz 8dbc759d45 move event and events packages to controller 2023-08-10 17:10:17 -04:00
ekoby 185135dbcd add ability to use shared TLS listeners (#759)
* add ability to use shared TLS listeners

two protocols(for ALPN purposes) are defined:
- ziti-ctrl: control channel marker
- ziti-link: link channel marker
2023-07-14 09:28:00 -04:00
Andrew Martinez 2f46688763 adds server certs to raft mesh peer connections 2023-07-13 10:04:30 -04:00
Paul Lorenz 9a7ff8191c Refactor bootstrap. Cleanup some error messages. Set ctrl check to initial fail state 2023-05-18 22:57:22 -04:00
Paul Lorenz 820e6391a4 Add heartbeat config and controller peer heartbeats. Fixes openziti/fabric#507
Adds config to controller for heartbeat config
Add config to routers for heartbeat config
Adds configurable heartbeats to controller <-> controller connections
2023-02-28 09:47:53 -05:00
Paul Lorenz 7ed8aa1635 Add cluster events. Fixes openziti/fabric#584 2023-02-20 10:27:17 -05:00
Paul Lorenz 6de811dc66 Ensure we use peer's advertise address. Fixes openziti/fabric#606 2023-02-17 10:46:59 -05:00
Paul Lorenz abb0eb96fb Add more raft configuration options. Fixes openziti/fabric#597
Add more raft config knobs
Refactor peer handles to be consistent with other handlers
Allow inspect to work across controllers
Add config and clusterconfig inspect support
2023-02-15 23:47:57 -05:00
Paul Lorenz 52a8ba6a57 Miscellaneous raft related updates
Add initial cluster events.
Simplify ctrl <-> ctrl connection.
Fix version mismatch detection
2023-02-09 15:24:23 -05:00
Paul Lorenz 8f5b5b5c33 Compress snapshots with gzip for efficiency. Fixes openziti/fabric#583 2023-02-09 14:40:34 -05:00
Paul Lorenz 6a3e69950b Only update router controlelrs if running in raft cluster 2023-02-02 15:41:14 -05:00
Cam Otts 1a6fb53271 Router controller updates (#537)
* progress on controller communication

* added yaml encoding/decoding

* move dispatch callbacks to be more consistent

* update unit tests

* small cleaups

* Add new datadir to unit tests

* fix linter

* Was able to use FSM hooks to get configuration updates to show raft state

* Send index to prevent older versions from being applied and added leader override

* pr comments and added/removed ctrl connections

* added error logging

* pr comments

* spelling and bad log newlines

* added delete from the toconnect map and added end case to the background connect

* reordered removal from map

* added mtx around access. Forgot that was changed to be unsopported.
2023-01-18 09:19:13 -06: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 482a4fd0fc Update enable/disable ctrl ch to allow specifying controller. Update to use channel ops. Fix openziti/fabric#508 2023-01-11 14:14:43 -05:00
Paul Lorenz f2e2471548 Wait for cluster to elect leader. Don't require local node to be leader 2022-12-29 14:07:23 -05:00
Paul Lorenz 374b74ea79 Support auto-migrate and agent initiated migration. Fixes openziti/fabric#569 2022-12-28 17:06:27 -05: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
Cam Otts ddbe41aca2 Readonly lock (#504)
* initial work for adding readonly lock

* Added checks on peer adding/removing

* added tests around readonly checking and setting

* updated error and change atomic to not be a pointer
2022-09-26 13:53:55 -05:00
Paul Lorenz e0f5092a08 Use one port for ctrl channel to router and controllers. Allow syncing existing DB to raft. Fixes #471. Fixes openziti/fabric#479. 2022-08-22 12:09:07 -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 3d49022f4a Update for foundation changes 2022-07-01 14:29:12 -04:00
Paul Lorenz b26fcf8909 Fix copyright 2022-06-29 16:59:46 -04:00
Paul Lorenz 630378121a Remove management channel 2022-06-29 16:07:10 -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 eaa75d48c6 Initial support for distributed model via RAFT 2022-06-02 22:49:55 -04:00
Andrew Martinez c47f344066 move xweb out of fabric 2022-05-25 15:27:11 -04:00
Paul Lorenz 4dc6596e7a Fix pool metrics for xg/link dials. Fixes openziti/fabric#404 2022-05-20 10:31:43 -04:00
Paul Lorenz e53a5e6fc5 Add pool metrics 2022-05-13 13:49:42 -04:00
Paul Lorenz a21fb393bb Add websocket API for mgmt channel 2022-04-19 10:34:57 -04:00
Paul Lorenz 7bd0f84832 Move profiler code to fabric since this is the only place it's used 2022-03-31 10:36:30 -04:00
Paul Lorenz ef7c69558b Copy db ops from edge to fabric (for eventual removal from edge). Add snapshot db agent op 2022-03-10 10:07:41 -05:00
Paul Lorenz 2b7db10913 Allow routers more control over link management (#318)
* Allow routers more control over link management
2022-03-07 12:22:17 -05:00
Paul Lorenz 3cfea85bf7 Update links to use channel library 2022-01-31 15:52:10 -05:00
Paul Lorenz 93ba2f460f Merge remote-tracking branch 'origin/main' into update-channel 2022-01-28 11:09:47 -05:00
Paul Lorenz 84ae5576e1 Update to use channel library 2022-01-27 16:46:21 -05:00
Andrew Martinez 08e658514a adds newListener and newAddress options for controller ip/hostname move
- ctrl section for fabric now supports newListener addresses, sent on
  router connect
- xweb bindPoints now support newAddress, sent as a header on every
  response
2022-01-27 10:17:53 -05:00
Paul Lorenz e781e3c713 Update control channel to new channel API 2022-01-19 08:15:33 -05:00