admission

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2026 License: AGPL-3.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Decision

type Decision struct {
	Admitted              bool   `json:"admitted"`
	Reason                Reason `json:"reason"`
	Pool                  string `json:"pool"`
	RequiredCPUReserve    int    `json:"required_cpu_reserve"`
	RequiredMemoryReserve int    `json:"required_memory_reserve_mib"`
	RemainingCPUUnits     int    `json:"remaining_cpu_units"`
	RemainingMemoryMiB    int    `json:"remaining_memory_mib"`
	RemainingAvailableMiB int    `json:"remaining_available_memory_mib"`
}

func Evaluate

func Evaluate(snapshot HostSnapshot, policy ReservePolicy, request Request) (Decision, error)

Evaluate uses one schedulable CPU unit for every requested vCPU. A CPU unit is a physical core on dedicated hardware or one provider-guaranteed vCPU on the current virtual host. No SMT or local overcommit multiplier is assumed.

type HostSnapshot

type HostSnapshot struct {
	Healthy            bool    `json:"healthy" yaml:"healthy"`
	TotalCPUUnits      int     `json:"total_cpu_units" yaml:"total_cpu_units"`
	TotalMemoryMiB     int     `json:"total_memory_mib" yaml:"total_memory_mib"`
	AvailableMemoryMiB int     `json:"available_memory_mib" yaml:"available_memory_mib"`
	AllocatedCPUUnits  int     `json:"allocated_cpu_units" yaml:"allocated_cpu_units"`
	AllocatedMemoryMiB int     `json:"allocated_memory_mib" yaml:"allocated_memory_mib"`
	FreeDiskPercent    int     `json:"free_disk_percent" yaml:"free_disk_percent"`
	PressureAvailable  bool    `json:"pressure_available" yaml:"pressure_available"`
	CPUSomeAvg10       float64 `json:"cpu_some_avg10" yaml:"cpu_some_avg10"`
	MemoryFullAvg10    float64 `json:"memory_full_avg10" yaml:"memory_full_avg10"`
	IOFullAvg10        float64 `json:"io_full_avg10" yaml:"io_full_avg10"`
	RecentOOMKills     int     `json:"recent_oom_kills" yaml:"recent_oom_kills"`
}

type Reason

type Reason string
const (
	ReasonAdmitted            Reason = "admitted"
	ReasonHostUnhealthy       Reason = "host-unhealthy"
	ReasonDiskPressure        Reason = "disk-pressure"
	ReasonPoolSaturated       Reason = "pool-saturated"
	ReasonQueueIntent         Reason = "queue-intent"
	ReasonInsufficientCPU     Reason = "insufficient-cpu"
	ReasonInsufficientMemory  Reason = "insufficient-memory"
	ReasonPressureUnavailable Reason = "pressure-unavailable"
	ReasonCPUPressure         Reason = "cpu-pressure"
	ReasonMemoryPressure      Reason = "memory-pressure"
	ReasonIOPressure          Reason = "io-pressure"
	ReasonRecentOOM           Reason = "recent-oom"
	ReasonDiagnosticWAL       Reason = "storage-high-watermark"
)

type Request

type Request struct {
	PoolName  string
	VCPU      int
	MemoryMiB int
}

type ReservePolicy

type ReservePolicy struct {
	MinimumCPUUnits int
	// MaximumFleetCPUPercent means aggregate CPU is enforced by the worker
	// cgroup. In that mode the admission ledger may commit all physical vCPU;
	// the cgroup, rather than stranded integer CPU units, preserves headroom.
	MaximumFleetCPUPercent int
	MinimumMemoryMiB       int
	MinimumPercent         int
	MinimumFreeDiskPercent int
	RequirePressure        bool
	MaxCPUSomeAvg10        float64
	MaxMemoryFullAvg10     float64
	MaxIOFullAvg10         float64
	MaxRecentOOMKills      int
}

Jump to

Keyboard shortcuts

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