in cmd/csi_driver/main.go [45:102]
func main() {
klog.InitFlags(nil)
flag.Parse()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
config := &driver.LustreDriverConfig{
Name: driver.DefaultName,
Version: version,
RunController: *runController,
RunNode: *runNode,
EnableLegacyLustrePort: *enableLegacyLustrePort,
}
if *runNode {
if *nodeID == "" {
klog.Fatalf("NodeID cannot be empty for node service")
}
config.NodeID = *nodeID
meta, err := metadata.NewMetadataService(ctx)
if err != nil {
klog.Fatalf("Failed to set up metadata service: %v", err)
}
klog.Infof("Metadata service setup: %+v", meta)
config.MetadataService = meta
config.Mounter = mount.New("")
}
if *runController {
if *httpEndpoint != "" && metrics.IsGKEComponentVersionAvailable() {
mm := metrics.NewMetricsManager()
mm.InitializeHTTPHandler(*httpEndpoint, *metricsPath)
if err := mm.EmitGKEComponentVersion(); err != nil {
klog.Fatalf("Failed to emit GKE component version: %v", err)
}
}
if *lustreAPIEndpoint == "" {
*lustreAPIEndpoint = "prod"
}
cloudProvider, err := lustre.NewCloud(ctx, *cloudConfigFilePath, version, *lustreAPIEndpoint)
if err != nil {
klog.Fatalf("Failed to initialize cloud provider: %v", err)
}
config.Cloud = cloudProvider
}
lustreDriver, err := driver.NewLustreDriver(config)
if err != nil {
klog.Fatalf("Failed to initialize Lustre CSI Driver: %v", err)
}
klog.Infof("Running Lustre CSI driver version %v", version)
lustreDriver.Run(*endpoint)
}