func (c *MasterConfig) RunPersistentVolumeController(client *client.Client, namespace, recyclerImageName, recyclerServiceAccountName string) { s := c.ControllerManager provisioner, err := kctrlmgr.NewVolumeProvisioner(c.CloudProvider, s.VolumeConfiguration) if err != nil { glog.Fatal("A Provisioner could not be created, but one was expected. Provisioning will not work. This functionality is considered an early Alpha version.") } volumeController := persistentvolumecontroller.NewPersistentVolumeController( clientadapter.FromUnversionedClient(client), s.PVClaimBinderSyncPeriod.Duration, provisioner, probeRecyclableVolumePlugins(s.VolumeConfiguration, namespace, recyclerImageName, recyclerServiceAccountName), c.CloudProvider, s.ClusterName, nil, nil, nil, s.VolumeConfiguration.EnableDynamicProvisioning, ) volumeController.Run() attachDetachController, err := volumecontroller.NewAttachDetachController( clientadapter.FromUnversionedClient(client), c.Informers.Pods().Informer(), c.Informers.Nodes().Informer(), c.Informers.PersistentVolumeClaims().Informer(), c.Informers.PersistentVolumes().Informer(), c.CloudProvider, kctrlmgr.ProbeAttachableVolumePlugins(s.VolumeConfiguration)) if err != nil { glog.Fatalf("Failed to start attach/detach controller: %v", err) } else { go attachDetachController.Run(utilwait.NeverStop) } }
func (c *MasterConfig) RunPersistentVolumeAttachDetachController(client *client.Client) { s := c.ControllerManager attachDetachController, err := attachdetachcontroller.NewAttachDetachController( clientadapter.FromUnversionedClient(client), c.Informers.Pods().Informer(), c.Informers.Nodes().Informer(), c.Informers.PersistentVolumeClaims().Informer(), c.Informers.PersistentVolumes().Informer(), c.CloudProvider, kctrlmgr.ProbeAttachableVolumePlugins(s.VolumeConfiguration)) if err != nil { glog.Fatalf("Failed to start attach/detach controller: %v", err) } else { go attachDetachController.Run(utilwait.NeverStop) } }