Skip to content
Snippets Groups Projects
Select Git revision
  • ffd5ad917ded98b51559830d0b36c1cb5dae26ca
  • master default protected
  • v0.0.x
  • v0.0.31
  • v0.0.30
  • v0.0.29
  • v0.0.28
  • v0.0.28-rc1
  • v0.0.27
  • v0.0.26
  • v0.0.25
  • v0.0.24
  • v0.0.23
  • v0.0.22
  • v0.0.21
  • v0.0.20
  • v0.0.19
  • v0.0.18
  • v0.0.17
  • v0.0.16
  • v0.0.15
  • v0.0.14
  • v0.0.13
23 results

main.go

Blame
  • main.go 7.92 KiB
    package main
    
    import (
    	"fmt"
    	"os"
    	"os/signal"
    	"path/filepath"
    	"syscall"
    
    	"github.com/Sirupsen/logrus"
    	"github.com/pkg/errors"
    	"github.com/urfave/cli"
    
    	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    	clientset "k8s.io/client-go/kubernetes"
    	"k8s.io/client-go/rest"
    	"k8s.io/client-go/tools/clientcmd"
    	pvController "sigs.k8s.io/sig-storage-lib-external-provisioner/controller"
    )
    
    var (
    	VERSION                = "0.0.1"
    	FlagConfigFile         = "config"
    	FlagProvisionerName    = "provisioner-name"
    	EnvProvisionerName     = "PROVISIONER_NAME"
    	DefaultProvisionerName = "rancher.io/local-path"
    	FlagNamespace          = "namespace"
    	EnvNamespace           = "POD_NAMESPACE"
    	DefaultNamespace       = "local-path-storage"
    	FlagHelperImage        = "helper-image"
    	EnvHelperImage         = "HELPER_IMAGE"
    	DefaultHelperImage     = "rancher/library-busybox:1.32.1"
    	FlagServiceAccountName = "service-account-name"
    	DefaultServiceAccount  = "local-path-provisioner-service-account"
    	EnvServiceAccountName  = "SERVICE_ACCOUNT_NAME"
    	FlagKubeconfig         = "kubeconfig"
    	DefaultConfigFileKey   = "config.json"
    	DefaultConfigMapName   = "local-path-config"
    	FlagConfigMapName      = "configmap-name"
    	FlagHelperPodFile      = "helper-pod-file"
    	DefaultHelperPodFile   = "helperPod.yaml"
    	FlagWorkerThreads      = "worker-threads"
    	DefaultWorkerThreads   = 4
    )
    
    func cmdNotFound(c *cli.Context, command string) {
    	panic(fmt.Errorf("Unrecognized command: %s", command))
    }
    
    func onUsageError(c *cli.Context, err error, isSubcommand bool) error {
    	panic(fmt.Errorf("Usage error, please check your command"))
    }
    
    func RegisterShutdownChannel(done chan struct{}) {
    	sigs := make(chan os.Signal, 1)
    	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
    	go func() {
    		sig := <-sigs
    		logrus.Infof("Receive %v to exit", sig)
    		close(done)
    	}()
    }
    
    func StartCmd() cli.Command {
    	return cli.Command{
    		Name: "start",
    		Flags: []cli.Flag{
    			cli.StringFlag{
    				Name:  FlagConfigFile,
    				Usage: "Required. Provisioner configuration file.",