cloudprovider

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

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 set of nodes for each of the given constraints. 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, *v1alpha5.Constraints, []InstanceType, int, func(*v1.Node) error) 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.
	GetInstanceTypes(context.Context, *v1alpha5.Provider) ([]InstanceType, error)
	// Default is a hook for additional defaulting logic at webhook time.
	Default(context.Context, *v1alpha5.Constraints)
	// Validate is a hook for additional validation logic at webhook time.
	Validate(context.Context, *v1alpha5.Constraints) *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() string
	// Note that though this is an array it is expected that all the Offerings are unique from one another
	Offerings() []Offering
	Architecture() string
	OperatingSystems() sets.String
	CPU() *resource.Quantity
	Memory() *resource.Quantity
	Pods() *resource.Quantity
	NvidiaGPUs() *resource.Quantity
	AMDGPUs() *resource.Quantity
	AWSNeurons() *resource.Quantity
	AWSPodENI() *resource.Quantity
	Overhead() v1.ResourceList
}

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 Offering

type Offering struct {
	CapacityType string
	Zone         string
}

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 Options

type Options struct {
	ClientSet *kubernetes.Clientset
}

Options are injected into cloud providers' factories

Directories

Path Synopsis
aws
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

Jump to

Keyboard shortcuts

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