reserved

package
v0.38.4 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PodSchedulerKube  = "kubeScheduler"
	PodSchedulerFenzo = "fenzo"
)
View Source
const (
	CapacityGroupNameEmpty = "emptyCapacityGroup"
)

Variables

View Source
var (
	EmptyCapacityGroup = func() *capacityGroupV1.CapacityGroup {
		return &capacityGroupV1.CapacityGroup{
			ObjectMeta: metaV1.ObjectMeta{
				Name: CapacityGroupNameEmpty,
			},
			Spec: capacityGroupV1.CapacityGroupSpec{
				CapacityGroupName: CapacityGroupNameEmpty,
				ResourcePoolName:  resourcepool.PoolNameIntegration,
				SchedulerName:     PodSchedulerKube,
				ComputeResource:   util.ComputeResourcesRegular.Multiply(8),
				InstanceCount:     0,
				OriginalName:      CapacityGroupNameEmpty,
			},
		}
	}

	BasicCapacityGroup = func(name, originalName string, resourcePoolName string, shape v1.ComputeResource, count uint32) *capacityGroupV1.CapacityGroup {
		return &capacityGroupV1.CapacityGroup{
			ObjectMeta: metaV1.ObjectMeta{
				Name: name,
			},
			Spec: capacityGroupV1.CapacityGroupSpec{
				CapacityGroupName: name,
				ResourcePoolName:  resourcePoolName,
				SchedulerName:     PodSchedulerKube,
				ComputeResource:   shape,
				InstanceCount:     count,
				OriginalName:      originalName,
			},
		}
	}
)

We use functions, as K8S records are mutable

Functions

func GetBufferCapacityGroupName added in v0.19.0

func GetBufferCapacityGroupName(resourcePoolName string) string

GetBufferCapacityGroupName returns a name of a buffer capacity group given the resource pool name. A buffer capacity group name format is <resource_pool_name>buffer.

func NewCapacityGroup

func NewCapacityGroup(name string, resourcePoolName string) *capacityGroupV1.CapacityGroup

func NewRandomCapacityGroup

func NewRandomCapacityGroup(transformers ...func(node *capacityGroupV1.CapacityGroup)) *capacityGroupV1.CapacityGroup

Types

type CapacityGroupSnapshot

type CapacityGroupSnapshot struct {

	// Loaded
	CapacityGroups       []*capacityGroupV1.CapacityGroup
	CapacityGroupsByName map[string]*capacityGroupV1.CapacityGroup
	// contains filtered or unexported fields
}

func NewCapacityGroupSnapshot

func NewCapacityGroupSnapshot(client ctrlClient.Client) (*CapacityGroupSnapshot, error)

func NewStaticCapacityGroupSnapshot

func NewStaticCapacityGroupSnapshot(capacityGroups []*capacityGroupV1.CapacityGroup) *CapacityGroupSnapshot

func (*CapacityGroupSnapshot) FindOwnedByResourcePool added in v0.8.0

func (snapshot *CapacityGroupSnapshot) FindOwnedByResourcePool(resourcePoolName string) []*capacityGroupV1.CapacityGroup

func (*CapacityGroupSnapshot) ReloadCapacityGroups

func (snapshot *CapacityGroupSnapshot) ReloadCapacityGroups() error

type CapacityReservationUsage

type CapacityReservationUsage struct {
	// Reservation usage per capacity group. Buffer capacity group is not included here.
	InCapacityGroup map[string]Usage
	// Buffer capacity group name
	Buffer                         Usage
	BufferAllocatedByCapacityGroup map[string]poolV1.ComputeResource
	// Trough
	TroughUsedReservedUnallocated              poolV1.ComputeResource
	TroughUsedReservedUnallocatedOnActiveNodes poolV1.ComputeResource
	// Elastic
	Elastic                         Usage
	ElasticAllocatedByCapacityGroup map[string]poolV1.ComputeResource
	// Reservation usage for all capacity groups aggregated. Buffer usage is computed by taking over allocations from
	// all capacity groups. Buffer's `OverAllocation` is set to resources that could not be fit into the buffer.
	// Allocated and Unallocated is a sum of InCapacityGroup and Buffer.
	AllReserved Usage
}

func NewActiveCapacityReservationUsage added in v0.36.0

func NewActiveCapacityReservationUsage(snapshot *resourcepool.ResourceSnapshot,
	reservations []*capacityGroupV1.CapacityGroup, bufferName string) *CapacityReservationUsage

func NewCapacityReservationUsage

func NewCapacityReservationUsage(snapshot *resourcepool.ResourceSnapshot,
	reservations []*capacityGroupV1.CapacityGroup, bufferName string) *CapacityReservationUsage

For a given resource pool and reservations compute resource utilization per reservation. Only capacity groups associated with the given resource pool are considered.

type Usage

type Usage struct {
	Allocated      poolV1.ComputeResource
	Unallocated    poolV1.ComputeResource
	OverAllocation poolV1.ComputeResource
}

Usage represents a resource consumption within a capacity group.

func (Usage) Add added in v0.15.0

func (u Usage) Add(other Usage) Usage

type UsageMetrics added in v0.15.0

type UsageMetrics struct {
	// contains filtered or unexported fields
}

func NewUsageMetrics added in v0.15.0

func NewUsageMetrics(metricsSubsystem string, resourcePoolName string, bufferName string, leader bool) *UsageMetrics

func (*UsageMetrics) Reset added in v0.18.0

func (m *UsageMetrics) Reset()

func (*UsageMetrics) Update added in v0.15.0

func (m *UsageMetrics) Update(usage *CapacityReservationUsage)

Jump to

Keyboard shortcuts

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