Documentation ¶
Index ¶
- func IgnoreInsufficientCapacityError(err error) error
- func IgnoreNodeClaimNotFoundError(err error) error
- func IgnoreNodeClassNotReadyError(err error) error
- func IsInsufficientCapacityError(err error) bool
- func IsNodeClaimNotFoundError(err error) bool
- func IsNodeClassNotReadyError(err error) bool
- type CloudProvider
- type DriftReason
- type InstanceType
- type InstanceTypeOverhead
- type InstanceTypes
- type InsufficientCapacityError
- type NodeClaimNotFoundError
- type NodeClassNotReadyError
- type Offering
- type Offerings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CloudProvider ¶
type CloudProvider interface { // Create launches a NodeClaim with the given resource requests and requirements and returns a hydrated // NodeClaim back with resolved NodeClaim labels for the launched NodeClaim Create(context.Context, *v1beta1.NodeClaim) (*v1beta1.NodeClaim, error) // Delete removes a NodeClaim from the cloudprovider by its provider id Delete(context.Context, *v1beta1.NodeClaim) error // Get retrieves a NodeClaim from the cloudprovider by its provider id Get(context.Context, string) (*v1beta1.NodeClaim, error) // List retrieves all NodeClaims from the cloudprovider List(context.Context) ([]*v1beta1.NodeClaim, error) // GetInstanceTypes returns instance types supported by the cloudprovider. // Availability of types or zone may vary by nodepool or over time. Regardless of // availability, the GetInstanceTypes method should always return all instance types, // even those with no offerings available. GetInstanceTypes(context.Context, *v1beta1.NodePool) ([]*InstanceType, error) // IsDrifted returns whether a NodeClaim has drifted from the provisioning requirements // it is tied to. IsDrifted(context.Context, *v1beta1.NodeClaim) (DriftReason, error) // Name returns the CloudProvider implementation name. Name() string // GetSupportedNodeClasses returns CloudProvider NodeClass that implements status.Object // NOTE: It returns a list where the first element should be the default NodeClass GetSupportedNodeClasses() []schema.GroupVersionKind }
CloudProvider interface is implemented by cloud providers to support provisioning.
type DriftReason ¶
type DriftReason string
type InstanceType ¶
type InstanceType struct { // Name of the instance type, must correspond to v1.LabelInstanceTypeStable Name string // Requirements returns a flexible set of properties that may be selected // for scheduling. Must be defined for every well known label, even if empty. Requirements scheduling.Requirements // Note that though this is an array it is expected that all the Offerings are unique from one another Offerings Offerings // Resources are the full resource capacities for this instance type Capacity v1.ResourceList // Overhead is the amount of resource overhead expected to be used by kubelet and any other system daemons outside // of Kubernetes. Overhead *InstanceTypeOverhead // contains filtered or unexported fields }
InstanceType describes the properties of a potential node (either concrete attributes of an instance of this type or supported options in the case of arrays)
func (*InstanceType) Allocatable ¶
func (i *InstanceType) Allocatable() v1.ResourceList
type InstanceTypeOverhead ¶
type InstanceTypeOverhead struct { // KubeReserved returns the default resources allocated to kubernetes system daemons by default KubeReserved v1.ResourceList // SystemReserved returns the default resources allocated to the OS system daemons by default SystemReserved v1.ResourceList // EvictionThreshold returns the resources used to maintain a hard eviction threshold EvictionThreshold v1.ResourceList }
func (InstanceTypeOverhead) Total ¶
func (i InstanceTypeOverhead) Total() v1.ResourceList
type InstanceTypes ¶
type InstanceTypes []*InstanceType
func (InstanceTypes) Compatible ¶ added in v0.34.0
func (its InstanceTypes) Compatible(requirements scheduling.Requirements) InstanceTypes
Compatible returns the list of instanceTypes based on the supported capacityType and zones in the requirements
func (InstanceTypes) OrderByPrice ¶
func (its InstanceTypes) OrderByPrice(reqs scheduling.Requirements) InstanceTypes
type InsufficientCapacityError ¶
type InsufficientCapacityError struct {
// contains filtered or unexported fields
}
InsufficientCapacityError is an error type returned by CloudProviders when a launch fails due to a lack of capacity from NodeClaim requirements
func NewInsufficientCapacityError ¶
func NewInsufficientCapacityError(err error) *InsufficientCapacityError
func (*InsufficientCapacityError) Error ¶
func (e *InsufficientCapacityError) Error() string
type NodeClaimNotFoundError ¶
type NodeClaimNotFoundError struct {
// contains filtered or unexported fields
}
NodeClaimNotFoundError is an error type returned by CloudProviders when the reason for failure is NotFound
func NewNodeClaimNotFoundError ¶
func NewNodeClaimNotFoundError(err error) *NodeClaimNotFoundError
func (*NodeClaimNotFoundError) Error ¶
func (e *NodeClaimNotFoundError) Error() string
type NodeClassNotReadyError ¶
type NodeClassNotReadyError struct {
// contains filtered or unexported fields
}
NodeClassNotReadyError is an error type returned by CloudProviders when a NodeClass that is used by the launch process doesn't have all its resolved fields
func NewNodeClassNotReadyError ¶
func NewNodeClassNotReadyError(err error) *NodeClassNotReadyError
func (*NodeClassNotReadyError) Error ¶
func (e *NodeClassNotReadyError) Error() string
type Offering ¶
type Offering struct { CapacityType string Zone string Price float64 // Available is added so that Offerings can return all offerings that have ever existed for an instance type, // so we can get historical pricing data for calculating savings in consolidation Available bool }
An Offering describes where an InstanceType is available to be used, with the expectation that its properties may be tightly coupled (e.g. the availability of an instance type in some zone is scoped to a capacity type)
type Offerings ¶
type Offerings []Offering
func (Offerings) Compatible ¶ added in v0.34.0
func (ofs Offerings) Compatible(reqs scheduling.Requirements) Offerings
Compatible returns the offerings based on the passed requirements