Documentation
¶
Index ¶
- Constants
- Variables
- func NewInstanceType(ctx context.Context, info *ec2.InstanceTypeInfo, ...) *cloudprovider.InstanceType
- func NewPricingAPI(sess *session.Session, region string) pricingiface.PricingAPI
- type CloudProvider
- func (c *CloudProvider) Create(ctx context.Context, machine *v1alpha5.Machine) (*v1alpha5.Machine, error)
- func (c *CloudProvider) Delete(ctx context.Context, machine *v1alpha5.Machine) error
- func (c *CloudProvider) Get(ctx context.Context, providerID string) (*v1alpha5.Machine, error)
- func (c *CloudProvider) GetInstanceTypes(ctx context.Context, provisioner *v1alpha5.Provisioner) ([]*cloudprovider.InstanceType, error)
- func (c *CloudProvider) IsMachineDrifted(ctx context.Context, machine *v1alpha5.Machine) (bool, error)
- func (c *CloudProvider) List(ctx context.Context) ([]*v1alpha5.Machine, error)
- func (c *CloudProvider) LivenessProbe(req *http.Request) error
- func (c *CloudProvider) Name() string
- type InstanceProvider
- func (p *InstanceProvider) Create(ctx context.Context, nodeTemplate *v1alpha1.AWSNodeTemplate, ...) (*ec2.Instance, error)
- func (p *InstanceProvider) Delete(ctx context.Context, id string) error
- func (p *InstanceProvider) Get(ctx context.Context, id string) (*ec2.Instance, error)
- func (p *InstanceProvider) List(ctx context.Context) ([]*ec2.Instance, error)
- func (p *InstanceProvider) Update(ctx context.Context, machine *v1alpha5.Machine) (*ec2.Instance, error)
- type InstanceTypeProvider
- type LaunchTemplateProvider
- type PricingProvider
- func (p *PricingProvider) InstanceTypes() []string
- func (p *PricingProvider) LivenessProbe(req *http.Request) error
- func (p *PricingProvider) OnDemandLastUpdated() time.Time
- func (p *PricingProvider) OnDemandPrice(instanceType string) (float64, bool)
- func (p *PricingProvider) SpotLastUpdated() time.Time
- func (p *PricingProvider) SpotPrice(instanceType string, zone string) (float64, bool)
- type VPCLimits
Constants ¶
const ( InstanceTypesCacheKey = "types" InstanceTypeZonesCacheKeyPrefix = "zones:" )
const (
// MaxInstanceTypes defines the number of instance type options to pass to CreateFleet
MaxInstanceTypes = 60
)
Variables ¶
var Limits = map[string]*VPCLimits{}/* 605 elements not displayed */
VPC Limits and flags for ENI and IPv4 Addresses
Functions ¶
func NewInstanceType ¶ added in v0.19.0
func NewInstanceType(ctx context.Context, info *ec2.InstanceTypeInfo, kc *v1alpha5.KubeletConfiguration, region string, nodeTemplate *v1alpha1.AWSNodeTemplate, offerings cloudprovider.Offerings) *cloudprovider.InstanceType
func NewPricingAPI ¶ added in v0.19.0
func NewPricingAPI(sess *session.Session, region string) pricingiface.PricingAPI
NewPricingAPI returns a pricing API configured based on a particular region
Types ¶
type CloudProvider ¶
type CloudProvider struct {
// contains filtered or unexported fields
}
func New ¶ added in v0.19.0
func New(ctx awscontext.Context) *CloudProvider
func (*CloudProvider) Create ¶
func (c *CloudProvider) Create(ctx context.Context, machine *v1alpha5.Machine) (*v1alpha5.Machine, error)
Create a machine given the constraints.
func (*CloudProvider) GetInstanceTypes ¶
func (c *CloudProvider) GetInstanceTypes(ctx context.Context, provisioner *v1alpha5.Provisioner) ([]*cloudprovider.InstanceType, error)
GetInstanceTypes returns all available InstanceTypes
func (*CloudProvider) IsMachineDrifted ¶ added in v0.21.0
func (*CloudProvider) LivenessProbe ¶ added in v0.19.0
func (c *CloudProvider) LivenessProbe(req *http.Request) error
func (*CloudProvider) Name ¶ added in v0.5.3
func (c *CloudProvider) Name() string
Name returns the CloudProvider implementation name.
type InstanceProvider ¶ added in v0.19.0
type InstanceProvider struct {
// contains filtered or unexported fields
}
func NewInstanceProvider ¶ added in v0.19.0
func NewInstanceProvider(ctx context.Context, region string, ec2api ec2iface.EC2API, unavailableOfferings *cache.UnavailableOfferings, instanceTypeProvider *InstanceTypeProvider, subnetProvider *subnet.Provider, launchTemplateProvider *LaunchTemplateProvider) *InstanceProvider
func (*InstanceProvider) Create ¶ added in v0.19.0
func (p *InstanceProvider) Create(ctx context.Context, nodeTemplate *v1alpha1.AWSNodeTemplate, machine *v1alpha5.Machine, instanceTypes []*cloudprovider.InstanceType) (*ec2.Instance, error)
func (*InstanceProvider) Delete ¶ added in v0.22.0
func (p *InstanceProvider) Delete(ctx context.Context, id string) error
func (*InstanceProvider) Update ¶ added in v0.24.0
func (p *InstanceProvider) Update(ctx context.Context, machine *v1alpha5.Machine) (*ec2.Instance, error)
Update receives a machine and updates the EC2 instance with tags linking it to the machine Deprecated: This function can be removed when v1alpha6/v1beta1 migration has completed.
type InstanceTypeProvider ¶ added in v0.19.0
type InstanceTypeProvider struct {
// contains filtered or unexported fields
}
func NewInstanceTypeProvider ¶ added in v0.19.0
func (*InstanceTypeProvider) List ¶ added in v0.22.0
func (p *InstanceTypeProvider) List(ctx context.Context, kc *v1alpha5.KubeletConfiguration, nodeTemplate *v1alpha1.AWSNodeTemplate) ([]*cloudprovider.InstanceType, error)
func (*InstanceTypeProvider) LivenessProbe ¶ added in v0.19.0
func (p *InstanceTypeProvider) LivenessProbe(req *http.Request) error
type LaunchTemplateProvider ¶ added in v0.19.0
func NewLaunchTemplateProvider ¶ added in v0.19.0
func (*LaunchTemplateProvider) EnsureAll ¶ added in v0.22.0
func (p *LaunchTemplateProvider) EnsureAll(ctx context.Context, nodeTemplate *v1alpha1.AWSNodeTemplate, machine *v1alpha5.Machine, instanceTypes []*cloudprovider.InstanceType, additionalLabels map[string]string) (map[string][]*cloudprovider.InstanceType, error)
func (*LaunchTemplateProvider) Invalidate ¶ added in v0.19.0
func (p *LaunchTemplateProvider) Invalidate(ctx context.Context, ltName string, ltID string)
Invalidate deletes a launch template from cache if it exists
type PricingProvider ¶ added in v0.19.0
type PricingProvider struct {
// contains filtered or unexported fields
}
PricingProvider provides actual pricing data to the AWS cloud provider to allow it to make more informed decisions regarding which instances to launch. This is initialized at startup with a periodically updated static price list to support running in locations where pricing data is unavailable. In those cases the static pricing data provides a relative ordering that is still more accurate than our previous pricing model. In the event that a pricing update fails, the previous pricing information is retained and used which may be the static initial pricing data if pricing updates never succeed.
func NewPricingProvider ¶ added in v0.19.0
func NewPricingProvider(ctx context.Context, pricing pricingiface.PricingAPI, ec2Api ec2iface.EC2API, region string, isolatedVPC bool, startAsync <-chan struct{}) *PricingProvider
func (*PricingProvider) InstanceTypes ¶ added in v0.19.0
func (p *PricingProvider) InstanceTypes() []string
InstanceTypes returns the list of all instance types for which either a spot or on-demand price is known.
func (*PricingProvider) LivenessProbe ¶ added in v0.19.0
func (p *PricingProvider) LivenessProbe(req *http.Request) error
func (*PricingProvider) OnDemandLastUpdated ¶ added in v0.19.0
func (p *PricingProvider) OnDemandLastUpdated() time.Time
OnDemandLastUpdated returns the time that the on-demand pricing was last updated
func (*PricingProvider) OnDemandPrice ¶ added in v0.19.0
func (p *PricingProvider) OnDemandPrice(instanceType string) (float64, bool)
OnDemandPrice returns the last known on-demand price for a given instance type, returning an error if there is no known on-demand pricing for the instance type.
func (*PricingProvider) SpotLastUpdated ¶ added in v0.19.0
func (p *PricingProvider) SpotLastUpdated() time.Time
SpotLastUpdated returns the time that the spot pricing was last updated
func (*PricingProvider) SpotPrice ¶ added in v0.19.0
func (p *PricingProvider) SpotPrice(instanceType string, zone string) (float64, bool)
SpotPrice returns the last known spot price for a given instance type and zone, returning an error if there is no known spot pricing for that instance type or zone