X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4cc84d12503c936e1a32664cdee836215dc4705f..99a4dc213a58af8eb019ca270b0982286beeb5a2:/lib/cloud/azure/azure.go diff --git a/lib/cloud/azure/azure.go b/lib/cloud/azure/azure.go index ad1f8c532d..7b170958b6 100644 --- a/lib/cloud/azure/azure.go +++ b/lib/cloud/azure/azure.go @@ -491,21 +491,6 @@ func (az *azureInstanceSet) Create( } } - priority := compute.Regular - evictionPolicy := compute.Deallocate - var billingProfile compute.BillingProfile - var maxPrice float64 - if instanceType.Preemptible { - priority = compute.Spot - evictionPolicy = compute.Delete - // Setting maxPrice to -1 is the equivalent of paying spot price, up to the - // normal price. This means the node will not be pre-empted for price - // reasons. It may still be pre-empted for capacity reasons though. And - // Azure offers *no* SLA on spot instances. - maxPrice = -1 - billingProfile = compute.BillingProfile{MaxPrice: &maxPrice} - } - vmParameters := compute.VirtualMachine{ Location: &az.azconfig.Location, Tags: tags, @@ -514,9 +499,6 @@ func (az *azureInstanceSet) Create( VMSize: compute.VirtualMachineSizeTypes(instanceType.ProviderType), }, StorageProfile: storageProfile, - Priority: priority, - EvictionPolicy: evictionPolicy, - BillingProfile: &billingProfile, NetworkProfile: &compute.NetworkProfile{ NetworkInterfaces: &[]compute.NetworkInterfaceReference{ { @@ -546,6 +528,17 @@ func (az *azureInstanceSet) Create( }, } + if instanceType.Preemptible { + // Setting maxPrice to -1 is the equivalent of paying spot price, up to the + // normal price. This means the node will not be pre-empted for price + // reasons. It may still be pre-empted for capacity reasons though. And + // Azure offers *no* SLA on spot instances. + var maxPrice float64 = -1 + vmParameters.VirtualMachineProperties.Priority = compute.Spot + vmParameters.VirtualMachineProperties.EvictionPolicy = compute.Delete + vmParameters.VirtualMachineProperties.BillingProfile = &compute.BillingProfile{MaxPrice: &maxPrice} + } + vm, err := az.vmClient.createOrUpdate(az.ctx, az.azconfig.ResourceGroup, name, vmParameters) if err != nil { // Do some cleanup. Otherwise, an unbounded number of new unused nics and @@ -792,6 +785,10 @@ func (ai *azureInstance) Address() string { } } +func (ai *azureInstance) PriceHistory(arvados.InstanceType) []cloud.InstancePrice { + return nil +} + func (ai *azureInstance) RemoteUser() string { return ai.provider.azconfig.AdminUsername }