Skip to content
Snippets Groups Projects
Select Git revision
  • 8d208075325f776359174333f2b45238d8fd01a4
  • 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 9.25 KiB
    package main
    
    import (
    	"context"
    	"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"
    	"k8s.io/klog/v2"
    
    	pvController "sigs.k8s.io/sig-storage-lib-external-provisioner/v8/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          = pvController.DefaultThreadiness
    	FlagProvisioningRetryCount    = "provisioning-retry-count"
    	DefaultProvisioningRetryCount = pvController.DefaultFailedProvisionThreshold
    	FlagDeletionRetryCount        = "deletion-retry-count"
    	DefaultDeletionRetryCount     = pvController.DefaultFailedDeleteThreshold
    	EnvConfigMountPath            = "CONFIG_MOUNT_PATH"
    )
    
    func cmdNotFound(_ *cli.Context, command string) {
    	panic(fmt.Errorf("Unrecognized command: %s", command))
    }
    
    func onUsageError(_ *cli.Context, err error, _ bool) error {
    	panic(errors.Wrap(err, "Usage error, please check your command"))
    }
    
    func RegisterShutdownChannel(cancelFn context.CancelFunc) {
    	sigs := make(chan os.Signal, 1)
    	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
    	go func() {
    		sig := <-sigs
    		klog.Infof("Receive %v to exit", sig)
    		cancelFn()
    	}()
    }