Commit Graph

120 Commits

Author SHA1 Message Date
amery 033ca2f20e zones: validate Machine names
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-08 12:43:00 +00:00
amery 1bca1f7da1 zones: add logger to Zone and Machine
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-07 14:51:01 +00:00
amery 5e5958d22e zones: introduce (private) logger interface
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-07 14:49:14 +00:00
amery 45447275a7 zones: introduce WithLogger() scan option
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-07 14:26:14 +00:00
amery a655603343 env: export FSID
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:57:39 +00:00
amery c291b218a4 zones: improve GetCephFSID() to generate a new UUID if none was found
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:57:39 +00:00
amery f10ea1dc22 jpictl: write m/ceph.conf on sync
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery ac87757b06 ceph: zones.Zones.WriteCephConfig() and ceph.Config.WriteTo()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery fe081a4297 env: set ceph monitors variables
they indicate the ceph monitors on the specified zone

* MON{zoneID}_NAME
* MON{zoneID}_ID
* MON{zoneID}_IP

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery cea8362fe6 zones: extend scan to ensure every zone has a ceph monitor
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery b772ec0a3d zones: store ceph FSID on scan
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery 77ad016e99 zones: set Machine.CephMonitor if its referenced as monitor on ceph.conf
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery bf4bfeb3fc zones: introduce GenCephConfig()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery e3ab931eb1 zones: introduce Zone.GetCephMonitors()
returning the local ceph monitors and setting one
if there is none. non-gateway nodes are preferred
when setting a monitor automatically

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery 05e04c758b zones: introduce Zones.GetCephConfig() accessor for m/ceph.conf
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery 94011a3a03 ceph: add NewConfigFromReader() and initial ceph.conf parser
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 16:48:17 +00:00
amery 025b9072b4 zones: introduce Machine.CephMonitor field
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 12:24:55 +00:00
amery 0fb8c1d44b zones: introduce Zones.CephFSID and Zones.GetCephFSID()
the accessor doesn't generate one if needed yet

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 12:24:55 +00:00
amery 296d4007ff zones: add methods to work with files at the root of m/
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 16:15:37 +00:00
amery 1a03404a07 Merge pull request 'zone.ScanOptions, custom resolver and prevent unnecessary DNS calls' (#5)
Reviewed-on: #5
2023-08-28 18:10:39 +02:00
amery 71a1d1a7c2 zones: Env: allow multiple gateways on a Zone
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 16:06:32 +00:00
amery de45fa6c30 zones: Env: minor tidy up
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 16:06:32 +00:00
amery 94daf5ad59 zones: export Machine.LookupNetIP() and Machine.UpdatePublicAddresses()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:49:26 +00:00
amery 0989dec5e8 zones: add ResolvePublicAddresses() ScanOption to prevent early LookupIP calls
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:49:26 +00:00
amery 216bf5aa29 zones: WithLookuper()/WithResolver()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:49:26 +00:00
amery 9af88f6593 zones: introduce ScanOption/ScanOptions for New()/NewFS()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:49:26 +00:00
amery af2d836000 zones: Env: drop unused ZONE{zoneID}_IP
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:52:40 +01:00
amery 1655ce85bc Merge pull request 'zones: FilterMachines() and Zone.GatewayIDs()' (#3)
Reviewed-on: #3
2023-08-28 16:47:57 +02:00
amery 9c4f6d987d Merge pull request 'env: introduce Env() factory and jpictl env -e to export variables' (#2)
Reviewed-on: #2
2023-08-28 16:47:37 +02:00
amery f63ce6c4e7 zones: introduce Zone.GatewayIDs()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 17:13:29 +00:00
amery 1885c76198 zones: FilterMachines() creates a Machines subset
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 17:13:16 +00:00
amery 2224e70638 zones: introduce Machines type. iterable and sortable
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 17:13:16 +00:00
amery 6ee848e6ca jpictl: introduce -e for jpictl env to export variables
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 15:26:35 +00:00
amery 864eb02f9d zones: turn Zones.WriteEnv() into Zones.Env().WriteTo()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 15:22:34 +00:00
amery 9da2f8711f zones: fix PruneWireguardConfig recursion
Zones and Zone implementation should call Machine's directly
instead jumping back to Zone's for each Machine again and again

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 14:44:42 +00:00
amery 2a14205e7e wireguard: fix misspellings
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:44:02 +00:00
amery a5d9466fb8 zones: change WriteEnv() to not fake gateways
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:33:12 +00:00
amery 3d638e9a85 zones: add Zone.SetGateway() to set one by ID
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:33:12 +00:00
amery 60d3a2c290 zones: set first node of a Zone as ring0 gateway if it doesn't have one already
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:33:12 +00:00
amery af90825f13 zones: Machine.SetGateway()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:33:12 +00:00
amery b4f1d2e4d9 wireguard: implement Machine.SyncWireguardConfig()
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:33:12 +00:00
amery acf9e0e81d zones: extend WriteWireguardConfig to include a Name indicating the ring ID
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:26:11 +00:00
amery 3b43e0c9ea wireguard: add support for optional Name comment
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:25:05 +00:00
amery 9762e78f5e jpictl: do SyncWireguardConfig() on write
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:13:24 +00:00
amery 3534e7b755 zones: SyncWireguardConfig() as Prune+Write
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 18:13:24 +00:00
amery b80dc84a26 zones: introduce WireguardConfigWriters
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 17:55:19 +00:00
amery c0ef6ae9c4 zones: rearrange code around WireguardConfigPruner
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 17:30:09 +00:00
amery 58867031ea zones: rearrange code around WireguardKeysWriter
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 17:05:11 +00:00
amery b95d1f1878 zones: introduce Wireguard Ring Config factory
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 16:38:00 +00:00
amery d38c909b0b zones: introduce ZoneIterator, implemented by Zones
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-26 16:37:50 +00:00