api

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	IllegalQoSCheckIntervalMsg                                   = "qosCheckInterval must be a positive number"
	IllegalOnlineBandwidthWatermarkPercentMsg                    = "onlineBandwidthWatermarkPercent must be a positive number between 1 and 1000"
	IllegalOfflineHighBandwidthPercentMsg                        = "offlineHighBandwidthPercent must be a positive number between 1 and 1000"
	IllegalOfflineLowBandwidthPercentMsg                         = "offlineLowBandwidthPercent must be a positive number between 1 and 1000"
	OfflineHighBandwidthPercentLessOfflineLowBandwidthPercentMsg = "offlineHighBandwidthPercent cannot be less than offlineLowBandwidthPercent"
	IllegalEvictingCPUHighWatermark                              = "evictingCPUHighWatermark must be a positive number"
	IllegalEvictingMemoryHighWatermark                           = "evictingMemoryHighWatermark must be a positive number"
	IllegalEvictingCPULowWatermark                               = "evictingCPULowWatermark must be a positive number"
	IllegalEvictingMemoryLowWatermark                            = "evictingMemoryLowWatermark must be a positive number"
	EvictingCPULowWatermarkHigherThanHighWatermark               = "cpu evicting low watermark is higher than high watermark"
	EvictingMemoryLowWatermarkHigherThanHighWatermark            = "memory evicting low watermark is higher than high watermark"
	IllegalOverSubscriptionTypes                                 = "overSubscriptionType(%s) is not supported, only supports cpu/memory"
)

Functions

This section is empty.

Types

type CPUBurst

type CPUBurst struct {
	// Enable CPUBurst or not.
	Enable *bool `json:"enable,omitempty"`
}

func (*CPUBurst) Validate

func (c *CPUBurst) Validate() []error

type CPUQos

type CPUQos struct {
	// Enable CPUQos or not.
	Enable *bool `json:"enable,omitempty"`
}

func (*CPUQos) Validate

func (c *CPUQos) Validate() []error

type ColocationConfig

type ColocationConfig struct {
	// got from node labels
	NodeLabelConfig *NodeLabelConfig `json:"-"`

	// cpu qos related config.
	CPUQosConfig *CPUQos `json:"cpuQosConfig,omitempty" configKey:"CPUQoS"`

	// cpu burst related config.
	CPUBurstConfig *CPUBurst `json:"cpuBurstConfig,omitempty" configKey:"CPUBurst"`

	// memory qos related config.
	MemoryQosConfig *MemoryQos `json:"memoryQosConfig,omitempty" configKey:"MemoryQoS"`

	// network qos related config.
	NetworkQosConfig *NetworkQos `json:"networkQosConfig,omitempty" configKey:"NetworkQoS"`

	// overSubscription related config.
	OverSubscriptionConfig *OverSubscription `json:"overSubscriptionConfig,omitempty" configKey:"OverSubscription"`

	// Evicting related config.
	EvictingConfig *Evicting `json:"evictingConfig,omitempty" configKey:"Evicting"`
}

func (*ColocationConfig) Validate

func (c *ColocationConfig) Validate() []error

type Evicting

type Evicting struct {
	// EvictingCPUHighWatermark defines the high watermark percent of cpu usage when evicting offline pods.
	EvictingCPUHighWatermark *int `json:"evictingCPUHighWatermark,omitempty"`
	// EvictingMemoryHighWatermark defines the high watermark percent of memory usage when evicting offline pods.
	EvictingMemoryHighWatermark *int `json:"evictingMemoryHighWatermark,omitempty"`
	// EvictingCPULowWatermark defines the low watermark percent of cpu usage when the node recover schedule pods.
	EvictingCPULowWatermark *int `json:"evictingCPULowWatermark,omitempty"`
	// EvictingMemoryLowWatermark defines the low watermark percent of memory usage when the node could recover schedule pods.
	EvictingMemoryLowWatermark *int `json:"evictingMemoryLowWatermark,omitempty"`
}

func (*Evicting) Validate

func (e *Evicting) Validate() []error

type MemoryQos

type MemoryQos struct {
	// Enable MemoryQos or not.
	Enable *bool `json:"enable,omitempty"`
}

func (*MemoryQos) Validate

func (m *MemoryQos) Validate() []error

type NetworkQos

type NetworkQos struct {
	// Enable NetworkQos or not.
	Enable *bool `json:"enable,omitempty"`
	// OnlineBandwidthWatermarkPercent presents the online bandwidth threshold percent.
	OnlineBandwidthWatermarkPercent *int `json:"onlineBandwidthWatermarkPercent,omitempty"`
	// OfflineLowBandwidthPercent presents the offline low bandwidth threshold percent.
	OfflineLowBandwidthPercent *int `json:"offlineLowBandwidthPercent,omitempty"`
	// OfflineHighBandwidthPercent presents the offline high bandwidth threshold percent.
	OfflineHighBandwidthPercent *int `json:"offlineHighBandwidthPercent,omitempty"`
	// QoSCheckInterval presents the network Qos checkout interval
	QoSCheckInterval *int `json:"qosCheckInterval,omitempty"`
}

func (*NetworkQos) Validate

func (n *NetworkQos) Validate() []error

type NodeLabelConfig

type NodeLabelConfig struct {
	// NodeColocationEnable enables node colocation or not.
	NodeColocationEnable *bool
	// NodeColocationEnable enables node oversubscription or not.
	NodeOverSubscriptionEnable *bool
}

NodeLabelConfig does not support getting from configmap

func (*NodeLabelConfig) Validate

func (n *NodeLabelConfig) Validate() []error

type NodesConfig

type NodesConfig struct {
	// nodes that match label selector will apply current configuration
	Selector         *metav1.LabelSelector `json:"selector,omitempty"`
	ColocationConfig `json:",inline"`
}

type OverSubscription

type OverSubscription struct {
	// Enable OverSubscription or not.
	Enable *bool `json:"enable,omitempty"`
	// OverSubscriptionTypes defines over subscription types, such as cpu,memory.
	OverSubscriptionTypes *string `json:"overSubscriptionTypes,omitempty"`
}

func (*OverSubscription) Validate

func (o *OverSubscription) Validate() []error

type Validate

type Validate interface {
	Validate() []error
}

type VolcanoAgentConfig

type VolcanoAgentConfig struct {
	// GlobalConfig is a global config for all nodes.
	GlobalConfig *ColocationConfig `json:"globalConfig,omitempty"`

	// NodesConfig will overwrite GlobalConfig for selector matched nodes, which is usually nodePool level.
	NodesConfig []NodesConfig `json:"nodesConfig,omitempty"`
}

VolcanoAgentConfig include global and node colocation config.

Jump to

Keyboard shortcuts

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