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)
}