Commit Graph

55 Commits

Author SHA1 Message Date
279b70124c Implement 'network leave' 2024-12-17 16:50:07 +01:00
3f9863c39e Don't allow joining more than one network when deprecated config format is used 2024-12-17 13:40:31 +01:00
3111d2ca74 Allow creating a network without configuring it in daemon.yml 2024-12-17 11:33:19 +01:00
1340f13f95 Add ErrSecretNotFound and clarify other error-related docs 2024-12-15 21:39:41 +01:00
886f76fe0b Perform full config validation using stored network configs during init and SetConfig 2024-12-14 15:57:07 +01:00
aac7b30cf0 Clean up logging namespaces in daemon a bit 2024-12-13 15:35:15 +01:00
be7844f658 Move most TODOs into task files, introduce busiless to explore them 2024-12-10 21:36:56 +01:00
df5ece950a Implement GetBootstrap to replace other redundant methods 2024-12-07 20:39:13 +01:00
6c8d37a054 Spruce up errors a bit 2024-11-18 22:25:49 +01:00
6ec56f2a88 Pass NetworkConfig into Network loaders as an optional argument 2024-11-12 13:34:39 +01:00
72bca72b29 Revert "Add SetConfig to Daemon, though it will always error right now"
This reverts commit 2ec28cde61.
2024-11-10 22:58:09 +01:00
f0cb29b553 Implement network.Loader, will be helpful for testing Daemon 2024-11-10 22:13:06 +01:00
2ec28cde61 Add SetConfig to Daemon, though it will always error right now 2024-11-09 23:14:20 +01:00
5c41cedea3 Implement SetConfig, but in a stupid way 2024-10-24 19:52:08 +02:00
bbae88ab4b Add GetConfig method to Network 2024-10-23 20:18:11 +02:00
010c53e5c7 Some general cleanup 2024-10-06 17:15:40 +02:00
64fdba0a48 Implement network(s) list sub-command 2024-09-24 11:03:18 +02:00
16aca610b4 Add multi-network support to daemon
It's still not possible to pick a network from the command-line, so this
is a bit broken, but the daemon component should handle it correctly at
least.
2024-09-23 19:04:14 +02:00
df4eae8a5c Support configuring more than one network 2024-09-10 22:51:33 +02:00
c022c97b19 include a migration for multi-network state directories 2024-09-10 21:02:07 +02:00
8c3e6a2845 Separate Daemon and Network logic into separate packages
In a world where the daemon can manage more than one network, the Daemon
is really responsible only for knowing which networks are currently
joined, creating/joining/leaving networks, and routing incoming RPC
requests to the correct network handler as needed.

The new network package, with its Network interface, inherits most of
the logic that Daemon used to have, leaving Daemon only the parts needed
for the functionality just described. There's a lot of cleanup done here
in order to really nail down the separation of concerns between the two,
especially around directory creation.
2024-09-09 16:34:00 +02:00
86b2ba7bfa Factor daemon.Children into its own package 2024-09-07 15:46:59 +02:00
a840d0e701 Move common daemon types and values into daecommon 2024-09-07 15:11:04 +02:00
ef86c1bbd1 Make Daemon into a concrete type which implements RPC directly 2024-09-07 14:05:07 +02:00
ca62a37692 Fix rendering of text flag defaults 2024-07-22 10:42:25 +02:00
af69f1cfba Fix panic when starting up daemon with existing bootstrap 2024-07-21 17:20:48 +02:00
1ea16d80e4 Require host in garage for nebula create-cert command 2024-07-21 17:12:35 +02:00
ee30199c4c Automatically choose IP for new hosts 2024-07-21 17:10:28 +02:00
1411370b0e Write new host to garage as part of CreateHost 2024-07-20 12:36:21 +02:00
c94f8e3475 Move creation of children into daemon initialize method 2024-07-20 11:14:59 +02:00
7aa11ebe29 Only restart sub-processes which need restarting on bootstrap changes 2024-07-20 10:42:26 +02:00
5de93e3711 Add back the ability to specify IP for nebula create-cert 2024-07-14 14:43:17 +02:00
67d17efde0 Allow including CA signing key with JoiningBootstrap, and update docs 2024-07-14 13:33:29 +02:00
d2710db8f1 State CA signing key in secrets store, eliminate admin bundle 2024-07-14 13:11:18 +02:00
9d5c8ea4db Use secrets store for global garage bucket creds 2024-07-14 12:19:39 +02:00
86abdb6ae1 Propagate garage RPC secret with created host bootstrap 2024-07-14 11:58:39 +02:00
56f796e3fb Implement basic secrets architecture, use it for garage RPC secret 2024-07-13 17:42:41 +02:00
b5059be7fa Move create-bootstrap logic into daemon, rename to hosts create 2024-07-13 16:31:52 +02:00
cb8fef38c4 Move create-nebula-cert into nebula create-cert, move most logic into daemon 2024-07-13 16:08:13 +02:00
cc121f0752 Move RemoveHost into daemon 2024-07-12 17:05:39 +02:00
778db848c6 Fix daemon EnvVar dirs not being created on startup 2024-07-12 16:35:32 +02:00
7ca8ff3467 Fetch nebula CAPublicCredentials from daemon 2024-07-12 16:11:42 +02:00
30c8ca332a Fetch GarageClientParams from daemon 2024-07-12 16:03:37 +02:00
736b23429c Do proper type-based validation or hostnames and ipnets 2024-07-12 15:31:43 +02:00
1ee396c976 Use RPC for create-bootstrap 2024-07-09 15:14:29 +02:00
279c79a9f1 Replace admin create-network with network create over RPC 2024-07-09 11:43:17 +02:00
f9d033b89f Implement Daemon.CreateNetwork, but it's not yet used or tested 2024-07-07 20:01:10 +02:00
7d8b274445 Implement JoinNetwork RPC method, and accompanying sub-command 2024-07-07 12:44:49 +02:00
81368821b7 Refactor Daemon into Children and DaemonRestarter into Daemon 2024-07-06 15:36:48 +02:00
05e91cd657 Move daemon restarting logic into daemon package 2024-06-24 18:55:36 +02:00