core

package
v0.28.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2024 License: Apache-2.0 Imports: 17 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckClusterResource

func CheckClusterResource(nodeList []*framework.NodeInfo, resourceRequest corev1.ResourceList, desiredPodGroupName string) error

CheckClusterResource checks if resource capacity of the cluster can satisfy <resourceRequest>. It returns an error detailing the resource gap if not satisfied; otherwise returns nil.

func GetNamespacedName

func GetNamespacedName(obj metav1.Object) string

GetNamespacedName returns the namespaced name.

Types

type Manager

type Manager interface {
	PreFilter(context.Context, *corev1.Pod) error
	Permit(context.Context, *framework.CycleState, *corev1.Pod) Status
	GetPodGroup(context.Context, *corev1.Pod) (string, *v1alpha1.PodGroup)
	GetCreationTimestamp(*corev1.Pod, time.Time) time.Time
	DeletePermittedPodGroup(string)
	CalculateAssignedPods(string, string) int
	ActivateSiblings(pod *corev1.Pod, state *framework.CycleState)
	BackoffPodGroup(string, time.Duration)
}

Manager defines the interfaces for PodGroup management.

type PermitState added in v0.28.9

type PermitState struct {
	Activate bool
}

func (*PermitState) Clone added in v0.28.9

func (s *PermitState) Clone() framework.StateData

type PodGroupManager

type PodGroupManager struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

PodGroupManager defines the scheduling operation called

func NewPodGroupManager

func NewPodGroupManager(client client.Client, snapshotSharedLister framework.SharedLister, scheduleTimeout *time.Duration, podInformer informerv1.PodInformer) *PodGroupManager

NewPodGroupManager creates a new operation object.

func (*PodGroupManager) ActivateSiblings added in v0.22.6

func (pgMgr *PodGroupManager) ActivateSiblings(pod *corev1.Pod, state *framework.CycleState)

ActivateSiblings stashes the pods belonging to the same PodGroup of the given pod in the given state, with a reserved key "kubernetes.io/pods-to-activate".

func (*PodGroupManager) BackoffPodGroup added in v0.26.7

func (pgMgr *PodGroupManager) BackoffPodGroup(pgName string, backoff time.Duration)

func (*PodGroupManager) CalculateAssignedPods

func (pgMgr *PodGroupManager) CalculateAssignedPods(podGroupName, namespace string) int

CalculateAssignedPods returns the number of pods that has been assigned nodes: assumed or bound.

func (*PodGroupManager) DeletePermittedPodGroup

func (pgMgr *PodGroupManager) DeletePermittedPodGroup(pgFullName string)

DeletePermittedPodGroup deletes a podGroup that passes Pre-Filter but reaches PostFilter.

func (*PodGroupManager) GetCreationTimestamp

func (pgMgr *PodGroupManager) GetCreationTimestamp(pod *corev1.Pod, ts time.Time) time.Time

GetCreationTimestamp returns the creation time of a podGroup or a pod.

func (*PodGroupManager) GetPodGroup

func (pgMgr *PodGroupManager) GetPodGroup(ctx context.Context, pod *corev1.Pod) (string, *v1alpha1.PodGroup)

GetPodGroup returns the PodGroup that a Pod belongs to in cache.

func (*PodGroupManager) Permit

func (pgMgr *PodGroupManager) Permit(ctx context.Context, state *framework.CycleState, pod *corev1.Pod) Status

Permit permits a pod to run, if the minMember match, it would send a signal to chan.

func (*PodGroupManager) PreFilter

func (pgMgr *PodGroupManager) PreFilter(ctx context.Context, pod *corev1.Pod) error

PreFilter filters out a pod if 1. it belongs to a podgroup that was recently denied or 2. the total number of pods in the podgroup is less than the minimum number of pods that is required to be scheduled.

type Status added in v0.22.6

type Status string
const (
	// PodGroupNotSpecified denotes no PodGroup is specified in the Pod spec.
	PodGroupNotSpecified Status = "PodGroup not specified"
	// PodGroupNotFound denotes the specified PodGroup in the Pod spec is
	// not found in API server.
	PodGroupNotFound Status = "PodGroup not found"
	Success          Status = "Success"
	Wait             Status = "Wait"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL