Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatNodeReason ¶ added in v1.2.0
Types ¶
type DefunctNode ¶ added in v1.2.0
type SlurmControlInterface ¶
type SlurmControlInterface interface {
// RefreshNodeCache forces the Node cache to be refreshed
RefreshNodeCache(ctx context.Context, nodeset *slinkyv1beta1.NodeSet) error
// UpdateNodeWithPodInfo handles updating the Node with its pod info
UpdateNodeWithPodInfo(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod) error
// UpdateNodeTopology handles updating the Node with its topologySpec.
UpdateNodeTopology(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod, topologySpec string) error
// MakeNodeDrain handles adding the DRAIN state to the slurm node.
MakeNodeDrain(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod, reason string, overrideReason bool) error
// MakeNodeUndrain handles removing the DRAIN state from the slurm node.
MakeNodeUndrain(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod, reason string) error
// IsNodeDrain checks if the slurm node has the DRAIN state.
IsNodeDrain(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod) (bool, error)
// IsNodeDrained checks if the slurm node is drained.
IsNodeDrained(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod) (bool, error)
// IsNodeDownForUnresponsive checks if the slurm node is unresponsive
IsNodeDownForUnresponsive(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod) (bool, error)
// IsNodeReasonOurs reports if the node reason was set by the operator.
IsNodeReasonOurs(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pod *corev1.Pod) (bool, error)
// CalculateNodeStatus returns the current state of the registered slurm nodes.
CalculateNodeStatus(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pods []*corev1.Pod) (SlurmNodeStatus, error)
// GetNodeDeadlines returns a map of node to its deadline time.Time calculated from running jobs.
GetNodeDeadlines(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pods []*corev1.Pod) (*timestore.TimeStore, error)
// GetNodesForPods returns a list of Slurm nodes associated with the NodeSet pods.
GetNodesForPods(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pods []*corev1.Pod) ([]string, bool, error)
// CheckReservationForNodeSet returns true when a reservation exists for a NodeSet
CheckReservationForNodeSet(ctx context.Context, nodeset *slinkyv1beta1.NodeSet) (bool, error)
// GetPodsUnderReservation returns a sublist of pods whose Slurm nodes are under an active MAINT reservation
GetPodsUnderReservation(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pods []*corev1.Pod) ([]*corev1.Pod, error)
// SyncReservationForNodeSet creates a reservation for a NodeSet for the Scheduled update strategy
SyncReservationForNodeSet(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, pods []*corev1.Pod) error
// DeleteReservationForNodeSet deletes a reservation associated with a NodeSet for the Scheduled update strategy
DeleteReservationForNodeSet(ctx context.Context, nodeset *slinkyv1beta1.NodeSet) error
// GetDefunctNodesForNodeSet returns defunct-node candidates owned by this NodeSet.
GetDefunctNodesForNodeSet(ctx context.Context, nodeset *slinkyv1beta1.NodeSet) ([]DefunctNode, bool, error)
// DeleteNode deletes a Slurm node by name.
DeleteNode(ctx context.Context, nodeset *slinkyv1beta1.NodeSet, nodeName string) error
}
func NewSlurmControl ¶
func NewSlurmControl(clientMap *clientmap.ClientMap) SlurmControlInterface
type SlurmNodeStatus ¶
type SlurmNodeStatus struct {
Total int32
// Base State
Allocated int32
Down int32
Error int32
Future int32
Idle int32
Mixed int32
Unknown int32
// Flag State
Completing int32
Drain int32
Fail int32
Invalid int32
InvalidReg int32
Maintenance int32
NotResponding int32
Undrain int32
// Per-node State as Conditions
NodeStates map[string][]corev1.PodCondition
}
Click to show internal directories.
Click to hide internal directories.