From 327a771a19139687ad1b1fd60d19e6d53ac010a9 Mon Sep 17 00:00:00 2001 From: Dingjia Chen <48020536+Pumpkin-3906@users.noreply.github.com> Date: Sun, 5 Mar 2023 23:48:38 -0600 Subject: [PATCH] 101-managed-instance patch (#181) * fix example --- quickstart/101-managed-instance/main.tf | 32 ++++++++++---- quickstart/101-managed-instance/outputs.tf | 8 ++++ quickstart/101-managed-instance/providers.tf | 8 +++- quickstart/101-managed-instance/variables.tf | 44 ++++---------------- 4 files changed, 45 insertions(+), 47 deletions(-) diff --git a/quickstart/101-managed-instance/main.tf b/quickstart/101-managed-instance/main.tf index 60c6796d..aa3c0286 100644 --- a/quickstart/101-managed-instance/main.tf +++ b/quickstart/101-managed-instance/main.tf @@ -3,20 +3,20 @@ # Create resource group resource "azurerm_resource_group" "example" { - name = var.azurerm_resource_group_name + name = "${random_pet.prefix.id}-rg" location = var.location } # Create security group resource "azurerm_network_security_group" "example" { - name = var.azurerm_network_security_group_name + name = "${random_pet.prefix.id}-nsg" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name } # Create a virtual network resource "azurerm_virtual_network" "example" { - name = var.azurerm_virtual_network_name + name = "${random_pet.prefix.id}-vnet" resource_group_name = azurerm_resource_group.example.name address_space = ["10.0.0.0/24"] location = azurerm_resource_group.example.location @@ -24,7 +24,7 @@ resource "azurerm_virtual_network" "example" { # Create a subnet resource "azurerm_subnet" "example" { - name = var.azurerm_subnet_name + name = "${random_pet.prefix.id}-subnet" resource_group_name = azurerm_resource_group.example.name virtual_network_name = azurerm_virtual_network.example.name address_prefixes = ["10.0.0.0/27"] @@ -51,7 +51,7 @@ resource "azurerm_subnet_network_security_group_association" "example" { # Create a route table resource "azurerm_route_table" "example" { - name = "routetable-mi-terraform" + name = "${random_pet.prefix.id}-rt" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name disable_bgp_route_propagation = false @@ -64,15 +64,29 @@ resource "azurerm_subnet_route_table_association" "example" { } # Create managed instance -resource "azurerm_mssql_managed_instance" "example" { - name = var.database_name +resource "azurerm_mssql_managed_instance" "main" { + name = "${random_pet.prefix.id}-mssql" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location subnet_id = azurerm_subnet.example.id - administrator_login = var.administrator_login - administrator_login_password = var.administrator_login_password + administrator_login = "${replace(random_pet.prefix.id, "-", "")}admin" + administrator_login_password = random_password.password.result license_type = var.license_type sku_name = var.sku_name vcores = var.vcores storage_size_in_gb = var.storage_size_in_gb } + +resource "random_password" "password" { + length = 20 + min_lower = 1 + min_upper = 1 + min_numeric = 1 + min_special = 1 + special = true +} + +resource "random_pet" "prefix" { + prefix = var.prefix + length = 1 +} \ No newline at end of file diff --git a/quickstart/101-managed-instance/outputs.tf b/quickstart/101-managed-instance/outputs.tf index e69de29b..c2e86d4a 100644 --- a/quickstart/101-managed-instance/outputs.tf +++ b/quickstart/101-managed-instance/outputs.tf @@ -0,0 +1,8 @@ +output "admin_login" { + value = azurerm_mssql_managed_instance.main.administrator_login +} + +output "admin_login_password" { + sensitive = true + value = azurerm_mssql_managed_instance.main.administrator_login_password +} \ No newline at end of file diff --git a/quickstart/101-managed-instance/providers.tf b/quickstart/101-managed-instance/providers.tf index 47306772..dc42605e 100644 --- a/quickstart/101-managed-instance/providers.tf +++ b/quickstart/101-managed-instance/providers.tf @@ -1,8 +1,14 @@ terraform { + required_version = ">= 1.0" + required_providers { azurerm = { source = "hashicorp/azurerm" - version = ">=3.0.0" + version = ">= 3.0, < 4.0" + } + random = { + source = "hashicorp/random" + version = ">= 3.0" } } } diff --git a/quickstart/101-managed-instance/variables.tf b/quickstart/101-managed-instance/variables.tf index d9b41ddd..81fdd4db 100644 --- a/quickstart/101-managed-instance/variables.tf +++ b/quickstart/101-managed-instance/variables.tf @@ -1,63 +1,33 @@ -variable "azurerm_resource_group_name" { +variable "prefix" { type = string - description = "Enter the resource group name" - default = "terraform-database-resource-group" -} -variable "azurerm_network_security_group_name" { - type = string - description = "Enter the security group name" - default = "mi-security-group-terraform" -} -variable "azurerm_virtual_network_name" { - type = string - description = "Enter the virtual network name" - default = "vnet-mi-terraform" -} -variable "azurerm_subnet_name" { - type = string - description = "Enter subnet name" - default = "subnet-mi-terraform" + default = "mi" + description = "Prefix of the resource name" } + variable "location" { type = string description = "Enter the location where you want to deploy the resources" default = "eastus" } -variable "administrator_login" { - type = string - description = "Enter Administrator name for the database" - default = "VeryStrongAdministrator" -} - -variable "administrator_login_password" { - type = string - description = "Enter administrator password for the database" - default = "IamAVeryStrongP@ssw0rd123" - sensitive = true -} - -variable "database_name" { - type = string - description = "Enter database name" - default = "sql-mi-terraform" -} - variable "sku_name" { type = string description = "Enter SKU" default = "GP_Gen5" } + variable "license_type" { type = string description = "Enter license type" default = "BasePrice" } + variable "vcores" { type = number description = "Enter number of vCores you want to deploy" default = 8 } + variable "storage_size_in_gb" { type = number description = "Enter storage size in GB"