Azure provider attempts to deploy with unsupported "D1" RoleSize

Bug #1398406 reported by Aaron Bentley on 2014-12-02
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Go Windows Azure Client Library
Andrew Wilkins
Andrew Wilkins

Bug Description

As of revision a1b54741, juju attempts to use the D1 RoleSize, which is not supported:

2014-12-02 11:37:29 ERROR juju.cmd supercommand.go:323 failed to bootstrap environment: cannot start bootstrap instance: POST request failed: BadRequest - Value 'D1' specified for parameter 'RoleSize' is invalid. Allowed values are 'ExtraSmall,Small,Medium,Large,ExtraLarge,A5,A6,A7,A8,A9,Basic_A0,Basic_A1,Basic_A2,Basic_A3,Basic_A4,Standard_D1,Standard_D2,Standard_D3,Standard_D4,Standard_D11,Standard_D12,Standard_D13,Standard_D14'. (http code 400: Bad Request)

Juju 1.20.10 does not error this way, therefore this is a regression.

Deploy with a1b54741:

Deploy with 1.20.1:

Aaron Bentley (abentley) wrote :
Aaron Bentley (abentley) wrote :
Changed in juju-core:
status: Triaged → In Progress
assignee: nobody → Dimiter Naydenov (dimitern)
milestone: none → 1.21
Curtis Hovey (sinzui) on 2014-12-02
no longer affects: juju-core
Dimiter Naydenov (dimitern) wrote :

The correct fix seems to be renaming "D*" role sizes in gwacl to "Standard_D*", updating pricing/disk sizes/etc. attributes of all D* role sizes (if needed; while at it), and finally updating dependencies.tsv in juju-core to use the updated gwacl.

I started working on the fix described above, but it's getting late and I wasted 2h trying to setup an azure account so I can test the fix. If the fix can't wait until tomorrow, I'm sure Andrew Wilkins can take it over easily. If it's not that urgent I'll propose a fix tomorrow.

Because the fix is in gwacl itself, we can backport it to 1.21/1.20 if needed (to take advantage of the new D* instance types).

Andrew Wilkins (axwalk) wrote :

I fixed gwacl, but there's still an issue. I now get:

ERROR failed to bootstrap environment: cannot start bootstrap instance: asynchronous operation failed: Compute.OverconstrainedAllocationRequest - The VM size (or combination of VM sizes) required by this deployment cannot be provisioned due to deployment request constraints. If possible, try relaxing constraints such as virtual network bindings, deploying to a hosted service with no other deployment in it and to a different affinity group or with no affinity group, or try deploying to a different region. (http code 403: Forbidden)

Looking into it.

Andrew Wilkins (axwalk) wrote :

Looks like it's to do with virtual networks being tied to affinity groups. I left a comment a while ago about not using Location when creating virtual networks:

// Note: the Azure documentation recommends to use
// Location when creating virtual network sites.
// We have historically used Affinity Group, and
// have observed intermittent issues when switching.

It would seem there's a guaranteed failure for D-series instances when using AG, so I'll switch it over again. It could have been that there were problems in the transitional period.

One problem that we'll have is that existing environments will not be able to provision D-series machines. We'll have to filter them out if the vnet has an affinity group.

Andrew Wilkins (axwalk) wrote :

... and now I'm finding that some locations don't have all the role sizes. More changes required.

Curtis Hovey (sinzui) on 2014-12-03
Changed in gwacl:
status: New → Fix Committed
importance: Undecided → Critical
assignee: nobody → Andrew Wilkins (axwalk)
Andrew Wilkins (axwalk) wrote :

Because of the way we've been setting up virtual networks, we cannot reliably create D-series VMs in existing environments. I've changed how we create virtual networks so that it works reliably going forward. For this reason, D-series (and above) will only be available in new environments.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers