Documentation
¶
Index ¶
- Variables
- func ConvertToVirtualMachineIdentity(nodeIdentities []string) *armcompute.VirtualMachineIdentity
- func CreateVirtualMachine(ctx context.Context, client VirtualMachinesAPI, rg, vmName string, ...) (*armcompute.VirtualMachine, error)
- func GenerateResourceName(nodeClaimName string) string
- func GetAllSingleValuedRequirementLabels(instanceType *corecloudprovider.InstanceType) map[string]string
- func GetCapacityType(instance *armcompute.VirtualMachine) string
- func GetNICListQueryBuilder(rg string) *kql.Builder
- func GetVMListQueryBuilder(rg string) *kql.Builder
- func NewQueryRequest(subscriptionID *string, query string) *arg.QueryRequest
- func UpdateVirtualMachine(ctx context.Context, client VirtualMachinesAPI, rg, vmName string, ...) error
- type AZClient
- type AzureResourceGraphAPI
- type DefaultProvider
- func (p *DefaultProvider) Create(ctx context.Context, nodeClass *v1alpha2.AKSNodeClass, ...) (*armcompute.VirtualMachine, error)
- func (p *DefaultProvider) Delete(ctx context.Context, resourceName string) error
- func (p *DefaultProvider) DeleteNic(ctx context.Context, nicName string) error
- func (p *DefaultProvider) Get(ctx context.Context, vmName string) (*armcompute.VirtualMachine, error)
- func (p *DefaultProvider) GetNic(ctx context.Context, rg, nicName string) (*armnetwork.Interface, error)
- func (p *DefaultProvider) List(ctx context.Context) ([]*armcompute.VirtualMachine, error)
- func (p *DefaultProvider) ListNics(ctx context.Context) ([]*armnetwork.Interface, error)
- func (p *DefaultProvider) Update(ctx context.Context, vmName string, update armcompute.VirtualMachineUpdate) error
- type NetworkInterfacesAPI
- type Provider
- type Resource
- type VirtualMachineExtensionsAPI
- type VirtualMachinesAPI
Constants ¶
This section is empty.
Variables ¶
var ( NodePoolTagKey = strings.ReplaceAll(karpv1.NodePoolLabelKey, "/", "_") CapacityTypeToPriority = map[string]string{ karpv1.CapacityTypeSpot: string(compute.Spot), karpv1.CapacityTypeOnDemand: string(compute.Regular), } PriorityToCapacityType = map[string]string{ string(compute.Spot): karpv1.CapacityTypeSpot, string(compute.Regular): karpv1.CapacityTypeOnDemand, } SubscriptionQuotaReachedReason = "SubscriptionQuotaReached" ZonalAllocationFailureReason = "ZonalAllocationFailure" SKUNotAvailableReason = "SKUNotAvailable" SubscriptionQuotaReachedTTL = 1 * time.Hour SKUNotAvailableSpotTTL = 1 * time.Hour SKUNotAvailableOnDemandTTL = 23 * time.Hour )
Functions ¶
func ConvertToVirtualMachineIdentity ¶
func ConvertToVirtualMachineIdentity(nodeIdentities []string) *armcompute.VirtualMachineIdentity
func CreateVirtualMachine ¶
func CreateVirtualMachine(ctx context.Context, client VirtualMachinesAPI, rg, vmName string, vm armcompute.VirtualMachine) (*armcompute.VirtualMachine, error)
func GenerateResourceName ¶
func GetAllSingleValuedRequirementLabels ¶
func GetAllSingleValuedRequirementLabels(instanceType *corecloudprovider.InstanceType) map[string]string
GetAllSingleValuedRequirementLabels converts instanceType.Requirements to labels Like instanceType.Requirements.Labels() it uses single-valued requirements Unlike instanceType.Requirements.Labels() it does not filter out restricted Node labels
func GetCapacityType ¶
func GetCapacityType(instance *armcompute.VirtualMachine) string
func GetNICListQueryBuilder ¶ added in v0.6.2
GetNICListQueryBuilder returns a KQL query builder for listing NICs with nodepool tags
func GetVMListQueryBuilder ¶ added in v0.6.2
GetVMListQueryBuilder returns a KQL query builder for listing VMs with nodepool tags
func NewQueryRequest ¶
func NewQueryRequest(subscriptionID *string, query string) *arg.QueryRequest
func UpdateVirtualMachine ¶
func UpdateVirtualMachine(ctx context.Context, client VirtualMachinesAPI, rg, vmName string, updates armcompute.VirtualMachineUpdate) error
Types ¶
type AZClient ¶
type AZClient struct { NodeImageVersionsClient imagefamily.NodeImageVersionsAPI ImageVersionsClient imagefamily.CommunityGalleryImageVersionsAPI // SKU CLIENT is still using track 1 because skewer does not support the track 2 path. We need to refactor this once skewer supports track 2 SKUClient skuclient.SkuClient LoadBalancersClient loadbalancer.LoadBalancersAPI // contains filtered or unexported fields }
TODO: Move this to another package that more correctly reflects its usage across multiple providers
func NewAZClient ¶
func NewAZClientFromAPI ¶
func NewAZClientFromAPI( virtualMachinesClient VirtualMachinesAPI, azureResourceGraphClient AzureResourceGraphAPI, virtualMachinesExtensionClient VirtualMachineExtensionsAPI, interfacesClient NetworkInterfacesAPI, loadBalancersClient loadbalancer.LoadBalancersAPI, imageVersionsClient imagefamily.CommunityGalleryImageVersionsAPI, nodeImageVersionsClient imagefamily.NodeImageVersionsAPI, skuClient skuclient.SkuClient, ) *AZClient
type AzureResourceGraphAPI ¶
type AzureResourceGraphAPI interface {
Resources(ctx context.Context, query armresourcegraph.QueryRequest, options *armresourcegraph.ClientResourcesOptions) (armresourcegraph.ClientResourcesResponse, error)
}
type DefaultProvider ¶ added in v0.7.0
type DefaultProvider struct {
// contains filtered or unexported fields
}
func NewDefaultProvider ¶ added in v0.7.0
func NewDefaultProvider( azClient *AZClient, instanceTypeProvider instancetype.Provider, launchTemplateProvider *launchtemplate.Provider, loadBalancerProvider *loadbalancer.Provider, offeringsCache *cache.UnavailableOfferings, location string, resourceGroup string, subscriptionID string, provisionMode string, ) *DefaultProvider
func (*DefaultProvider) Create ¶ added in v0.7.0
func (p *DefaultProvider) Create(ctx context.Context, nodeClass *v1alpha2.AKSNodeClass, nodeClaim *karpv1.NodeClaim, instanceTypes []*corecloudprovider.InstanceType) (*armcompute.VirtualMachine, error)
Create an instance given the constraints. instanceTypes should be sorted by priority for spot capacity type.
func (*DefaultProvider) Delete ¶ added in v0.7.0
func (p *DefaultProvider) Delete(ctx context.Context, resourceName string) error
func (*DefaultProvider) DeleteNic ¶ added in v0.7.2
func (p *DefaultProvider) DeleteNic(ctx context.Context, nicName string) error
func (*DefaultProvider) Get ¶ added in v0.7.0
func (p *DefaultProvider) Get(ctx context.Context, vmName string) (*armcompute.VirtualMachine, error)
func (*DefaultProvider) GetNic ¶ added in v0.7.0
func (p *DefaultProvider) GetNic(ctx context.Context, rg, nicName string) (*armnetwork.Interface, error)
func (*DefaultProvider) List ¶ added in v0.7.0
func (p *DefaultProvider) List(ctx context.Context) ([]*armcompute.VirtualMachine, error)
func (*DefaultProvider) ListNics ¶ added in v0.7.2
func (p *DefaultProvider) ListNics(ctx context.Context) ([]*armnetwork.Interface, error)
ListNics returns all network interfaces in the resource group that have the nodepool tag
func (*DefaultProvider) Update ¶ added in v0.7.0
func (p *DefaultProvider) Update(ctx context.Context, vmName string, update armcompute.VirtualMachineUpdate) error
type NetworkInterfacesAPI ¶
type NetworkInterfacesAPI interface { BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters armnetwork.Interface, options *armnetwork.InterfacesClientBeginCreateOrUpdateOptions) (*runtime.Poller[armnetwork.InterfacesClientCreateOrUpdateResponse], error) BeginDelete(ctx context.Context, resourceGroupName string, networkInterfaceName string, options *armnetwork.InterfacesClientBeginDeleteOptions) (*runtime.Poller[armnetwork.InterfacesClientDeleteResponse], error) Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, options *armnetwork.InterfacesClientGetOptions) (armnetwork.InterfacesClientGetResponse, error) }
type Provider ¶
type Provider interface { Create(context.Context, *v1alpha2.AKSNodeClass, *karpv1.NodeClaim, []*corecloudprovider.InstanceType) (*armcompute.VirtualMachine, error) Get(context.Context, string) (*armcompute.VirtualMachine, error) List(context.Context) ([]*armcompute.VirtualMachine, error) Delete(context.Context, string) error // CreateTags(context.Context, string, map[string]string) error Update(context.Context, string, armcompute.VirtualMachineUpdate) error GetNic(context.Context, string, string) (*armnetwork.Interface, error) DeleteNic(context.Context, string) error ListNics(context.Context) ([]*armnetwork.Interface, error) }
type Resource ¶
type Resource = map[string]interface{}
func GetResourceData ¶
func GetResourceData(ctx context.Context, client AzureResourceGraphAPI, req arg.QueryRequest) ([]Resource, error)
Queries Azure Resource Graph using Resources() and returns a list of all pages of data.
type VirtualMachineExtensionsAPI ¶
type VirtualMachineExtensionsAPI interface {
BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, vmName string, vmExtensionName string, extensionParameters armcompute.VirtualMachineExtension, options *armcompute.VirtualMachineExtensionsClientBeginCreateOrUpdateOptions) (*runtime.Poller[armcompute.VirtualMachineExtensionsClientCreateOrUpdateResponse], error)
}
type VirtualMachinesAPI ¶
type VirtualMachinesAPI interface { BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, vmName string, parameters armcompute.VirtualMachine, options *armcompute.VirtualMachinesClientBeginCreateOrUpdateOptions) (*runtime.Poller[armcompute.VirtualMachinesClientCreateOrUpdateResponse], error) Get(ctx context.Context, resourceGroupName string, vmName string, options *armcompute.VirtualMachinesClientGetOptions) (armcompute.VirtualMachinesClientGetResponse, error) BeginUpdate(ctx context.Context, resourceGroupName string, vmName string, parameters armcompute.VirtualMachineUpdate, options *armcompute.VirtualMachinesClientBeginUpdateOptions) (*runtime.Poller[armcompute.VirtualMachinesClientUpdateResponse], error) BeginDelete(ctx context.Context, resourceGroupName string, vmName string, options *armcompute.VirtualMachinesClientBeginDeleteOptions) (*runtime.Poller[armcompute.VirtualMachinesClientDeleteResponse], error) }