cloudprovider

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2023 License: Apache-2.0 Imports: 62 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InstanceTypesCacheKey           = "types"
	InstanceTypeZonesCacheKeyPrefix = "zones:"
)
View Source
const (
	// MaxInstanceTypes defines the number of instance type options to pass to CreateFleet
	MaxInstanceTypes = 60
)

Variables

View Source
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 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 (*CloudProvider) Create

func (c *CloudProvider) Create(ctx context.Context, machine *v1alpha5.Machine) (*v1alpha5.Machine, error)

Create a machine given the constraints.

func (*CloudProvider) Delete

func (c *CloudProvider) Delete(ctx context.Context, machine *v1alpha5.Machine) error

func (*CloudProvider) Get added in v0.23.0

func (c *CloudProvider) Get(ctx context.Context, providerID string) (*v1alpha5.Machine, error)

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 (c *CloudProvider) IsMachineDrifted(ctx context.Context, machine *v1alpha5.Machine) (bool, error)

func (*CloudProvider) List added in v0.25.0

func (c *CloudProvider) List(ctx context.Context) ([]*v1alpha5.Machine, error)

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) Get added in v0.22.0

func (p *InstanceProvider) Get(ctx context.Context, id string) (*ec2.Instance, error)

func (*InstanceProvider) List added in v0.23.0

func (p *InstanceProvider) List(ctx context.Context) ([]*ec2.Instance, 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 NewInstanceTypeProvider(ctx context.Context, sess *session.Session, ec2api ec2iface.EC2API, subnetProvider *subnet.Provider,
	unavailableOfferingsCache *awscache.UnavailableOfferings, startAsync <-chan struct{}) *InstanceTypeProvider

func (*InstanceTypeProvider) List added in v0.22.0

func (*InstanceTypeProvider) LivenessProbe added in v0.19.0

func (p *InstanceTypeProvider) LivenessProbe(req *http.Request) error

type LaunchTemplateProvider added in v0.19.0

type LaunchTemplateProvider struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewLaunchTemplateProvider added in v0.19.0

func NewLaunchTemplateProvider(ctx context.Context, ec2api ec2iface.EC2API, amiFamily *amifamily.Resolver, securityGroupProvider *securitygroup.Provider, caBundle *string, startAsync <-chan struct{}, kubeDNSIP net.IP, clusterEndpoint string) *LaunchTemplateProvider

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

type VPCLimits added in v0.19.0

type VPCLimits struct {
	Interface            int
	IPv4PerInterface     int
	IsTrunkingCompatible bool
	BranchInterface      int
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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