Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CloudProvider ¶
type CloudProvider interface {
// Create a node given constraints and instance type options. This API uses a
// callback pattern to enable cloudproviders to batch capacity creation
// requests. The callback must be called with a theoretical node object that
// is fulfilled by the cloud providers capacity creation request.
Create(context.Context, *NodeRequest) (*v1.Node, error)
// Delete node in cloudprovider
Delete(context.Context, *v1.Node) error
// GetInstanceTypes returns instance types supported by the cloudprovider.
// Availability of types or zone may vary by provisioner or over time. Regardless of
// availability, the GetInstanceTypes method should always return all instance types,
// even those with no offerings available.
GetInstanceTypes(context.Context, *v1alpha5.Provider) ([]InstanceType, error)
// Default is a hook for additional defaulting logic at webhook time.
Default(context.Context, *v1alpha5.Provisioner)
// Validate is a hook for additional validation logic at webhook time.
Validate(context.Context, *v1alpha5.Provisioner) *apis.FieldError
// Name returns the CloudProvider implementation name.
Name() string
}
CloudProvider interface is implemented by cloud providers to support provisioning.
type InstanceType ¶
type InstanceType interface {
// 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() []Offering
// Resources are the full allocatable resource capacities for this instance type
Resources() v1.ResourceList
// Overhead is the amount of resource overhead expected to be used by kubelet and any other system daemons outside
// of Kubernetes.
Overhead() v1.ResourceList
// Price is a metric that is used to optimize pod placement onto nodes. This can be an actual monetary price per hour
// for the instance type, or just a weighting where lower 'prices' are preferred.
Price() float64
}
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)
type NodeRequest ¶ added in v0.8.0
type NodeRequest struct {
Template *scheduling.NodeTemplate
InstanceTypeOptions []InstanceType
}
Directories
¶
| Path | Synopsis |
|---|---|
|
apis/v1alpha1
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=karpenter.k8s.aws
|
+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=karpenter.k8s.aws |
Click to show internal directories.
Click to hide internal directories.