Documentation
¶
Index ¶
- Constants
- Variables
- func CapacityGroupResources(c *capacityGroupV1.CapacityGroup) poolV1.ComputeResource
- func GetBufferCapacityGroupName(resourcePoolName string) string
- func NewCapacityGroup(name string, resourcePoolName string) *capacityGroupV1.CapacityGroup
- func NewRandomCapacityGroup(transformers ...func(node *capacityGroupV1.CapacityGroup)) *capacityGroupV1.CapacityGroup
- type CapacityGroupSnapshot
- type CapacityReservationUsage
- type Usage
- type UsageMetrics
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 CapacityGroupResources ¶
func CapacityGroupResources(c *capacityGroupV1.CapacityGroup) poolV1.ComputeResource
func GetBufferCapacityGroupName ¶ added in v0.19.0
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.
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)
Click to show internal directories.
Click to hide internal directories.