func main()

in cmd/controller/main.go [36:82]


func main() {
	zapOpts := zap.Options{}
	zapOpts.BindFlags(flag.CommandLine)
	ctrl.SetLogger(zap.New(zap.UseFlagOptions(&zapOpts)))
	flag.Parse()

	ctx := context.Background()

	problem := false
	if *namespace == "" {
		setupLog.Error(nil, "missing --namespace")
		problem = true
	}

	if *volumeTypeMap == "" {
		setupLog.Error(nil, "missing --volume-type-map")
		problem = true
	}

	if problem {
		os.Exit(1)
	}

	csi.ControllerInit()

	cfg := ctrl.GetConfigOrDie()

	var attacher csi.Attacher
	if *pdStorageClass != "" {
		var err error
		attacher, err = csi.NewAttacher(ctx, cfg)
		if err != nil {
			setupLog.Error(err, "getting attacher")
			os.Exit(1)
		}
	}

	mgr, err := csi.NewManager(cfg, *namespace, *volumeTypeMap, attacher, *pdStorageClass)
	if err != nil {
		setupLog.Error(err, "new manager creation")
		os.Exit(1)
	}
	setupLog.Info("starting manager")
	err = mgr.Start(ctrl.SetupSignalHandler())
	setupLog.Error(err, "unexpected manager exit")
	os.Exit(1)
}