type ConflictReason …
type ConflictReasons …
func (reasons ConflictReasons) Len() int { … }
func (reasons ConflictReasons) Less(i, j int) bool { … }
func (reasons ConflictReasons) Swap(i, j int) { … }
const ErrReasonBindConflict …
const ErrReasonNodeConflict …
const ErrReasonNotEnoughSpace …
const ErrReasonPVNotExist …
type BindingInfo …
func (b *BindingInfo) StorageClassName() string { … }
type StorageResource …
func (b *BindingInfo) StorageResource() *StorageResource { … }
type PodVolumes …
type InTreeToCSITranslator …
type SchedulerVolumeBinder …
type PodVolumeClaims …
type volumeBinder …
var _ …
type CapacityCheck …
func NewVolumeBinder(
logger klog.Logger,
kubeClient clientset.Interface,
podInformer coreinformers.PodInformer,
nodeInformer coreinformers.NodeInformer,
csiNodeInformer storageinformers.CSINodeInformer,
pvcInformer coreinformers.PersistentVolumeClaimInformer,
pvInformer coreinformers.PersistentVolumeInformer,
storageClassInformer storageinformers.StorageClassInformer,
capacityCheck CapacityCheck,
bindTimeout time.Duration) SchedulerVolumeBinder { … }
func (b *volumeBinder) FindPodVolumes(logger klog.Logger, pod *v1.Pod, podVolumeClaims *PodVolumeClaims, node *v1.Node) (podVolumes *PodVolumes, reasons ConflictReasons, err error) { … }
func (b *volumeBinder) AssumePodVolumes(logger klog.Logger, assumedPod *v1.Pod, nodeName string, podVolumes *PodVolumes) (allFullyBound bool, err error) { … }
func (b *volumeBinder) RevertAssumedPodVolumes(podVolumes *PodVolumes) { … }
func (b *volumeBinder) BindPodVolumes(ctx context.Context, assumedPod *v1.Pod, podVolumes *PodVolumes) (err error) { … }
func getPodName(pod *v1.Pod) string { … }
func getPVCName(pvc *v1.PersistentVolumeClaim) string { … }
func (b *volumeBinder) bindAPIUpdate(ctx context.Context, pod *v1.Pod, bindings []*BindingInfo, claimsToProvision []*v1.PersistentVolumeClaim) error { … }
var versioner …
func (b *volumeBinder) checkBindings(logger klog.Logger, pod *v1.Pod, bindings []*BindingInfo, claimsToProvision []*v1.PersistentVolumeClaim) (bool, error) { … }
func (b *volumeBinder) isVolumeBound(logger klog.Logger, pod *v1.Pod, vol *v1.Volume) (bound bool, pvc *v1.PersistentVolumeClaim, err error) { … }
func (b *volumeBinder) isPVCBound(logger klog.Logger, namespace, pvcName string) (bool, *v1.PersistentVolumeClaim, error) { … }
func (b *volumeBinder) isPVCFullyBound(pvc *v1.PersistentVolumeClaim) bool { … }
func (b *volumeBinder) arePodVolumesBound(logger klog.Logger, pod *v1.Pod) bool { … }
func (b *volumeBinder) GetPodVolumeClaims(logger klog.Logger, pod *v1.Pod) (podVolumeClaims *PodVolumeClaims, err error) { … }
func (b *volumeBinder) checkBoundClaims(logger klog.Logger, claims []*v1.PersistentVolumeClaim, node *v1.Node, pod *v1.Pod) (bool, bool, error) { … }
func (b *volumeBinder) findMatchingVolumes(logger klog.Logger, pod *v1.Pod, claimsToBind []*v1.PersistentVolumeClaim, unboundVolumesDelayBinding map[string][]*v1.PersistentVolume, node *v1.Node) (foundMatches bool, bindings []*BindingInfo, unboundClaims []*v1.PersistentVolumeClaim, err error) { … }
func (b *volumeBinder) checkVolumeProvisions(logger klog.Logger, pod *v1.Pod, claimsToProvision []*v1.PersistentVolumeClaim, node *v1.Node) (provisionSatisfied, sufficientStorage bool, dynamicProvisions []*v1.PersistentVolumeClaim, err error) { … }
func (b *volumeBinder) revertAssumedPVs(bindings []*BindingInfo) { … }
func (b *volumeBinder) revertAssumedPVCs(claims []*v1.PersistentVolumeClaim) { … }
func (b *volumeBinder) hasEnoughCapacity(logger klog.Logger, provisioner string, claim *v1.PersistentVolumeClaim, storageClass *storagev1.StorageClass, node *v1.Node) (bool, error) { … }
func capacitySufficient(capacity *storagev1.CSIStorageCapacity, sizeInBytes int64) bool { … }
func volumeLimit(capacity *storagev1.CSIStorageCapacity) *resource.Quantity { … }
func (b *volumeBinder) nodeHasAccess(logger klog.Logger, node *v1.Node, capacity *storagev1.CSIStorageCapacity) bool { … }
type byPVCSize …
func (a byPVCSize) Len() int { … }
func (a byPVCSize) Swap(i, j int) { … }
func (a byPVCSize) Less(i, j int) bool { … }
func isCSIMigrationOnForPlugin(pluginName string) bool { … }
func isPluginMigratedToCSIOnNode(pluginName string, csiNode *storagev1.CSINode) bool { … }
func (b *volumeBinder) tryTranslatePVToCSI(logger klog.Logger, pv *v1.PersistentVolume, csiNode *storagev1.CSINode) (*v1.PersistentVolume, error) { … }