github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/cmd/orbctl/machines.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/caos/orbos/pkg/kubernetes/cli" 7 8 orbcfg "github.com/caos/orbos/pkg/orb" 9 10 "github.com/caos/orbos/pkg/labels" 11 12 "github.com/caos/orbos/internal/operator/orbiter/kinds/clusters/core/infra" 13 "github.com/caos/orbos/internal/operator/orbiter/kinds/orb" 14 "github.com/caos/orbos/mntr" 15 "github.com/caos/orbos/pkg/git" 16 "github.com/caos/orbos/pkg/tree" 17 ) 18 19 func machines(monitor mntr.Monitor, gitClient *git.Client, orbConfig *orbcfg.Orb, do func(machineIDs []string, machines map[string]infra.Machine, desired *tree.Tree) error) error { 20 21 if _, err := cli.Init(monitor, orbConfig, gitClient, "", true, true, true); err != nil { 22 return err 23 } 24 25 if !gitClient.Exists(git.OrbiterFile) { 26 return mntr.ToUserError(fmt.Errorf("%s not found", git.OrbiterFile)) 27 } 28 29 monitor.Debug("Reading machines from orbiter.yml") 30 31 desired, err := gitClient.ReadTree(git.OrbiterFile) 32 if err != nil { 33 return err 34 } 35 36 listMachines := orb.ListMachines(labels.NoopOperator("ORBOS")) 37 38 orbID, err := orbConfig.ID() 39 if err != nil { 40 return err 41 } 42 43 machineIDs, machines, err := listMachines( 44 monitor, 45 desired, 46 orbID, 47 ) 48 49 if err != nil { 50 return err 51 } 52 53 return do(machineIDs, machines, desired) 54 }