github.com/docker/compose-on-kubernetes@v0.5.0/cmd/debug-installer/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "flag" 6 7 "github.com/docker/compose-on-kubernetes/api/constants" 8 "github.com/docker/compose-on-kubernetes/install" 9 customflags "github.com/docker/compose-on-kubernetes/internal/flags" 10 homedir "github.com/mitchellh/go-homedir" 11 log "github.com/sirupsen/logrus" // For Google Kubernetes Engine authentication 12 _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" 13 "k8s.io/client-go/rest" 14 "k8s.io/client-go/tools/clientcmd" 15 ) 16 17 func parseOptions(uninstall *bool, options *install.UnsafeOptions) *rest.Config { 18 var logLevel string 19 flag.StringVar(&options.OptionsCommon.Namespace, "namespace", "docker", "Namespace in which to deploy") 20 flag.DurationVar(&options.OptionsCommon.ReconciliationInterval, "reconciliation-interval", constants.DefaultFullSyncInterval, "Interval of reconciliation loop") 21 flag.StringVar(&options.OptionsCommon.Tag, "tag", "latest", "Image tag") 22 flag.BoolVar(uninstall, "uninstall", false, "Uninstall") 23 flag.StringVar(&logLevel, "log-level", "info", `Set the log level ("debug"|"info"|"warn"|"error"|"fatal")`) 24 kubeconfigFlag := customflags.EnvString("kubeconfig", "~/.kube/config", "KUBECONFIG", "Path to a kubeconfig file (set to \"\" to use incluster config)") 25 flag.Parse() 26 kubeconfig := kubeconfigFlag.String() 27 28 loggerLevel, err := log.ParseLevel(logLevel) 29 if err != nil { 30 panic(err) 31 } 32 log.SetLevel(loggerLevel) 33 34 configFile, err := homedir.Expand(kubeconfig) 35 if err != nil { 36 panic(err) 37 } 38 config, err := clientcmd.BuildConfigFromFlags("", configFile) 39 if err != nil { 40 panic(err) 41 } 42 return config 43 } 44 45 func main() { 46 var uninstall bool 47 var options install.UnsafeOptions 48 options.Debug = true 49 50 config := parseOptions(&uninstall, &options) 51 52 if uninstall { 53 err := install.Uninstall(config, options.Namespace, false) 54 if err != nil { 55 panic(err) 56 } 57 err = install.WaitForUninstallCompletion(context.Background(), config, options.Namespace, false) 58 if err != nil { 59 panic(err) 60 } 61 return 62 } 63 err := install.Unsafe(context.Background(), config, options) 64 if err != nil { 65 panic(err) 66 } 67 }