Skip to content

azurerm_mssql_virtual_machine should not require LUN for SQLTempDbSettings #30170

@agyss

Description

@agyss

Is there an existing issue for this?

  • I have searched the existing issues

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave comments along the lines of "+1", "me too" or "any updates", they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment and review the contribution guide to help.

Terraform Version

1.12.2

AzureRM Provider Version

4.36.0

Affected Resource(s)/Data Source(s)

azurerm_mssql_virtual_machine

Terraform Configuration Files

resource "azurerm_mssql_virtual_machine" "sqlvm" {
  virtual_machine_id               = azurerm_windows_virtual_machine.VM.id
  sql_license_type                 = local.mergedSqlServerConfig.sqlServerLicenseType
  r_services_enabled               = local.mergedSqlServerConfig.rServicesEnabled
  sql_connectivity_port            = 1433
  sql_connectivity_type            = "PRIVATE"
  sql_connectivity_update_password = local.mergedSqlServerConfig.adminpass
  sql_connectivity_update_username = local.mergedSqlServerConfig.adminuser

  storage_configuration {
    disk_type = "NEW"
    storage_workload_type = "OLTP"
    data_settings  {
      default_file_path  = "H:\\SQLData"
      luns  = [0,1]
    }
    log_settings   {
      default_file_path  = "G:\\SQLData"
      luns  = [2,3]
    }
    temp_db_settings {
      default_file_path  = "D:\\SQLTemp"
    }
  }

Debug Output/Panic Output

 Error: Missing required argument
   
     on vm-installer/sqlserver.tf line 29, in resource "azurerm_mssql_virtual_machine" "sqlvm":
     29:     temp_db_settings {
   
   The argument "luns" is required, but no definition was found.

Expected Behaviour

The underlying arm templates support not specifying a LUN for the tempdb only - not specifying a LUN tells ARM to use the locally attached temporary ssd device.

Actual Behaviour

   Error: Missing required argument
   
     on vm-installer/sqlserver.tf line 29, in resource "azurerm_mssql_virtual_machine" "sqlvm":
     29:     temp_db_settings {
   
   The argument "luns" is required, but no definition was found.

Steps to Reproduce

terraform apply

Important Factoids

The following ARM snippet of is valid, but unable to be generated by terraform -

            "type": "Microsoft.SqlVirtualMachine/SqlVirtualMachines",
            "apiVersion": "2017-03-01-preview",
            "name": "[parameters('sqlVirtualMachineName')]",
            "location": "[parameters('sqlVirtualMachineLocation')]",
            "dependsOn": [
                "[resourceId('Microsoft.Compute/virtualMachines', parameters('sqlVirtualMachineName'))]"
            ],
            "properties": {
                "....snip....":"snipped exterranous arm",
                "StorageConfigurationSettings": {
                    "DiskConfigurationType": "NEW",
                    "StorageWorkloadType": "OLTP",
                    "SQLDataSettings": {
                        "LUNs": "[0,1]",
                        "DefaultFilePath": "F:\\data"
                    },
                    "SQLLogSettings": {
                        "LUNs": "[2,3]",
                        "DefaultFilePath": "G:\\log"
                    },
                    "SQLTempDbSettings": {
                        "DefaultFilePath": "D:\\tempDb"
                    }
                }
           }

References

Reopening of #10054 as still relevant.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions