Compare commits

..

16 Commits

Author SHA1 Message Date
amery 7f571fe414 build-sys: use local asciigoat.org/ini
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:40:23 +00:00
amery 6abccca365 vscode: add asciigoat, cyclomatic and Wrapf to the dictionary
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:40:23 +00:00
amery db62adfb9c wireguard: switch from gcfg to asciigoat.org/ini/basic
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:39:09 +00:00
amery 4599eca7d9 wireguard: implement EndpointAddress.UnmarshalText
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:38:03 +00:00
amery 312dbe2269 wireguard: implement UnmarshalText for PrivateKey and PublicKey
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:38:03 +00:00
amery 1fe1cf940d Merge pull request 'ceph: add initial ceph support. reading and writing m/ceph.conf' (#9)
Reviewed-on: #9
2023-09-05 21:35:52 +02: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
3 changed files with 16 additions and 10 deletions
+2
View File
@@ -43,6 +43,8 @@ func loadGlobalConfField(cfg *GlobalConfig, field basic.Field) error {
// revive:enable:cyclomatic
// revive:enable:cognitive-complexity
// TODO: refactor when asciigoat's ini parser learns to do reflection
switch field.Key {
case "fsid":
if !core.IsZero(cfg.FSID) {
+2
View File
@@ -56,6 +56,8 @@ func loadPeerConfSection(out *Config, src *basic.Section) error {
func loadInterfaceConfField(cfg *InterfaceConfig, field basic.Field) error {
// revive:enable:cyclomatic
// revive:enable:cognitive-complexity
// TODO: refactor when asciigoat's ini parser learns to do reflection
switch field.Key {
case "Address":
if !core.IsZero(cfg.Address) {
+12 -10
View File
@@ -159,17 +159,19 @@ func (m *Zones) scanCephMonitors(_ *ScanOptions) error {
return err
}
// store FSID
m.CephFSID = cfg.Global.FSID
if cfg != nil {
// store FSID
m.CephFSID = cfg.Global.FSID
// flag monitors based on config
todo := newCephScanTODO(cfg)
m.ForEachMachine(func(p *Machine) bool {
p.CephMonitor = todo.checkMachine(p)
return false
})
if err := todo.Missing(); err != nil {
return core.Wrap(err, "ceph")
// flag monitors based on config
todo := newCephScanTODO(cfg)
m.ForEachMachine(func(p *Machine) bool {
p.CephMonitor = todo.checkMachine(p)
return false
})
if err := todo.Missing(); err != nil {
return core.Wrap(err, "ceph")
}
}
// make sure every zone has one