Compare commits

...

12 Commits

Author SHA1 Message Date
c08405c06a fix broken script url 2024-10-05 12:37:06 +08:00
ff0b2795ab add random suffix to resource group name 2024-10-05 10:43:31 +08:00
dcca3ba6ef fix example 2024-10-05 10:39:55 +08:00
86b15f1a9f fix example 2024-10-05 08:54:51 +08:00
ddfedda590 fix 301-hub-spoke 2024-10-05 08:50:32 +08:00
8c3f290e61 bump azurerm to v3 2024-10-04 10:44:16 +08:00
3a6dd12ab9 bump azurerm to v3 2024-10-04 10:19:03 +08:00
5192273700 try to fix example 2024-10-04 09:45:52 +08:00
d2e47ddadd add issue ref 2024-10-04 09:45:52 +08:00
96d88c3c41 try to fix example 2024-10-04 09:45:52 +08:00
e405273660 bump azurerm to v3 2024-10-04 09:45:52 +08:00
98f857a865 bump azurerm provider to v3 2024-10-04 09:06:22 +08:00
12 changed files with 414 additions and 384 deletions

View File

@ -40,4 +40,13 @@ resource "azurerm_attestation_provider" "corp_attestation" {
name = "${var.attestation_provider_name}${random_string.attestation_suffix.result}" name = "${var.attestation_provider_name}${random_string.attestation_suffix.result}"
resource_group_name = azurerm_resource_group.rg.name resource_group_name = azurerm_resource_group.rg.name
policy_signing_certificate_data = try(tls_self_signed_cert.attestation[0].cert_pem, file(var.cert_path)) policy_signing_certificate_data = try(tls_self_signed_cert.attestation[0].cert_pem, file(var.cert_path))
#https://github.com/hashicorp/terraform-provider-azurerm/issues/21998#issuecomment-1573312297
lifecycle {
ignore_changes = [
"open_enclave_policy_base64",
"sev_snp_policy_base64",
"sgx_enclave_policy_base64",
"tpm_policy_base64",
]
}
} }

View File

