|
2 | 2 | locals { |
3 | 3 | resource_group_name = "${var.prefix}-aci-rg" |
4 | 4 | storage_account_name = "${var.prefix}acistorage${var.suffix}" |
| 5 | + key_vault_name = "${var.prefix}acikv${var.suffix}" |
5 | 6 | acr_name = "${var.prefix}aciacr${var.suffix}" |
6 | 7 | aci_group_name = "${var.prefix}-aci-planner-${var.suffix}" |
7 | 8 | } |
8 | 9 |
|
| 10 | +# Get the current client configuration (for tenant_id) |
| 11 | +data "azurerm_client_config" "current" {} |
| 12 | + |
9 | 13 | # Create a resource group |
10 | 14 | resource "azurerm_resource_group" "example" { |
11 | 15 | name = local.resource_group_name |
@@ -37,6 +41,30 @@ resource "azurerm_storage_container" "example" { |
37 | 41 | container_access_type = "private" |
38 | 42 | } |
39 | 43 |
|
| 44 | +# Create Key Vault |
| 45 | +resource "azurerm_key_vault" "example" { |
| 46 | + name = local.key_vault_name |
| 47 | + resource_group_name = azurerm_resource_group.example.name |
| 48 | + location = azurerm_resource_group.example.location |
| 49 | + tenant_id = data.azurerm_client_config.current.tenant_id |
| 50 | + sku_name = "standard" |
| 51 | + enable_rbac_authorization = true |
| 52 | + tags = var.tags |
| 53 | + |
| 54 | + lifecycle { |
| 55 | + ignore_changes = [ |
| 56 | + tags |
| 57 | + ] |
| 58 | + } |
| 59 | +} |
| 60 | + |
| 61 | +# Store the storage connection string in Key Vault |
| 62 | +resource "azurerm_key_vault_secret" "storage_conn" { |
| 63 | + name = "storage-conn" |
| 64 | + value = "DefaultEndpointsProtocol=http;AccountName=${azurerm_storage_account.example.name};AccountKey=${azurerm_storage_account.example.primary_access_key};BlobEndpoint=${azurerm_storage_account.example.primary_blob_endpoint}" |
| 65 | + key_vault_id = azurerm_key_vault.example.id |
| 66 | +} |
| 67 | + |
40 | 68 | # Reference the pre-created ACR (created by deploy.sh before terraform apply) |
41 | 69 | data "azurerm_container_registry" "example" { |
42 | 70 | name = local.acr_name |
@@ -76,7 +104,7 @@ resource "azurerm_container_group" "example" { |
76 | 104 | } |
77 | 105 |
|
78 | 106 | secure_environment_variables = { |
79 | | - AZURE_STORAGE_CONNECTION_STRING = "DefaultEndpointsProtocol=http;AccountName=${azurerm_storage_account.example.name};AccountKey=${azurerm_storage_account.example.primary_access_key};BlobEndpoint=${azurerm_storage_account.example.primary_blob_endpoint}" |
| 107 | + AZURE_STORAGE_CONNECTION_STRING = azurerm_key_vault_secret.storage_conn.value |
80 | 108 | } |
81 | 109 | } |
82 | 110 |
|
|
0 commit comments