Skip to content

Commit

Permalink
Merge pull request #6917 from ArcturusZhang/fix-vmss-overprovisioned
Browse files Browse the repository at this point in the history
r/`azurerm_linux|windows_virtual_machine_scale_set` - updating do_not_run_extensions_on_overprovisioned_machines
  • Loading branch information
tombuildsstuff committed May 14, 2020
2 parents 5718d54 + 215526d commit 7968f49
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 8 deletions.
Expand Up @@ -677,6 +677,11 @@ func resourceArmLinuxVirtualMachineScaleSetUpdate(d *schema.ResourceData, meta i
updateProps.VirtualMachineProfile.DiagnosticsProfile = expandBootDiagnostics(bootDiagnosticsRaw)
}

if d.HasChange("do_not_run_extensions_on_overprovisioned_machines") {
v := d.Get("do_not_run_extensions_on_overprovisioned_machines").(bool)
updateProps.DoNotRunExtensionsOnOverprovisionedVMs = utils.Bool(v)
}

if d.HasChange("scale_in_policy") {
scaleInPolicy := d.Get("scale_in_policy").(string)
updateProps.ScaleInPolicy = &compute.ScaleInPolicy{
Expand Down
Expand Up @@ -140,7 +140,46 @@ func TestAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProv
CheckDestroy: testCheckAzureRMLinuxVirtualMachineScaleSetDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data),
Config: testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, true),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
},
})
}

func TestAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachinesUpdate(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_linux_virtual_machine_scale_set", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMLinuxVirtualMachineScaleSetDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, false),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
{
Config: testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, true),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
{
Config: testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, false),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
),
Expand Down Expand Up @@ -761,7 +800,7 @@ resource "azurerm_linux_virtual_machine_scale_set" "test" {
`, template, data.RandomInteger, customData)
}

func testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data acceptance.TestData) string {
func testAccAzureRMLinuxVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data acceptance.TestData, enabled bool) string {
template := testAccAzureRMLinuxVirtualMachineScaleSet_template(data)
return fmt.Sprintf(`
%s
Expand All @@ -777,7 +816,7 @@ resource "azurerm_linux_virtual_machine_scale_set" "test" {
overprovision = true
disable_password_authentication = false
do_not_run_extensions_on_overprovisioned_machines = true
do_not_run_extensions_on_overprovisioned_machines = %t
source_image_reference {
publisher = "Canonical"
Expand All @@ -802,7 +841,7 @@ resource "azurerm_linux_virtual_machine_scale_set" "test" {
}
}
}
`, template, data.RandomInteger)
`, template, data.RandomInteger, enabled)
}

func testAccAzureRMLinuxVirtualMachineScaleSet_otherPrioritySpot(data acceptance.TestData, evictionPolicy string) string {
Expand Down
Expand Up @@ -162,7 +162,46 @@ func TestAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverPr
CheckDestroy: testCheckAzureRMWindowsVirtualMachineScaleSetDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data),
Config: testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, true),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMWindowsVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
},
})
}

func TestAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachinesUpdate(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_windows_virtual_machine_scale_set", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMWindowsVirtualMachineScaleSetDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, false),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMWindowsVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
{
Config: testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, true),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMWindowsVirtualMachineScaleSetExists(data.ResourceName),
),
},
data.ImportStep(
"admin_password",
),
{
Config: testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data, false),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMWindowsVirtualMachineScaleSetExists(data.ResourceName),
),
Expand Down Expand Up @@ -921,7 +960,7 @@ resource "azurerm_windows_virtual_machine_scale_set" "test" {
`, template, customData)
}

func testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data acceptance.TestData) string {
func testAccAzureRMWindowsVirtualMachineScaleSet_otherDoNotRunExtensionsOnOverProvisionedMachines(data acceptance.TestData, enabled bool) string {
template := testAccAzureRMWindowsVirtualMachineScaleSet_template(data)
return fmt.Sprintf(`
%s
Expand All @@ -936,7 +975,7 @@ resource "azurerm_windows_virtual_machine_scale_set" "test" {
admin_password = "P@ssword1234!"
overprovision = true
do_not_run_extensions_on_overprovisioned_machines = true
do_not_run_extensions_on_overprovisioned_machines = %t
source_image_reference {
publisher = "MicrosoftWindowsServer"
Expand All @@ -961,7 +1000,7 @@ resource "azurerm_windows_virtual_machine_scale_set" "test" {
}
}
}
`, template)
`, template, enabled)
}

func testAccAzureRMWindowsVirtualMachineScaleSet_otherEnableAutomaticUpdatesDisabled(data acceptance.TestData) string {
Expand Down
Expand Up @@ -707,6 +707,11 @@ func resourceArmWindowsVirtualMachineScaleSetUpdate(d *schema.ResourceData, meta
updateProps.VirtualMachineProfile.DiagnosticsProfile = expandBootDiagnostics(bootDiagnosticsRaw)
}

if d.HasChange("do_not_run_extensions_on_overprovisioned_machines") {
v := d.Get("do_not_run_extensions_on_overprovisioned_machines").(bool)
updateProps.DoNotRunExtensionsOnOverprovisionedVMs = utils.Bool(v)
}

if d.HasChange("scale_in_policy") {
scaleInPolicy := d.Get("scale_in_policy").(string)
updateProps.ScaleInPolicy = &compute.ScaleInPolicy{
Expand Down

0 comments on commit 7968f49

Please sign in to comment.