github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/networking/takeoff.go (about) 1 package networking 2 3 import ( 4 "errors" 5 6 "github.com/caos/orbos/internal/operator/core" 7 "github.com/caos/orbos/mntr" 8 "github.com/caos/orbos/pkg/git" 9 kubernetes2 "github.com/caos/orbos/pkg/kubernetes" 10 "github.com/caos/orbos/pkg/tree" 11 ) 12 13 func Takeoff(monitor mntr.Monitor, gitClient *git.Client, adapt core.AdaptFunc, k8sClient *kubernetes2.Client) func() { 14 return func() { 15 internalMonitor := monitor.WithField("operator", "networking") 16 internalMonitor.Info("Takeoff") 17 treeDesired, err := core.Parse(gitClient, "networking.yml") 18 if err != nil { 19 monitor.Error(err) 20 return 21 } 22 treeCurrent := &tree.Tree{} 23 24 if k8sClient == nil { 25 internalMonitor.Error(errors.New("kubeclient is not available")) 26 return 27 } 28 29 query, _, _, _, _, err := adapt(internalMonitor, treeDesired, treeCurrent) 30 if err != nil { 31 internalMonitor.Error(err) 32 return 33 } 34 35 ensure, err := query(k8sClient, map[string]interface{}{}) 36 if err != nil { 37 internalMonitor.Error(err) 38 return 39 } 40 41 if err := ensure(k8sClient); err != nil { 42 internalMonitor.Error(err) 43 return 44 } 45 } 46 }