func (c *MasterConfig) RunPersistentVolumeClaimRecycler(recyclerImageName string) { hostPathRecycler := &volume.RecyclableVolumeConfig{ ImageName: recyclerImageName, Command: []string{"/usr/share/openshift/scripts/volumes/recycler.sh"}, Args: []string{"/scrub"}, Timeout: int64(60), } nfsRecycler := &volume.RecyclableVolumeConfig{ ImageName: recyclerImageName, Command: []string{"/usr/share/openshift/scripts/volumes/recycler.sh"}, Args: []string{"/scrub"}, Timeout: int64(300), } allPlugins := []volume.VolumePlugin{} allPlugins = append(allPlugins, host_path.ProbeVolumePlugins(hostPathRecycler)...) allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(nfsRecycler)...) recycler, err := volumeclaimbinder.NewPersistentVolumeRecycler(c.KubeClient, c.ControllerManager.PVClaimBinderSyncPeriod, allPlugins) if err != nil { glog.Fatalf("Could not start PersistentVolumeRecycler: %+v", err) } recycler.Run() glog.Infof("Started Kubernetes PersistentVolumeRecycler") }
// ProbeRecyclableVolumePlugins collects all persistent volume plugins into an easy to use list. func ProbeRecyclableVolumePlugins() []volume.VolumePlugin { allPlugins := []volume.VolumePlugin{} // The list of plugins to probe is decided by the kubelet binary, not // by dynamic linking or other "magic". Plugins will be analyzed and // initialized later. allPlugins = append(allPlugins, host_path.ProbeVolumePlugins()...) allPlugins = append(allPlugins, nfs.ProbeVolumePlugins()...) return allPlugins }
// ProbeVolumePlugins collects all volume plugins into an easy to use list. func ProbeVolumePlugins() []volume.VolumePlugin { allPlugins := []volume.VolumePlugin{} // The list of plugins to probe is decided by the kubelet binary, not // by dynamic linking or other "magic". Plugins will be analyzed and // initialized later. allPlugins = append(allPlugins, aws_ebs.ProbeVolumePlugins()...) allPlugins = append(allPlugins, empty_dir.ProbeVolumePlugins()...) allPlugins = append(allPlugins, gce_pd.ProbeVolumePlugins()...) allPlugins = append(allPlugins, git_repo.ProbeVolumePlugins()...) allPlugins = append(allPlugins, host_path.ProbeVolumePlugins()...) allPlugins = append(allPlugins, nfs.ProbeVolumePlugins()...) allPlugins = append(allPlugins, secret.ProbeVolumePlugins()...) allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...) allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...) allPlugins = append(allPlugins, persistent_claim.ProbeVolumePlugins()...) return allPlugins }