func main()

in cmd/csi_driver/main.go [56:140]


func main() {
	klog.InitFlags(nil)
	flag.Parse()

	if *enableProfiling {
		mux := http.NewServeMux()
		mux.HandleFunc("/debug/pprof/", pprof.Index)
		mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
		mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
		mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
		mux.HandleFunc("/debug/pprof/trace", pprof.Trace)

		go func() {
			server := &http.Server{
				Addr:         "localhost:6060",
				Handler:      mux,
				ReadTimeout:  5 * time.Second,
				WriteTimeout: 10 * time.Second,
			}
			if err := server.ListenAndServe(); err != nil {
				klog.Fatalf("Failed to start the golang pprof server: %v", err)
			}
		}()
	}

	clientset, err := clientset.New(*kubeconfigPath, *informerResyncDurationSec)
	if err != nil {
		klog.Fatalf("Failed to configure k8s client: %v", err)
	}

	meta, err := metadata.NewMetadataService(*identityPool, *identityProvider)
	if err != nil {
		klog.Fatalf("Failed to set up metadata service: %v", err)
	}

	tm := auth.NewTokenManager(meta, clientset)
	ssm, err := storage.NewGCSServiceManager()
	if err != nil {
		klog.Fatalf("Failed to set up storage service manager: %v", err)
	}

	var mounter mount.Interface
	var mm metrics.Manager
	if *runNode {
		if *nodeID == "" {
			klog.Fatalf("NodeID cannot be empty for node service")
		}

		clientset.ConfigurePodLister(*nodeID)
		clientset.ConfigureNodeLister(*nodeID)

		mounter, err = csimounter.New("", *fuseSocketDir)
		if err != nil {
			klog.Fatalf("Failed to prepare CSI mounter: %v", err)
		}

		if *metricsEndpoint != "" {
			mm = metrics.NewMetricsManager(*metricsEndpoint, *fuseSocketDir, *maximumNumberOfCollectors, clientset)
			mm.InitializeHTTPHandler()
		}
	}

	config := &driver.GCSDriverConfig{
		Name:                  driver.DefaultName,
		Version:               version,
		NodeID:                *nodeID,
		RunController:         *runController,
		RunNode:               *runNode,
		StorageServiceManager: ssm,
		TokenManager:          tm,
		Mounter:               mounter,
		K8sClients:            clientset,
		MetricsManager:        mm,
	}

	gcfsDriver, err := driver.NewGCSDriver(config)
	if err != nil {
		klog.Fatalf("Failed to initialize Google Cloud Storage FUSE CSI Driver: %v", err)
	}

	klog.Infof("Running Google Cloud Storage FUSE CSI driver version %v", version)
	gcfsDriver.Run(*endpoint)

	os.Exit(0)
}