201-web-app-postgres-keyvault patch (#179)

* fix example
This commit is contained in:
Dingjia Chen 2023-03-01 23:41:59 -06:00 committed by GitHub
parent 95a5b0cac4
commit 5e48773198
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 126 additions and 111 deletions

View File

@ -1,5 +1,10 @@
resource "azurerm_resource_group" "webAppMySqlRg" {
name = "${var.rg}"
location = "${var.loc}"
tags = "${var.tags}"
resource "azurerm_resource_group" "web_app_mysql_rg" {
name = "${random_pet.prefix.id}-rg"
location = var.loc
tags = var.tags
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 1
}

View File

@ -1,29 +1,34 @@
resource "azurerm_mysql_server" "webAppBackend" {
name = "${var.siteName}pgserver"
location = "${azurerm_resource_group.webAppMySqlRg.location}"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
resource "azurerm_mysql_server" "web_app_backend" {
name = "${replace(random_pet.prefix.id, "-", "")}pgserver"
location = azurerm_resource_group.web_app_mysql_rg.location
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
tags = azurerm_resource_group.web_app_mysql_rg.tags
administrator_login = "${var.administratorLogin}"
administrator_login_password = "${var.administratorLoginPassword}"
version = "${var.mysqlVersion}"
ssl_enforcement = "Disabled"
sku {
name = "${var.databaseSkuName}"
capacity = "${var.databaseDTU}"
tier = "${var.databaseSkuTier}"
family = "${var.databaseSkuFamily}"
}
storage_profile {
storage_mb = "${var.databaseSkuSizeMB}"
}
administrator_login = "${var.prefix}-admin"
administrator_login_password = random_password.password.result
sku_name = var.database_sku_name
storage_mb = var.database_sku_size_MB
version = var.mysql_version
ssl_enforcement_enabled = false
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
}
resource "azurerm_mysql_database" "webAppBackend" {
name = "${var.siteName}database"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
resource "azurerm_mysql_database" "web_app_backend" {
name = "${replace(random_pet.prefix.id, "-", "")}database"
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
server_name = "${azurerm_mysql_server.webAppBackend.name}"
charset = "utf8"
collation = "utf8_unicode_ci"
server_name = azurerm_mysql_server.web_app_backend.name
charset = "utf8mb4"
collation = "utf8mb4_unicode_ci"
}
resource "random_password" "password" {
length = 20
min_lower = 1
min_upper = 1
min_numeric = 1
min_special = 1
special = false
}

View File

@ -1,15 +0,0 @@
output "webAppUrl" {
value = "${azurerm_app_service.webAppFrontend.default_site_hostname}"
}
output "databaseName" {
value = "${azurerm_mysql_database.webAppBackend.name}"
}
output "databaseServerName" {
value = "${azurerm_mysql_server.webAppBackend.fqdn}"
}
output "appServicePlanName" {
value = "${azurerm_app_service_plan.webAppFrontend.name}"
}

View File

@ -0,0 +1,24 @@
output "web_app_url" {
value = azurerm_app_service.main.default_site_hostname
}
output "database_name" {
value = azurerm_mysql_database.web_app_backend.name
}
output "database_server_name" {
value = azurerm_mysql_server.web_app_backend.fqdn
}
output "app_service_plan_name" {
value = azurerm_app_service_plan.web_app_frontend.name
}
output "mysql_server_admin_name" {
value = azurerm_mysql_server.web_app_backend.administrator_login
}
output "mysql_server_admin_password" {
sensitive = true
value = azurerm_mysql_server.web_app_backend.administrator_login_password
}

View File

@ -1,3 +1,18 @@
provider "azurerm" {
version = "~>1.17"
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.0, < 4.0"
}
random = {
source = "hashicorp/random"
version = ">= 3.0"
}
}
}
provider "azurerm" {
features {}
}

View File

@ -1,12 +1,8 @@
rg = "mcg623webAppMysql"
loc = "eastus2"
tags = {
type = "sample"
services = "MySql, WebApp, Azure database"
loc = "eastus2"
tags = {
type = "sample"
services = "MySql, WebApp, Azure database"
}
administratorLogin = "markg"
siteName = "mcgecd69mysql"
servicePlanTier = "Standard"
servicePlanSize = "S1"
service_plan_tier = "Standard"
service_plan_size = "S1"

View File

@ -1,65 +1,50 @@
variable "rg" {
description = "Azure resource group for all resources."
}
variable "siteName" {
description = "Name of azure web app"
variable "prefix" {
type = string
default = "pgkv"
description = "Prefix of the resource name"
}
variable "tags" {
type = map(any)
default = {
type = "sample"
services = "MySql, WebApp, Azure database"
}
description = "Azure Tags for all resources."
default = {}
}
variable "administratorLogin" {
description = "Database administrator login name"
variable "database_sku_name" {
type = string
default = "GP_Gen5_2"
description = "The name of the SKU, follows the tier + family + cores pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`)."
}
variable "administratorLoginPassword" {
description = "Database administrator password"
}
variable "databaseDTU" {
description = "Azure database for MySQL pricing tier"
default = 2
}
variable "databaseSkuName" {
description = "Azure database for MySQL sku name"
default = "GP_Gen4_2"
}
variable "databaseSkuFamily" {
description = "Azure database for MySQL sku family"
default = "Gen4"
}
variable "databaseSkuSizeMB" {
description = "Azure database for MySQL Sku Size"
variable "database_sku_size_MB" {
type = number
default = 5120
description = "Azure database for MySQL Sku Size"
}
variable "databaseSkuTier" {
description = "Azure database for MySQL pricing tier"
default = "GeneralPurpose"
}
variable "mysqlVersion" {
variable "mysql_version" {
type = string
default = "5.7"
description = "MySQL version"
default = "5.6"
}
variable "loc" {
type = string
default = "eastus"
description = "Location for all resources."
default = "eastus2"
}
variable "servicePlanTier" {
variable "service_plan_tier" {
type = string
default = "Standard"
description = "Azure managed application service plan pricing tier"
}
variable "servicePlanSize" {
variable "service_plan_size" {
type = string
default = "S1"
description = "Azure managed application service plan instance size"
}

View File

@ -1,25 +1,25 @@
resource "azurerm_app_service_plan" "webAppFrontend" {
name = "${var.siteName}serviceplan"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
location = "${azurerm_resource_group.webAppMySqlRg.location}"
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
resource "azurerm_app_service_plan" "web_app_frontend" {
name = "${replace(random_pet.prefix.id, "-", "")}serviceplan"
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
location = azurerm_resource_group.web_app_mysql_rg.location
tags = azurerm_resource_group.web_app_mysql_rg.tags
sku {
tier = "${var.servicePlanTier}"
size = "${var.servicePlanSize}"
tier = var.service_plan_tier
size = var.service_plan_size
}
}
resource "azurerm_app_service" "webAppFrontend" {
name = "${var.siteName}"
location = "${azurerm_resource_group.webAppMySqlRg.location}"
resource_group_name = "${azurerm_resource_group.webAppMySqlRg.name}"
tags = "${azurerm_resource_group.webAppMySqlRg.tags}"
resource "azurerm_app_service" "main" {
name = "${replace(random_pet.prefix.id, "-", "")}service"
location = azurerm_resource_group.web_app_mysql_rg.location
resource_group_name = azurerm_resource_group.web_app_mysql_rg.name
tags = azurerm_resource_group.web_app_mysql_rg.tags
app_service_plan_id = "${azurerm_app_service_plan.webAppFrontend.id}"
app_service_plan_id = azurerm_app_service_plan.web_app_frontend.id
connection_string {
name = "DefaultConnect"
type = "MySql"
value = "Database=${azurerm_mysql_database.webAppBackend.name};Data Source=${azurerm_mysql_server.webAppBackend.fqdn};User Id=${var.administratorLogin}@${azurerm_mysql_server.webAppBackend.name};Password=${var.administratorLoginPassword}"
value = "Database=${azurerm_mysql_database.web_app_backend.name};Data Source=${azurerm_mysql_server.web_app_backend.fqdn};User Id=${random_pet.prefix.id}-admin@${azurerm_mysql_server.web_app_backend.name};Password=${random_password.password.result}"
}
}