plugins

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: MIT Imports: 4 Imported by: 4

Documentation

Index

Constants

View Source
const (
	Incr = true
	Decr = false
)

Variables

View Source
var ErrVerbNotSupported = errors.New("verb not supported by the plugin")

ErrVerbNotSupported marks a verb the plugin did not advertise.

Functions

This section is empty.

Types

type Plugin

type Plugin interface {
	// CalculateDeploy plans per-workload engine and resource params without writing anything.
	CalculateDeploy(ctx context.Context, nodename string, deployCount int, resourceRequest plugintypes.WorkloadResourceRequest) (*plugintypes.CalculateDeployResponse, error)

	// CalculateRealloc plans a workload's new engine params, delta and final resource without writing anything.
	CalculateRealloc(ctx context.Context, nodename string, resource plugintypes.WorkloadResource, resourceRequest plugintypes.WorkloadResourceRequest) (*plugintypes.CalculateReallocResponse, error)

	// CalculateRemap plans engine params per workload ID from the node's usage without writing anything.
	CalculateRemap(ctx context.Context, nodename string, workloadsResource map[string]plugintypes.WorkloadResource) (*plugintypes.CalculateRemapResponse, error)

	// AddNode records a node's capacity and an empty usage, and fails on a node it already has.
	AddNode(ctx context.Context, nodename string, resource plugintypes.NodeResourceRequest, info *enginetypes.Info) (*plugintypes.AddNodeResponse, error)

	RemoveNode(ctx context.Context, nodename string) (*plugintypes.RemoveNodeResponse, error)

	GetNodesDeployCapacity(ctx context.Context, nodenames []string, resource plugintypes.WorkloadResourceRequest) (*plugintypes.GetNodesDeployCapacityResponse, error)

	SetNodeResourceCapacity(ctx context.Context, nodename string, resource plugintypes.NodeResource, resourceRequest plugintypes.NodeResourceRequest, delta, incr bool) (*plugintypes.SetNodeResourceCapacityResponse, error)

	// GetNodeResourceInfo returns the node's total and available resources.
	GetNodeResourceInfo(ctx context.Context, nodename string, workloadsResource []plugintypes.WorkloadResource) (*plugintypes.GetNodeResourceInfoResponse, error)

	// GetNodesResourceInfo returns the capacity and usage of many nodes in one call; a node the plugin never saw is left out or empty.
	GetNodesResourceInfo(ctx context.Context, nodenames []string) (*plugintypes.GetNodesResourceInfoResponse, error)

	// SetNodeResourceInfo stores a node's capacity and usage as absolute values.
	SetNodeResourceInfo(ctx context.Context, nodename string, capacity, usage plugintypes.NodeResource) (*plugintypes.SetNodeResourceInfoResponse, error)

	SetNodeResourceUsage(ctx context.Context, nodename string, resource plugintypes.NodeResource, resourceRequest plugintypes.NodeResourceRequest, workloadsResource []plugintypes.WorkloadResource, delta, incr bool) (*plugintypes.SetNodeResourceUsageResponse, error)

	GetMostIdleNode(ctx context.Context, nodenames []string) (*plugintypes.GetMostIdleNodeResponse, error)

	FixNodeResource(ctx context.Context, nodename string, workloadsResource []plugintypes.WorkloadResource) (*plugintypes.GetNodeResourceInfoResponse, error)

	GetMetricsDescription(ctx context.Context) (*plugintypes.GetMetricsDescriptionResponse, error)

	GetMetrics(ctx context.Context, nodes []plugintypes.NodeRef) (*plugintypes.GetMetricsResponse, error)

	Name() string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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