From a26b836b9498e8815dacb6febf3da00435aef5a1 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 12:48:41 -0700 Subject: [PATCH 01/10] Added MSI support to scale sets by adding the Identity attribute. Virtually identical to recent MSI support for stand-alone VMs --- .../resource_arm_virtual_machine_scale_set.go | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index f649477c4f2e..b6e7eb22466f 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -34,9 +34,32 @@ func resourceArmVirtualMachineScaleSet() *schema.Resource { "location": locationSchema(), "resource_group_name": resourceGroupNameSchema(), - +q "zones": zonesSchema(), + "identity": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Required: true, + DiffSuppressFunc: ignoreCaseDiffSuppressFunc, + ValidateFunc: validation.StringInSlice([]string{ + "SystemAssigned", + }, true), + }, + "principal_id": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "sku": { Type: schema.TypeSet, Required: true, @@ -639,6 +662,13 @@ func resourceArmVirtualMachineScaleSetCreate(d *schema.ResourceData, meta interf Zones: zones, } + if _, ok := d.GetOk("identity"); ok { + log.Printf("[DEBUG] attempting to enable MSI") + scaleSetParams.Identity = expandAzureRmVirtualMachineScaleSetIdentity(d) + } else { + log.Printf("[DEBUG] MSI failed") + } + if _, ok := d.GetOk("plan"); ok { plan, err := expandAzureRmVirtualMachineScaleSetPlan(d) if err != nil { @@ -701,6 +731,8 @@ func resourceArmVirtualMachineScaleSetRead(d *schema.ResourceData, meta interfac return fmt.Errorf("[DEBUG] Error setting Virtual Machine Scale Set Sku error: %#v", err) } + d.Set("identity", flattenAzureRmVirtualMachineScaleSetIdentity(resp.Identity)) + properties := resp.VirtualMachineScaleSetProperties d.Set("upgrade_policy_mode", properties.UpgradePolicy.Mode) @@ -803,6 +835,22 @@ func resourceArmVirtualMachineScaleSetDelete(d *schema.ResourceData, meta interf return nil } +func flattenAzureRmVirtualMachineScaleSetIdentity(identity *compute.VirtualMachineScaleSetIdentity) []interface{} { + log.Printf("[DEBUG] entered flattenAzureRmVirtualMachineScaleSetIdentity") + + if identity == nil { + return make([]interface{}, 0) + } + + result := make(map[string]interface{}) + result["type"] = string(identity.Type) + if identity.PrincipalID != nil { + result["principal_id"] = *identity.PrincipalID + } + + return []interface{}{result} +} + func flattenAzureRmVirtualMachineScaleSetOsProfileLinuxConfig(config *compute.LinuxConfiguration) []interface{} { result := make(map[string]interface{}) result["disable_password_authentication"] = *config.DisablePasswordAuthentication @@ -1422,6 +1470,16 @@ func expandAzureRMVirtualMachineScaleSetsDiagnosticProfile(d *schema.ResourceDat return diagnosticsProfile } +func expandAzureRmVirtualMachineScaleSetIdentity(d *schema.ResourceData) *compute.VirtualMachineScaleSetIdentity { + v := d.Get("identity") + identities := v.([]interface{}) + identity := identities[0].(map[string]interface{}) + identityType := identity["type"].(string) + return &compute.VirtualMachineScaleSetIdentity{ + Type: compute.ResourceIdentityType(identityType), + } +} + func expandAzureRMVirtualMachineScaleSetsStorageProfileOsDisk(d *schema.ResourceData) (*compute.VirtualMachineScaleSetOSDisk, error) { osDiskConfigs := d.Get("storage_profile_os_disk").(*schema.Set).List() From af340d487dc626751d5d410a92a3246a09f51244 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 13:19:24 -0700 Subject: [PATCH 02/10] Added documentation for enabling Managed Service Identity (MSI) on scale sets. --- .../r/virtual_machine_scale_set.html.markdown | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/website/docs/r/virtual_machine_scale_set.html.markdown b/website/docs/r/virtual_machine_scale_set.html.markdown index b15117d1e51d..153d90e60569 100644 --- a/website/docs/r/virtual_machine_scale_set.html.markdown +++ b/website/docs/r/virtual_machine_scale_set.html.markdown @@ -270,6 +270,41 @@ The following arguments are supported: * `tier` - (Optional) Specifies the tier of virtual machines in a scale set. Possible values, `standard` or `basic`. * `capacity` - (Required) Specifies the number of virtual machines in the scale set. +`identity` supports the following: + +* `type` - (Required) Specifies the identity type of the virtual machine. The only allowable value is `SystemAssigned`. To enable Managed Service Identity (MSI) on all machines in the scale set, an extension with the type "ManagedIdentityExtensionForWindows" or "ManagedIdentityExtensionForLinux" must also be added. The scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. + +```hcl +resource "azurerm_virtual_machine_scale_set" "vmss_test" { + name = "vm-scaleset" + resource_group_name = "${azurerm_resource_group.vmss_test.name}" + location = "${azurerm_resource_group.vmss_test.location}" + + sku { + name = "${var.vm_sku}" + tier = "Standard" + capacity = "${var.instance_count}" + } + + identity { + type = "systemAssigned" + } + + extension { + name = "MSILinuxExtension" + publisher = "Microsoft.ManagedIdentity" + type = "ManagedIdentityExtensionForLinux" + type_handler_version = "1.0" + auto_upgrade_minor_version = true + settings = "{\"port\": 50342}" + protected_settings = "{}" + } + + output "principal_id" { + value = "${lookup(azurerm_virtual_machine.vmss_test.identity[0], "principal_id")}" + } +``` + `os_profile` supports the following: * `computer_name_prefix` - (Required) Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 9 characters long for windows images and 1 - 58 for linux. Changing this forces a new resource to be created. From 2eba5175b73e3e0babac6070fd6633e09185ff94 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 13:30:06 -0700 Subject: [PATCH 03/10] Removed extraneous character --- azurerm/resource_arm_virtual_machine_scale_set.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index b6e7eb22466f..06bb63eada63 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -34,7 +34,7 @@ func resourceArmVirtualMachineScaleSet() *schema.Resource { "location": locationSchema(), "resource_group_name": resourceGroupNameSchema(), -q + "zones": zonesSchema(), "identity": { From 8a227431238ffe9181a18ac6c5db02bf4038b1bc Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 15:49:39 -0700 Subject: [PATCH 04/10] removed debug line --- azurerm/resource_arm_virtual_machine_scale_set.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index 06bb63eada63..c6bf8714f092 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -836,8 +836,6 @@ func resourceArmVirtualMachineScaleSetDelete(d *schema.ResourceData, meta interf } func flattenAzureRmVirtualMachineScaleSetIdentity(identity *compute.VirtualMachineScaleSetIdentity) []interface{} { - log.Printf("[DEBUG] entered flattenAzureRmVirtualMachineScaleSetIdentity") - if identity == nil { return make([]interface{}, 0) } From 44ac146ff9931fbd1fc070b5407093207bf57701 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 22:49:32 -0700 Subject: [PATCH 05/10] Updates to address PR review comments: - Removed debug logging statements and some related code - Removed superfluous lines from the example HCL - Copy edit to readme text - Added acceptance test --- .../resource_arm_virtual_machine_scale_set.go | 3 - ...urce_arm_virtual_machine_scale_set_test.go | 138 +++++++++++++++++- .../r/virtual_machine_scale_set.html.markdown | 12 +- 3 files changed, 142 insertions(+), 11 deletions(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index c6bf8714f092..8b34b3fe58bd 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -663,10 +663,7 @@ func resourceArmVirtualMachineScaleSetCreate(d *schema.ResourceData, meta interf } if _, ok := d.GetOk("identity"); ok { - log.Printf("[DEBUG] attempting to enable MSI") scaleSetParams.Identity = expandAzureRmVirtualMachineScaleSetIdentity(d) - } else { - log.Printf("[DEBUG] MSI failed") } if _, ok := d.GetOk("plan"); ok { diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index 9bc7b81c4f18..47b49046a97e 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -418,6 +418,26 @@ func TestAccAzureRMVirtualMachineScaleSet_overprovision(t *testing.T) { }) } +func TestAccAzureRMVirtualMachineScaleSet_MSI(t *testing.T) { + resourceName := "azurerm-vmss-msi-test" + ri := acctest.RandInt() + config := testAccAzureRMVirtualMachineScaleSetMSITemplate(ri, testLocation()) + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testCheckAzureRMVirtualMachineScaleSetDestroy, + Steps: []resource.TestStep{ + { + Config: config, + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMVirtualMachineScaleSetExists(resourceName), + testCheckAzureRMVirtualMachineScaleSetMSI(resourceName), + ), + }, + }, + }) +} + func TestAccAzureRMVirtualMachineScaleSet_extension(t *testing.T) { ri := acctest.RandInt() config := testAccAzureRMVirtualMachineScaleSetExtensionTemplate(ri, testLocation()) @@ -765,6 +785,27 @@ func testCheckAzureRMVirtualMachineScaleSetSinglePlacementGroup(name string, exp } } +func testCheckAzureRMVirtualMachineScaleSetMSI(name string) resource.TestCheckFunc { + return func(s *terraform.State) error { + resp, err := testGetAzureRMVirtualMachineScaleSet(s, name) + if err != nil { + return err + } + + identityType := resp.Identity.Type + if identityType != "SystemAssigned" { + return fmt.Errorf("Bad: Identity Type is not SystemAssigned for scale set %v", name) + } + + principalID := *resp.Identity.PrincipalID + if len(principalID) == 0 { + return fmt.Errorf("Bad: Could not get principal_id for scale set %v", name) + } + + return nil + } +} + func testCheckAzureRMVirtualMachineScaleSetExtension(name string) resource.TestCheckFunc { return func(s *terraform.State) error { resp, err := testGetAzureRMVirtualMachineScaleSet(s, name) @@ -878,7 +919,7 @@ resource "azurerm_virtual_machine_scale_set" "test" { tier = "Standard" capacity = 2 } - + os_profile { computer_name_prefix = "testvm-%d" admin_username = "myadmin" @@ -2299,6 +2340,101 @@ resource "azurerm_virtual_machine_scale_set" "test" { `, rInt, location, rInt, rInt, rInt, rInt, rInt) } +func testAccAzureRMVirtualMachineScaleSetMSITemplate(rInt int, location string) string { + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctestrg-%d" + location = "%s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctvn-%d" + address_space = ["10.0.0.0/16"] + location = "${azurerm_resource_group.test.location}" + resource_group_name = "${azurerm_resource_group.test.name}" +} + +resource "azurerm_subnet" "test" { + name = "acctsub-%d" + resource_group_name = "${azurerm_resource_group.test.name}" + virtual_network_name = "${azurerm_virtual_network.test.name}" + address_prefix = "10.0.2.0/24" +} + +resource "azurerm_storage_account" "test" { + name = "accsa%d" + resource_group_name = "${azurerm_resource_group.test.name}" + location = "${azurerm_resource_group.test.location}" + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_storage_container" "test" { + name = "vhds" + resource_group_name = "${azurerm_resource_group.test.name}" + storage_account_name = "${azurerm_storage_account.test.name}" + container_access_type = "private" +} + +resource "azurerm_virtual_machine_scale_set" "test" { + name = "acctvmss-%d" + location = "${azurerm_resource_group.test.location}" + resource_group_name = "${azurerm_resource_group.test.name}" + upgrade_policy_mode = "Manual" + overprovision = false + + sku { + name = "Standard_D1_v2" + tier = "Standard" + capacity = 1 + } + + identity { + type = "systemAssigned" + } + + extension { + name = "MSILinuxExtension" + publisher = "Microsoft.ManagedIdentity" + type = "ManagedIdentityExtensionForLinux" + type_handler_version = "1.0" + settings = "{\"port\": 50342}" + } + + os_profile { + computer_name_prefix = "testvm-%d" + admin_username = "myadmin" + admin_password = "Passwword1234" + } + + network_profile { + name = "TestNetworkProfile" + primary = true + + ip_configuration { + name = "TestIPConfiguration" + subnet_id = "${azurerm_subnet.test.id}" + } + } + + storage_profile_os_disk { + name = "os-disk" + caching = "ReadWrite" + create_option = "FromImage" + vhd_containers = ["${azurerm_storage_account.test.primary_blob_endpoint}${azurerm_storage_container.test.name}"] + } + + storage_profile_image_reference { + publisher = "Canonical" + offer = "UbuntuServer" + sku = "16.04-LTS" + version = "latest" + } +} + +`, rInt, location, rInt, rInt, rInt, rInt, rInt) +} + func testAccAzureRMVirtualMachineScaleSetExtensionTemplate(rInt int, location string) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { diff --git a/website/docs/r/virtual_machine_scale_set.html.markdown b/website/docs/r/virtual_machine_scale_set.html.markdown index 153d90e60569..64f55d60f28e 100644 --- a/website/docs/r/virtual_machine_scale_set.html.markdown +++ b/website/docs/r/virtual_machine_scale_set.html.markdown @@ -272,13 +272,13 @@ The following arguments are supported: `identity` supports the following: -* `type` - (Required) Specifies the identity type of the virtual machine. The only allowable value is `SystemAssigned`. To enable Managed Service Identity (MSI) on all machines in the scale set, an extension with the type "ManagedIdentityExtensionForWindows" or "ManagedIdentityExtensionForLinux" must also be added. The scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. +* `type` - (Required) Specifies the identity type to be assigned to the scale set. The only allowable value is `SystemAssigned`. To enable Managed Service Identity (MSI) on all machines in the scale set, an extension with the type "ManagedIdentityExtensionForWindows" or "ManagedIdentityExtensionForLinux" must also be added. The scale set's Service Principal ID (SPN) can be retrieved after the scale set has been created. ```hcl -resource "azurerm_virtual_machine_scale_set" "vmss_test" { +resource "azurerm_virtual_machine_scale_set" "test" { name = "vm-scaleset" - resource_group_name = "${azurerm_resource_group.vmss_test.name}" - location = "${azurerm_resource_group.vmss_test.location}" + resource_group_name = "${azurerm_resource_group.test.name}" + location = "${azurerm_resource_group.test.location}" sku { name = "${var.vm_sku}" @@ -295,13 +295,11 @@ resource "azurerm_virtual_machine_scale_set" "vmss_test" { publisher = "Microsoft.ManagedIdentity" type = "ManagedIdentityExtensionForLinux" type_handler_version = "1.0" - auto_upgrade_minor_version = true settings = "{\"port\": 50342}" - protected_settings = "{}" } output "principal_id" { - value = "${lookup(azurerm_virtual_machine.vmss_test.identity[0], "principal_id")}" + value = "${lookup(azurerm_virtual_machine.test.identity[0], "principal_id")}" } ``` From 642bddf792ef4bbd7e13e224f5bcfa0f96cf73dd Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 23:05:54 -0700 Subject: [PATCH 06/10] Fixed formatting. --- azurerm/resource_arm_virtual_machine_scale_set_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index 47b49046a97e..922a481fc909 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -797,7 +797,7 @@ func testCheckAzureRMVirtualMachineScaleSetMSI(name string) resource.TestCheckFu return fmt.Errorf("Bad: Identity Type is not SystemAssigned for scale set %v", name) } - principalID := *resp.Identity.PrincipalID + principalID := *resp.Identity.PrincipalID if len(principalID) == 0 { return fmt.Errorf("Bad: Could not get principal_id for scale set %v", name) } From 0060fa38f888ed1beea6d2ff3cb87f8b20ee8249 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Thu, 22 Mar 2018 23:12:03 -0700 Subject: [PATCH 07/10] Fixed camel case error. --- azurerm/resource_arm_virtual_machine_scale_set_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index 922a481fc909..660f55875ef2 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -793,8 +793,8 @@ func testCheckAzureRMVirtualMachineScaleSetMSI(name string) resource.TestCheckFu } identityType := resp.Identity.Type - if identityType != "SystemAssigned" { - return fmt.Errorf("Bad: Identity Type is not SystemAssigned for scale set %v", name) + if identityType != "systemAssigned" { + return fmt.Errorf("Bad: Identity Type is not systemAssigned for scale set %v", name) } principalID := *resp.Identity.PrincipalID From 4598daf36123295f84b38bce814cbe9235a25ed7 Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Fri, 30 Mar 2018 22:44:31 -0700 Subject: [PATCH 08/10] Addressed PR review requests. --- azurerm/resource_arm_virtual_machine_scale_set.go | 6 ++++-- azurerm/resource_arm_virtual_machine_scale_set_test.go | 9 +++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index 8b34b3fe58bd..155af7e832bb 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -728,8 +728,10 @@ func resourceArmVirtualMachineScaleSetRead(d *schema.ResourceData, meta interfac return fmt.Errorf("[DEBUG] Error setting Virtual Machine Scale Set Sku error: %#v", err) } - d.Set("identity", flattenAzureRmVirtualMachineScaleSetIdentity(resp.Identity)) - + if err := d.Set("identity", flattenAzureRmVirtualMachineScaleSetIdentity(resp.Identity)); err != nil { + return fmt.Errorf("[DEBUG] Error flattening `identity`: %+v", err) + } + properties := resp.VirtualMachineScaleSetProperties d.Set("upgrade_policy_mode", properties.UpgradePolicy.Mode) diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index 660f55875ef2..82ecfd9573a7 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -1,11 +1,11 @@ package azurerm import ( - "fmt" + "fmt" "net/http" "regexp" "testing" - + "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2017-12-01/compute" "github.com/hashicorp/terraform/helper/acctest" "github.com/hashicorp/terraform/helper/resource" @@ -429,10 +429,7 @@ func TestAccAzureRMVirtualMachineScaleSet_MSI(t *testing.T) { Steps: []resource.TestStep{ { Config: config, - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualMachineScaleSetExists(resourceName), - testCheckAzureRMVirtualMachineScaleSetMSI(resourceName), - ), + Check: resource.TestCheckResourceAttrSet(resourceName, "identity.0.principal_id"), }, }, }) From c70715f1e7273e42dd9b4e99e81bca8d34fe81bf Mon Sep 17 00:00:00 2001 From: Jeff Day Date: Fri, 30 Mar 2018 22:48:49 -0700 Subject: [PATCH 09/10] Clean up formatting. --- azurerm/resource_arm_virtual_machine_scale_set.go | 2 +- azurerm/resource_arm_virtual_machine_scale_set_test.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set.go b/azurerm/resource_arm_virtual_machine_scale_set.go index 155af7e832bb..b258faaeb9ed 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set.go +++ b/azurerm/resource_arm_virtual_machine_scale_set.go @@ -731,7 +731,7 @@ func resourceArmVirtualMachineScaleSetRead(d *schema.ResourceData, meta interfac if err := d.Set("identity", flattenAzureRmVirtualMachineScaleSetIdentity(resp.Identity)); err != nil { return fmt.Errorf("[DEBUG] Error flattening `identity`: %+v", err) } - + properties := resp.VirtualMachineScaleSetProperties d.Set("upgrade_policy_mode", properties.UpgradePolicy.Mode) diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index 82ecfd9573a7..b91fbad84481 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -1,11 +1,11 @@ package azurerm import ( - "fmt" + "fmt" "net/http" "regexp" "testing" - + "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2017-12-01/compute" "github.com/hashicorp/terraform/helper/acctest" "github.com/hashicorp/terraform/helper/resource" @@ -429,7 +429,7 @@ func TestAccAzureRMVirtualMachineScaleSet_MSI(t *testing.T) { Steps: []resource.TestStep{ { Config: config, - Check: resource.TestCheckResourceAttrSet(resourceName, "identity.0.principal_id"), + Check: resource.TestCheckResourceAttrSet(resourceName, "identity.0.principal_id"), }, }, }) From 03a9c31582e32caa7e50ca8e85294e9f7af74a68 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 4 Apr 2018 11:46:52 +0200 Subject: [PATCH 10/10] Fixing the resource name to match the test --- azurerm/resource_arm_virtual_machine_scale_set_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/resource_arm_virtual_machine_scale_set_test.go b/azurerm/resource_arm_virtual_machine_scale_set_test.go index b91fbad84481..c6897eb3b465 100644 --- a/azurerm/resource_arm_virtual_machine_scale_set_test.go +++ b/azurerm/resource_arm_virtual_machine_scale_set_test.go @@ -419,7 +419,7 @@ func TestAccAzureRMVirtualMachineScaleSet_overprovision(t *testing.T) { } func TestAccAzureRMVirtualMachineScaleSet_MSI(t *testing.T) { - resourceName := "azurerm-vmss-msi-test" + resourceName := "azurerm_virtual_machine_scale_set.test" ri := acctest.RandInt() config := testAccAzureRMVirtualMachineScaleSetMSITemplate(ri, testLocation()) resource.Test(t, resource.TestCase{