Documentation

Index

Constants

const CloudVolumeCreatedForClaimNameTag = "kubernetes.io/created-for/pvc/name"

CloudVolumeCreatedForClaimNameTag is a name of a tag attached to a real volume in cloud (e.g. AWS EBS or GCE PD) with name of a persistent volume claim used to create this volume.


const CloudVolumeCreatedForClaimNamespaceTag = "kubernetes.io/created-for/pvc/namespace"

CloudVolumeCreatedForClaimNamespaceTag is a name of a tag attached to a real volume in cloud (e.g. AWS EBS or GCE PD) with namespace of a persistent volume claim used to create this volume.


const CloudVolumeCreatedForVolumeNameTag = "kubernetes.io/created-for/pv/name"

CloudVolumeCreatedForVolumeNameTag is a name of a tag attached to a real volume in cloud (e.g. AWS EBS or GCE PD) with name of appropriate Kubernetes persistent volume .


Variables

This section is empty.

Functions

This section is empty.

Types

type CSIMigratedPluginManager

type CSIMigratedPluginManager interface {
	IsMigrationEnabledForPlugin(pluginName string) bool
}

CSIMigratedPluginManager keeps track of CSI migration status of a plugin

type CSINameTranslator

type CSINameTranslator interface {
	GetCSINameFromInTreeName(pluginName string) (string, error)
}

CSINameTranslator can get the CSI Driver name based on the in-tree plugin name

type ControllerParameters

type ControllerParameters struct {
	KubeClient                clientset.Interface
	SyncPeriod                time.Duration
	VolumePlugins             []vol.VolumePlugin
	Cloud                     cloudprovider.Interface
	ClusterName               string
	VolumeInformer            coreinformers.PersistentVolumeInformer
	ClaimInformer             coreinformers.PersistentVolumeClaimInformer
	ClassInformer             storageinformers.StorageClassInformer
	PodInformer               coreinformers.PodInformer
	NodeInformer              coreinformers.NodeInformer
	EventRecorder             record.EventRecorder
	EnableDynamicProvisioning bool
}

ControllerParameters contains arguments for creation of a new PersistentVolume controller.

type PersistentVolumeController

type PersistentVolumeController struct {
	NodeLister       corelisters.NodeLister
	NodeListerSynced cache.InformerSynced
	// contains filtered or unexported fields
}

PersistentVolumeController is a controller that synchronizes PersistentVolumeClaims and PersistentVolumes. It starts two cache.Controllers that watch PersistentVolume and PersistentVolumeClaim changes.

func NewController

func NewController(p ControllerParameters) (*PersistentVolumeController, error)

NewController creates a new PersistentVolume controller

func (*PersistentVolumeController) DeleteServiceAccountTokenFunc

func (ctrl *PersistentVolumeController) DeleteServiceAccountTokenFunc() func(types.UID)

func (*PersistentVolumeController) GetCloudProvider

func (ctrl *PersistentVolumeController) GetCloudProvider() cloudprovider.Interface

func (*PersistentVolumeController) GetConfigMapFunc

func (ctrl *PersistentVolumeController) GetConfigMapFunc() func(namespace, name string) (*v1.ConfigMap, error)

func (*PersistentVolumeController) GetEventRecorder

func (ctrl *PersistentVolumeController) GetEventRecorder() record.EventRecorder

func (*PersistentVolumeController) GetExec

func (adc *PersistentVolumeController) GetExec(pluginName string) utilexec.Interface

func (*PersistentVolumeController) GetHostIP

func (ctrl *PersistentVolumeController) GetHostIP() (net.IP, error)

func (*PersistentVolumeController) GetHostName

func (ctrl *PersistentVolumeController) GetHostName() string

func (*PersistentVolumeController) GetKubeClient

func (ctrl *PersistentVolumeController) GetKubeClient() clientset.Interface

func (*PersistentVolumeController) GetMounter

func (ctrl *PersistentVolumeController) GetMounter(pluginName string) mount.Interface

func (*PersistentVolumeController) GetNodeAllocatable

func (ctrl *PersistentVolumeController) GetNodeAllocatable() (v1.ResourceList, error)

func (*PersistentVolumeController) GetNodeLabels

func (ctrl *PersistentVolumeController) GetNodeLabels() (map[string]string, error)

func (*PersistentVolumeController) GetNodeName

func (ctrl *PersistentVolumeController) GetNodeName() types.NodeName

func (*PersistentVolumeController) GetPluginDir

func (ctrl *PersistentVolumeController) GetPluginDir(pluginName string) string

func (*PersistentVolumeController) GetPodPluginDir

func (ctrl *PersistentVolumeController) GetPodPluginDir(podUID types.UID, pluginName string) string

func (*PersistentVolumeController) GetPodVolumeDeviceDir

func (ctrl *PersistentVolumeController) GetPodVolumeDeviceDir(ppodUID types.UID, pluginName string) string

func (*PersistentVolumeController) GetPodVolumeDir

func (ctrl *PersistentVolumeController) GetPodVolumeDir(podUID types.UID, pluginName string, volumeName string) string

func (*PersistentVolumeController) GetPodsDir

func (ctrl *PersistentVolumeController) GetPodsDir() string

func (*PersistentVolumeController) GetSecretFunc

func (ctrl *PersistentVolumeController) GetSecretFunc() func(namespace, name string) (*v1.Secret, error)

func (*PersistentVolumeController) GetServiceAccountTokenFunc

func (ctrl *PersistentVolumeController) GetServiceAccountTokenFunc() func(_, _ string, _ *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error)

func (*PersistentVolumeController) GetSubpather

func (ctrl *PersistentVolumeController) GetSubpather() subpath.Interface

func (*PersistentVolumeController) GetVolumeDevicePluginDir

func (ctrl *PersistentVolumeController) GetVolumeDevicePluginDir(pluginName string) string

func (*PersistentVolumeController) NewWrapperMounter

func (ctrl *PersistentVolumeController) NewWrapperMounter(volName string, spec vol.Spec, pod *v1.Pod, opts vol.VolumeOptions) (vol.Mounter, error)

func (*PersistentVolumeController) NewWrapperUnmounter

func (ctrl *PersistentVolumeController) NewWrapperUnmounter(volName string, spec vol.Spec, podUID types.UID) (vol.Unmounter, error)

func (*PersistentVolumeController) Run

func (ctrl *PersistentVolumeController) Run(stopCh <-chan struct{})

Run starts all of this controller's control loops

Directories

Path Synopsis
config
config/v1alpha1
metrics
options
testing
util