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
Paul Lorenz
52cfbbbe29
Add REST based management API
2021-11-30 13:57:35 -05:00
Paul Lorenz
6ba7264ff3
Do additional cert chain and verify links with controller
2021-11-12 15:36:05 -05:00
Paul Lorenz
c5d2e481ae
Add router ids to link metrics. Fixes openziti/fabric#275 . Fix panic on router shutdown if router is stopped before ctrl channel is established
2021-11-10 12:45:54 -05:00
Andrew Martinez
d305026980
exposes controller.Identity() to avoid re-parses
2021-10-19 09:38:14 -04:00
Andrew Martinez
c6b54e8606
updates to new foundation version
...
- updated identity module
- centralizes identity references
- removes old parsing logic
2021-10-18 15:25:07 -04:00
Paul Lorenz
7233d18463
Remove HA terminator strategy since it's an incomplete solution
2021-09-13 09:51:51 -04:00
Paul Lorenz
58e159236d
Use string id instead of identity where we don't need certs
2021-09-03 14:10:28 -04:00
Paul Lorenz
c45e741bbd
Add controller health check ( #249 )
...
* Add controller health check and make controller and router health checks consistent
2021-06-22 14:01:45 -04:00
Paul Lorenz
478d8c1e0b
Remove eXtensible Terminator Validator framework (xtv) as it's now unused.
...
terminator validation can be done in custom control channel handlers instead
2021-04-29 12:45:07 -04:00
Paul Lorenz
14c632c862
Add events for router online/offline
2021-04-22 11:27:10 -04:00
Andrew Martinez
deb46432e1
initial xweb implementation
...
- adds config structures
- adds server structures
- simplifies interfaces
- removed unused remnants
- refactor work
- adds doc
2021-04-14 13:19:39 -04:00
Paul Lorenz
31a587384a
Add interval counts, per service, for dial success, timeout, fail, other
2021-03-10 13:15:55 -05:00
Paul Lorenz
2b283dcdce
Cleanup go-routines on shutdown. Allow Xtrl instances to contribute trace decoders
2021-02-17 20:22:14 -05:00