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  }