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 GetListQueryBuilder(rg string) *kql.Builder
- func GetNic(ctx context.Context, client NetworkInterfacesAPI, rg, nicName string) (*armnetwork.Interface, error)
- func NewQueryRequest(subscriptionID *string, query string) *arg.QueryRequest
- func UpdateVirtualMachine(ctx context.Context, client VirtualMachinesAPI, rg, vmName string, ...) error
- type AZClient
- type AzureResourceGraphAPI
- type NetworkInterfacesAPI
- type Provider
- func (p *Provider) Create(ctx context.Context, nodeClass *v1alpha2.AKSNodeClass, ...) (*armcompute.VirtualMachine, error)
- func (p *Provider) Delete(ctx context.Context, resourceName string) error
- func (p *Provider) Get(ctx context.Context, vmName string) (*armcompute.VirtualMachine, error)
- func (p *Provider) List(ctx context.Context) ([]*armcompute.VirtualMachine, error)
- func (p *Provider) Update(ctx context.Context, vmName string, update armcompute.VirtualMachineUpdate) error
- type Resource
- type VirtualMachineExtensionsAPI
- type VirtualMachinesAPI
Constants ¶
This section is empty.
Variables ¶
View Source
var ( NodePoolTagKey = strings.ReplaceAll(corev1beta1.NodePoolLabelKey, "/", "_") CapacityTypeToPriority = map[string]string{ corev1beta1.CapacityTypeSpot: string(compute.Spot), corev1beta1.CapacityTypeOnDemand: string(compute.Regular), } PriorityToCapacityType = map[string]string{ string(compute.Spot): corev1beta1.CapacityTypeSpot, string(compute.Regular): corev1beta1.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 GetListQueryBuilder ¶
func GetNic ¶ added in v0.6.0
func GetNic(ctx context.Context, client NetworkInterfacesAPI, rg, nicName string) (*armnetwork.Interface, error)
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 { NetworkInterfacesClient NetworkInterfacesAPI 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, skuClient skuclient.SkuClient, ) *AZClient
type AzureResourceGraphAPI ¶
type AzureResourceGraphAPI interface {
Resources(ctx context.Context, query armresourcegraph.QueryRequest, options *armresourcegraph.ClientResourcesOptions) (armresourcegraph.ClientResourcesResponse, 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 struct { AZClient *AZClient // contains filtered or unexported fields }
func NewProvider ¶
func NewProvider( AZClient *AZClient, instanceTypeProvider *instancetype.Provider, launchTemplateProvider *launchtemplate.Provider, loadBalancerProvider *loadbalancer.Provider, offeringsCache *cache.UnavailableOfferings, location string, resourceGroup string, subscriptionID string, provisionMode string, ) *Provider
func (*Provider) Create ¶
func (p *Provider) Create(ctx context.Context, nodeClass *v1alpha2.AKSNodeClass, nodeClaim *corev1beta1.NodeClaim, instanceTypes []*corecloudprovider.InstanceType) (*armcompute.VirtualMachine, error)
Create an instance given the constraints. instanceTypes should be sorted by priority for spot capacity type.
func (*Provider) Get ¶
func (p *Provider) Get(ctx context.Context, vmName string) (*armcompute.VirtualMachine, error)
func (*Provider) List ¶
func (p *Provider) List(ctx context.Context) ([]*armcompute.VirtualMachine, error)
func (*Provider) Update ¶
func (p *Provider) Update(ctx context.Context, vmName string, update armcompute.VirtualMachineUpdate) 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) }
Click to show internal directories.
Click to hide internal directories.