package nodevolumelimits
import "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits"
Index ¶
- Constants
- func NewAzureDisk(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
- func NewCSI(_ context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
- func NewCinder(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
- func NewEBS(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
- func NewGCEPD(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
- type CSILimits
- func (pl *CSILimits) EventsToRegister() []framework.ClusterEventWithHint
- func (pl *CSILimits) Filter(ctx context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status
- func (pl *CSILimits) Name() string
- func (pl *CSILimits) PreFilter(ctx context.Context, _ *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status)
- func (pl *CSILimits) PreFilterExtensions() framework.PreFilterExtensions
- type InTreeToCSITranslator
- type VolumeFilter
Constants ¶
const ( // ErrReasonMaxVolumeCountExceeded is used for MaxVolumeCount predicate error. ErrReasonMaxVolumeCountExceeded = "node(s) exceed max volume count" // KubeMaxPDVols defines the maximum number of PD Volumes per kubelet. KubeMaxPDVols = "KUBE_MAX_PD_VOLS" )
const AzureDiskName = names.AzureDiskLimits
AzureDiskName is the name of the plugin used in the plugin registry and configurations.
const CSIName = names.NodeVolumeLimits
CSIName is the name of the plugin used in the plugin registry and configurations.
const CinderName = names.CinderLimits
CinderName is the name of the plugin used in the plugin registry and configurations.
EBSName is the name of the plugin used in the plugin registry and configurations.
const GCEPDName = names.GCEPDLimits
GCEPDName is the name of the plugin used in the plugin registry and configurations.
Functions ¶
func NewAzureDisk ¶
func NewAzureDisk(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
NewAzureDisk returns function that initializes a new plugin and returns it.
func NewCSI ¶
func NewCSI(_ context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
NewCSI initializes a new plugin and returns it.
func NewCinder ¶
func NewCinder(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
NewCinder returns function that initializes a new plugin and returns it.
func NewEBS ¶
func NewEBS(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
NewEBS returns function that initializes a new plugin and returns it.
func NewGCEPD ¶
func NewGCEPD(ctx context.Context, _ runtime.Object, handle framework.Handle, fts feature.Features) (framework.Plugin, error)
NewGCEPD returns function that initializes a new plugin and returns it.
Types ¶
type CSILimits ¶
type CSILimits struct {
// contains filtered or unexported fields
}
CSILimits is a plugin that checks node volume limits.
func (*CSILimits) EventsToRegister ¶
func (pl *CSILimits) EventsToRegister() []framework.ClusterEventWithHint
EventsToRegister returns the possible events that may make a Pod failed by this plugin schedulable.
func (*CSILimits) Filter ¶
func (pl *CSILimits) Filter(ctx context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status
Filter invoked at the filter extension point.
func (*CSILimits) Name ¶
Name returns name of the plugin. It is used in logs, etc.
func (*CSILimits) PreFilter ¶
func (pl *CSILimits) PreFilter(ctx context.Context, _ *framework.CycleState, pod *v1.Pod) (*framework.PreFilterResult, *framework.Status)
PreFilter invoked at the prefilter extension point
If the pod haven't those types of volumes, we'll skip the Filter phase
func (*CSILimits) PreFilterExtensions ¶
func (pl *CSILimits) PreFilterExtensions() framework.PreFilterExtensions
PreFilterExtensions returns prefilter extensions, pod add and remove.
type InTreeToCSITranslator ¶
type InTreeToCSITranslator interface { IsPVMigratable(pv *v1.PersistentVolume) bool IsInlineMigratable(vol *v1.Volume) bool IsMigratableIntreePluginByName(inTreePluginName string) bool GetInTreePluginNameFromSpec(pv *v1.PersistentVolume, vol *v1.Volume) (string, error) GetCSINameFromInTreeName(pluginName string) (string, error) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) }
InTreeToCSITranslator contains methods required to check migratable status and perform translations from InTree PV's to CSI
type VolumeFilter ¶
type VolumeFilter struct { // Filter normal volumes FilterVolume func(vol *v1.Volume) (id string, relevant bool) FilterPersistentVolume func(pv *v1.PersistentVolume) (id string, relevant bool) // MatchProvisioner evaluates if the StorageClass provisioner matches the running predicate MatchProvisioner func(sc *storage.StorageClass) (relevant bool) // IsMigrated returns a boolean specifying whether the plugin is migrated to a CSI driver IsMigrated func(csiNode *storage.CSINode) bool }
VolumeFilter contains information on how to filter PD Volumes when checking PD Volume caps.
Source Files ¶
csi.go non_csi.go utils.go
- Version
- v1.29.0
- Published
- Dec 13, 2023
- Platform
- js/wasm
- Imports
- 27 packages
- Last checked
- 7 minutes ago –
Tools for package owners.