func runCmdStatus(cmd *cobra.Command, args []string) { cfg := cluster.NewDefaultConfig(VERSION) err := cluster.DecodeConfigFromFile(cfg, rootOpts.ConfigPath) if err != nil { stderr("Unable to load cluster config: %v", err) os.Exit(1) } c := cluster.New(cfg, newAWSConfig(cfg)) info, err := c.Info() if err != nil { stderr("Failed fetching cluster info: %v", err) os.Exit(1) } fmt.Print(info.String()) }
func runCmdDestroy(cmd *cobra.Command, args []string) { cfg := cluster.NewDefaultConfig(VERSION) err := cluster.DecodeConfigFromFile(cfg, rootOpts.ConfigPath) if err != nil { stderr("Unable to load cluster config: %v", err) os.Exit(1) } c := cluster.New(cfg, newAWSConfig(cfg)) if err := c.Destroy(); err != nil { stderr("Failed destroying cluster: %v", err) os.Exit(1) } clusterDir := path.Join("clusters", cfg.ClusterName) if err := os.RemoveAll(clusterDir); err != nil { stderr("Failed removing local cluster directory: %v", err) os.Exit(1) } fmt.Println("Destroyed cluster") }
func runCmdUp(cmd *cobra.Command, args []string) { cfg := cluster.NewDefaultConfig(VERSION) err := cluster.DecodeConfigFromFile(cfg, rootOpts.ConfigPath) if err != nil { stderr("Unable to load cluster config: %v", err) os.Exit(1) } c := cluster.New(cfg, newAWSConfig(cfg)) clusterDir, err := filepath.Abs(path.Join("clusters", cfg.ClusterName)) if err != nil { stderr("Unable to expand cluster directory to absolute path: %v", err) os.Exit(1) } if err := os.MkdirAll(clusterDir, 0700); err != nil { stderr("Failed creating cluster workspace %s: %v", clusterDir, err) os.Exit(1) } tlsConfig, err := initTLS(cfg, clusterDir) if err != nil { stderr("Failed initializing TLS infrastructure: %v", err) os.Exit(1) } fmt.Println("Initialized TLS infrastructure") kubeconfig, err := newKubeconfig(cfg, tlsConfig) if err != nil { stderr("Failed rendering kubeconfig: %v", err) os.Exit(1) } kubeconfigPath := path.Join(clusterDir, "kubeconfig") if err := ioutil.WriteFile(kubeconfigPath, kubeconfig, 0600); err != nil { stderr("Failed writing kubeconfig to %s: %v", kubeconfigPath, err) os.Exit(1) } fmt.Printf("Wrote kubeconfig to %s\n", kubeconfigPath) fmt.Println("Waiting for cluster creation...") if err := c.Create(tlsConfig); err != nil { stderr("Failed creating cluster: %v", err) os.Exit(1) } fmt.Println("Successfully created cluster") fmt.Println("") info, err := c.Info() if err != nil { stderr("Failed fetching cluster info: %v", err) os.Exit(1) } fmt.Printf(info.String()) }