Don't support legacy bootstrap format, we have to redo all bootstraps anyway
This commit is contained in:
parent
30584973be
commit
51b2fbba36
@ -1,7 +1,6 @@
|
|||||||
package bootstrap
|
package bootstrap
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -42,62 +41,6 @@ type Host struct {
|
|||||||
Garage *GarageHost `yaml:"garage,omitempty"`
|
Garage *GarageHost `yaml:"garage,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadHostsLegacy(bootstrapFS fs.FS) (map[string]Host, error) {
|
|
||||||
|
|
||||||
hosts := map[string]Host{}
|
|
||||||
|
|
||||||
readAsYaml := func(into interface{}, path string) error {
|
|
||||||
b, err := fs.ReadFile(bootstrapFS, path)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("reading file from fs: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return yaml.Unmarshal(b, into)
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
globPath := "nebula/hosts/*.yml"
|
|
||||||
|
|
||||||
nebulaHostFiles, err := fs.Glob(bootstrapFS, globPath)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("listing nebula host files at %q in fs: %w", globPath, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, nebulaHostPath := range nebulaHostFiles {
|
|
||||||
|
|
||||||
hostName := filepath.Base(nebulaHostPath)
|
|
||||||
hostName = strings.TrimSuffix(hostName, filepath.Ext(hostName))
|
|
||||||
|
|
||||||
var nebulaHost NebulaHost
|
|
||||||
if err := readAsYaml(&nebulaHost, nebulaHostPath); err != nil {
|
|
||||||
return nil, fmt.Errorf("reading %q as yaml: %w", nebulaHostPath, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
hosts[hostName] = Host{
|
|
||||||
Name: hostName,
|
|
||||||
Nebula: nebulaHost,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for hostName, host := range hosts {
|
|
||||||
|
|
||||||
garageHostPath := filepath.Join("garage/hosts", hostName+".yml")
|
|
||||||
|
|
||||||
var garageHost GarageHost
|
|
||||||
if err := readAsYaml(&garageHost, garageHostPath); errors.Is(err, fs.ErrNotExist) {
|
|
||||||
continue
|
|
||||||
} else if err != nil {
|
|
||||||
return nil, fmt.Errorf("reading %q as yaml: %w", garageHostPath, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
host.Garage = &garageHost
|
|
||||||
hosts[hostName] = host
|
|
||||||
}
|
|
||||||
|
|
||||||
return hosts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func loadHosts(bootstrapFS fs.FS) (map[string]Host, error) {
|
func loadHosts(bootstrapFS fs.FS) (map[string]Host, error) {
|
||||||
|
|
||||||
hosts := map[string]Host{}
|
hosts := map[string]Host{}
|
||||||
@ -131,18 +74,6 @@ func loadHosts(bootstrapFS fs.FS) (map[string]Host, error) {
|
|||||||
hosts[hostName] = host
|
hosts[hostName] = host
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(hosts) > 0 {
|
|
||||||
return hosts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// We used to have the bootstrap file laid out differently. If no hosts were
|
|
||||||
// found then the bootstrap file is probably in that format.
|
|
||||||
hosts, err = loadHostsLegacy(bootstrapFS)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("loading hosts in legacy layout from fs: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(hosts) == 0 {
|
if len(hosts) == 0 {
|
||||||
return nil, fmt.Errorf("failed to load any hosts from fs")
|
return nil, fmt.Errorf("failed to load any hosts from fs")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user