@ -4,7 +4,7 @@ terraform {
required_providers { required_providers {
azurerm = { azurerm = {
source = "hashicorp/azurerm" source = "hashicorp/azurerm"
version = "~>2.0" version = "~>3.0"
} }
random = { random = {
source = "hashicorp/random" source = "hashicorp/random"

View File

@ -8,7 +8,7 @@ terraform {
} }
azurerm = { azurerm = {
source = "hashicorp/azurerm" source = "hashicorp/azurerm"
version = "~>2.0" version = "~>3.0"
} }
random = { random = {
source = "hashicorp/random" source = "hashicorp/random"

View File

@ -3,7 +3,7 @@ terraform {
required_providers { required_providers {
azurerm = { azurerm = {
source = "hashicorp/azurerm" source = "hashicorp/azurerm"
version = "~>2.0" version = "~>3.0"
} }
random = { random = {
source = "hashicorp/random" source = "hashicorp/random"

View File

@ -8,7 +8,7 @@ terraform {
} }
azurerm = { azurerm = {
source = "hashicorp/azurerm" source = "hashicorp/azurerm"
version = "~>2.0" version = "~>3.0"
} }
random = { random = {
source = "hashicorp/random" source = "hashicorp/random"

View File

@ -4,8 +4,14 @@ locals {
hub-nva-resource-group = "hub-nva-rg" hub-nva-resource-group = "hub-nva-rg"
} }
resource "random_string" "suffix" {
length = 5
special = false
upper = false
}
resource "azurerm_resource_group" "hub-nva-rg" { resource "azurerm_resource_group" "hub-nva-rg" {
name = "${local.prefix-hub-nva}-rg" name = "${local.prefix-hub-nva}-rg-${random_string.suffix.result}"
location = local.hub-nva-location location = local.hub-nva-location
tags = { tags = {
@ -55,7 +61,7 @@ resource "azurerm_virtual_machine" "hub-nva-vm" {
os_profile { os_profile {
computer_name = "${local.prefix-hub-nva}-vm" computer_name = "${local.prefix-hub-nva}-vm"
admin_username = var.username admin_username = var.username
admin_password = var.password admin_password = local.password
} }
os_profile_linux_config { os_profile_linux_config {
@ -78,7 +84,7 @@ resource "azurerm_virtual_machine_extension" "enable-routes" {
settings = <<SETTINGS settings = <<SETTINGS
{ {
"fileUris": [ "fileUris": [
"https://raw.githubusercontent.com/mspnp/reference-architectures/master/scripts/linux/enable-ip-forwarding.sh" "https://raw.githubusercontent.com/lonegunmanb/reference-architectures/refs/heads/master/scripts/linux/enable-ip-forwarding.sh"
], ],
"commandToExecute": "bash enable-ip-forwarding.sh" "commandToExecute": "bash enable-ip-forwarding.sh"
} }
@ -142,7 +148,7 @@ resource "azurerm_route_table" "spoke1-rt" {
route { route {
name = "default" name = "default"
address_prefix = "0.0.0.0/0" address_prefix = "0.0.0.0/0"
next_hop_type = "vnetlocal" next_hop_type = "VnetLocal"
} }
tags = { tags = {
@ -178,7 +184,7 @@ resource "azurerm_route_table" "spoke2-rt" {
route { route {
name = "default" name = "default"
address_prefix = "0.0.0.0/0" address_prefix = "0.0.0.0/0"
next_hop_type = "vnetlocal" next_hop_type = "VnetLocal"
} }
tags = { tags = {

View File

@ -1,7 +1,7 @@
locals { locals {
prefix-hub = "hub" prefix-hub = "hub"
hub-location = "eastus" hub-location = "eastus"
hub-resource-group = "hub-vnet-rg" hub-resource-group = "hub-vnet-rg-${random_string.suffix.result}"
shared-key = "4-v3ry-53cr37-1p53c-5h4r3d-k3y" shared-key = "4-v3ry-53cr37-1p53c-5h4r3d-k3y"
} }
@ -84,7 +84,7 @@ resource "azurerm_virtual_machine" "hub-vm" {
os_profile { os_profile {
computer_name = "${local.prefix-hub}-vm" computer_name = "${local.prefix-hub}-vm"
admin_username = var.username admin_username = var.username
admin_password = var.password admin_password = local.password
} }
os_profile_linux_config { os_profile_linux_config {

View File

@ -5,11 +5,24 @@ terraform {
required_providers { required_providers {
azurerm = { azurerm = {
source = "hashicorp/azurerm" source = "hashicorp/azurerm"
version = "~>2.0" version = "~> 3.0"
} }
} }
} }
provider "azurerm" { provider "azurerm" {
features {} features {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
resource "random_password" "password" {
count = var.password == null ? 1 : 0
length = 20
}
locals {
password = try(random_password.password[0].result, var.password)
} }

View File

@ -1,6 +1,6 @@
locals { locals {
onprem-location = "eastus" onprem-location = "eastus"
onprem-resource-group = "onprem-vnet-rg" onprem-resource-group = "onprem-vnet-rg-${random_string.suffix.result}"
prefix-onprem = "onprem" prefix-onprem = "onprem"
} }
@ -111,7 +111,7 @@ resource "azurerm_virtual_machine" "onprem-vm" {
os_profile { os_profile {
computer_name = "${local.prefix-onprem}-vm" computer_name = "${local.prefix-onprem}-vm"
admin_username = var.username admin_username = var.username
admin_password = var.password admin_password = local.password
} }
os_profile_linux_config { os_profile_linux_config {

View File

@ -1,6 +1,6 @@
locals { locals {
spoke1-location = "eastus" spoke1-location = "eastus"
spoke1-resource-group = "spoke1-vnet-rg" spoke1-resource-group = "spoke1-vnet-rg-${random_string.suffix.result}"
prefix-spoke1 = "spoke1" prefix-spoke1 = "spoke1"
} }
@ -84,7 +84,7 @@ resource "azurerm_virtual_machine" "spoke1-vm" {
os_profile { os_profile {
computer_name = "${local.prefix-spoke1}-vm" computer_name = "${local.prefix-spoke1}-vm"
admin_username = var.username admin_username = var.username
admin_password = var.password admin_password = local.password
} }
os_profile_linux_config { os_profile_linux_config {

View File

@ -1,6 +1,6 @@
locals { locals {
spoke2-location = "eastus" spoke2-location = "eastus"
spoke2-resource-group = "spoke2-vnet-rg" spoke2-resource-group = "spoke2-vnet-rg-${random_string.suffix.result}"
prefix-spoke2 = "spoke2" prefix-spoke2 = "spoke2"
} }
@ -88,7 +88,7 @@ resource "azurerm_virtual_machine" "spoke2-vm" {
os_profile { os_profile {
computer_name = "${local.prefix-spoke2}-vm" computer_name = "${local.prefix-spoke2}-vm"
admin_username = var.username admin_username = var.username
admin_password = var.password admin_password = local.password
} }
os_profile_linux_config { os_profile_linux_config {

View File

@ -10,6 +10,8 @@ variable "username" {
variable "password" { variable "password" {
description = "Password for Virtual Machines" description = "Password for Virtual Machines"
sensitive = true
default = null
} }
variable "vmsize" { variable "vmsize" {