/azurerm/internal/services/compute/tests/linux_virtual_machine_scale_set_identity_resource_test.go
https://github.com/terraform-providers/terraform-provider-azurerm · Go · 386 lines · 368 code · 14 blank · 4 comment · 0 complexity · 0d81ce1f7c24a4f252b4853128f1c54c MD5 · raw file
- package tests
- import (
- "fmt"
- "testing"
- "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
- "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance"
- )
- func TestAccAzureRMLinuxVirtualMachineScaleSet_identityNone(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_authPassword(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "identity.%", "0"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- },
- })
- }
- func TestAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssigned(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_identitySystemAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttrSet(data.ResourceName, "identity.0.principal_id"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- // disable it
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_authPassword(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "identity.%", "0"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttrSet(data.ResourceName, "identity.0.principal_id"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- },
- })
- }
- func TestAccAzureRMLinuxVirtualMachineScaleSet_identityUserAssigned(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_identityUserAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- // disable it
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_authPassword(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "identity.%", "0"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_identityUserAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- // second
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_identityUserAssignedUpdated(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- },
- })
- }
- func TestAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssignedUserAssigned(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_identitySystemAssignedUserAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttrSet(data.ResourceName, "identity.0.principal_id"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- // disable it
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_authPassword(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttr(data.ResourceName, "identity.%", "0"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- {
- Config: testAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssignedUserAssigned(data),
- Check: resource.ComposeTestCheckFunc(
- testCheckAzureRMLinuxVirtualMachineScaleSetExists(data.ResourceName),
- resource.TestCheckResourceAttrSet(data.ResourceName, "identity.0.principal_id"),
- ),
- },
- data.ImportStep(
- "admin_password",
- ),
- },
- })
- }
- func testAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssigned(data acceptance.TestData) string {
- template := testAccAzureRMLinuxVirtualMachineScaleSet_template(data)
- return fmt.Sprintf(`
- %s
- resource "azurerm_linux_virtual_machine_scale_set" "test" {
- name = "acctestvmss-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- sku = "Standard_F2"
- instances = 1
- admin_username = "adminuser"
- admin_password = "P@ssword1234!"
- disable_password_authentication = false
- source_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "16.04-LTS"
- version = "latest"
- }
- os_disk {
- storage_account_type = "Standard_LRS"
- caching = "ReadWrite"
- }
- network_interface {
- name = "example"
- primary = true
- ip_configuration {
- name = "internal"
- primary = true
- subnet_id = azurerm_subnet.test.id
- }
- }
- identity {
- type = "SystemAssigned"
- }
- }
- `, template, data.RandomInteger)
- }
- func testAccAzureRMLinuxVirtualMachineScaleSet_identityUserAssigned(data acceptance.TestData) string {
- template := testAccAzureRMLinuxVirtualMachineScaleSet_template(data)
- return fmt.Sprintf(`
- %s
- resource "azurerm_user_assigned_identity" "test" {
- name = "acctestuai-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- }
- resource "azurerm_linux_virtual_machine_scale_set" "test" {
- name = "acctestvmss-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- sku = "Standard_F2"
- instances = 1
- admin_username = "adminuser"
- admin_password = "P@ssword1234!"
- disable_password_authentication = false
- source_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "16.04-LTS"
- version = "latest"
- }
- os_disk {
- storage_account_type = "Standard_LRS"
- caching = "ReadWrite"
- }
- network_interface {
- name = "example"
- primary = true
- ip_configuration {
- name = "internal"
- primary = true
- subnet_id = azurerm_subnet.test.id
- }
- }
- identity {
- type = "UserAssigned"
- identity_ids = [
- azurerm_user_assigned_identity.test.id,
- ]
- }
- }
- `, template, data.RandomInteger, data.RandomInteger)
- }
- func testAccAzureRMLinuxVirtualMachineScaleSet_identityUserAssignedUpdated(data acceptance.TestData) string {
- template := testAccAzureRMLinuxVirtualMachineScaleSet_template(data)
- return fmt.Sprintf(`
- %s
- resource "azurerm_user_assigned_identity" "test" {
- name = "acctestuai-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- }
- resource "azurerm_user_assigned_identity" "other" {
- name = "acctestuai2-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- }
- resource "azurerm_linux_virtual_machine_scale_set" "test" {
- name = "acctestvmss-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- sku = "Standard_F2"
- instances = 1
- admin_username = "adminuser"
- admin_password = "P@ssword1234!"
- disable_password_authentication = false
- source_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "16.04-LTS"
- version = "latest"
- }
- os_disk {
- storage_account_type = "Standard_LRS"
- caching = "ReadWrite"
- }
- network_interface {
- name = "example"
- primary = true
- ip_configuration {
- name = "internal"
- primary = true
- subnet_id = azurerm_subnet.test.id
- }
- }
- identity {
- type = "UserAssigned"
- identity_ids = [
- azurerm_user_assigned_identity.test.id,
- azurerm_user_assigned_identity.other.id,
- ]
- }
- }
- `, template, data.RandomInteger, data.RandomInteger, data.RandomInteger)
- }
- func testAccAzureRMLinuxVirtualMachineScaleSet_identitySystemAssignedUserAssigned(data acceptance.TestData) string {
- template := testAccAzureRMLinuxVirtualMachineScaleSet_template(data)
- return fmt.Sprintf(`
- %s
- resource "azurerm_user_assigned_identity" "test" {
- name = "acctestuai-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- }
- resource "azurerm_linux_virtual_machine_scale_set" "test" {
- name = "acctestvmss-%d"
- resource_group_name = azurerm_resource_group.test.name
- location = azurerm_resource_group.test.location
- sku = "Standard_F2"
- instances = 1
- admin_username = "adminuser"
- admin_password = "P@ssword1234!"
- disable_password_authentication = false
- source_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "16.04-LTS"
- version = "latest"
- }
- os_disk {
- storage_account_type = "Standard_LRS"
- caching = "ReadWrite"
- }
- network_interface {
- name = "example"
- primary = true
- ip_configuration {
- name = "internal"
- primary = true
- subnet_id = azurerm_subnet.test.id
- }
- }
- identity {
- type = "SystemAssigned, UserAssigned"
- identity_ids = [
- azurerm_user_assigned_identity.test.id,
- ]
- }
- }
- `, template, data.RandomInteger, data.RandomInteger)
- }