github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/deisctl/cmd/k8s.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "io" 6 "sync" 7 8 "github.com/deis/deis/deisctl/backend" 9 "github.com/deis/deis/pkg/prettyprint" 10 ) 11 12 //InstallK8s Installs K8s 13 func InstallK8s(b backend.Backend) error { 14 var wg sync.WaitGroup 15 io.WriteString(Stdout, prettyprint.DeisIfy("Installing K8s...")) 16 fmt.Fprintln(Stdout, "K8s control plane...") 17 b.Create([]string{"kube-apiserver"}, &wg, Stdout, Stderr) 18 wg.Wait() 19 b.Create([]string{"kube-controller-manager", "kube-scheduler"}, &wg, Stdout, Stderr) 20 wg.Wait() 21 fmt.Fprintln(Stdout, "K8s data plane...") 22 b.Create([]string{"kube-kubelet"}, &wg, Stdout, Stderr) 23 wg.Wait() 24 fmt.Fprintln(Stdout, "K8s router mesh...") 25 b.Create([]string{"kube-proxy"}, &wg, Stdout, Stderr) 26 wg.Wait() 27 fmt.Fprintln(Stdout, "Done.\n ") 28 fmt.Fprintln(Stdout, "Please run `deisctl start k8s` to start K8s.") 29 return nil 30 } 31 32 //StartK8s starts K8s Schduler 33 func StartK8s(b backend.Backend) error { 34 var wg sync.WaitGroup 35 io.WriteString(Stdout, prettyprint.DeisIfy("Starting K8s...")) 36 fmt.Fprintln(Stdout, "K8s control plane...") 37 b.Start([]string{"kube-apiserver"}, &wg, Stdout, Stderr) 38 wg.Wait() 39 b.Start([]string{"kube-controller-manager", "kube-scheduler"}, &wg, Stdout, Stderr) 40 wg.Wait() 41 fmt.Fprintln(Stdout, "K8s data plane...") 42 b.Start([]string{"kube-kubelet"}, &wg, Stdout, Stderr) 43 wg.Wait() 44 fmt.Fprintln(Stdout, "K8s router mesh...") 45 b.Start([]string{"kube-proxy"}, &wg, Stdout, Stderr) 46 wg.Wait() 47 fmt.Fprintln(Stdout, "Done.\n ") 48 fmt.Fprintln(Stdout, "Please run `deisctl config controller set schedulerModule=k8s` to use the K8s scheduler.") 49 return nil 50 } 51 52 //StopK8s stops K8s 53 func StopK8s(b backend.Backend) error { 54 var wg sync.WaitGroup 55 io.WriteString(Stdout, prettyprint.DeisIfy("Stopping K8s...")) 56 fmt.Fprintln(Stdout, "K8s router mesh...") 57 b.Stop([]string{"kube-proxy"}, &wg, Stdout, Stderr) 58 wg.Wait() 59 fmt.Fprintln(Stdout, "K8s data plane...") 60 b.Stop([]string{"kube-kubelet"}, &wg, Stdout, Stderr) 61 wg.Wait() 62 fmt.Fprintln(Stdout, "K8s control plane...") 63 b.Stop([]string{"kube-controller-manager", "kube-scheduler"}, &wg, Stdout, Stderr) 64 wg.Wait() 65 b.Stop([]string{"kube-apiserver"}, &wg, Stdout, Stderr) 66 wg.Wait() 67 fmt.Fprintln(Stdout, "Done.\n ") 68 return nil 69 } 70 71 //UnInstallK8s uninstall K8s 72 func UnInstallK8s(b backend.Backend) error { 73 var wg sync.WaitGroup 74 io.WriteString(Stdout, prettyprint.DeisIfy("Uninstalling K8s...")) 75 fmt.Fprintln(Stdout, "K8s router mesh...") 76 b.Destroy([]string{"kube-proxy"}, &wg, Stdout, Stderr) 77 wg.Wait() 78 fmt.Fprintln(Stdout, "K8s data plane...") 79 b.Destroy([]string{"kube-kubelet"}, &wg, Stdout, Stderr) 80 wg.Wait() 81 fmt.Fprintln(Stdout, "K8s control plane...") 82 b.Destroy([]string{"kube-controller-manager", "kube-scheduler"}, &wg, Stdout, Stderr) 83 wg.Wait() 84 b.Destroy([]string{"kube-apiserver"}, &wg, Stdout, Stderr) 85 wg.Wait() 86 fmt.Fprintln(Stdout, "Done.\n ") 87 return nil 88 }