From d5543b537554e546ee05c18980c9d470fd30f064 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 09:23:38 +0200 Subject: [PATCH 01/14] Add python package resource to automation_account module --- examples/automation_accounts.tfvars | 7 +++++++ src/modules/automation_account/python_packages.tf | 12 ++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/modules/automation_account/python_packages.tf diff --git a/examples/automation_accounts.tfvars b/examples/automation_accounts.tfvars index d7bdcd3b..573971bb 100644 --- a/examples/automation_accounts.tfvars +++ b/examples/automation_accounts.tfvars @@ -5,6 +5,13 @@ automation_accounts = { local_authentication_enabled = true public_network_access_enabled = true + python_packages = { + requests = { + content_uri = "https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz" + content_version = "2.32.3" + } + } + tags = { Env = "Test" } diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf new file mode 100644 index 00000000..8e9efc9c --- /dev/null +++ b/src/modules/automation_account/python_packages.tf @@ -0,0 +1,12 @@ +resource "azurerm_automation_python3_package" "main" { + for_each = try(var.settings.python_packages, {}) + + name = try(each.value.name, each.key) + resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) + automation_account_name = azurerm_automation_account.main.name + content_uri = each.value.content_uri + content_version = try(each.value.content_version, null) + hash_algorithm = try(each.value.hash_algorithm, null) + hash_value = try(each.value.hash_value, null) + tags = try(each.value.tags, local.tags) +} From 1923f3967d31945149d99de7ab6dc3fb260ad13d Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 09:31:02 +0200 Subject: [PATCH 02/14] Change content_uri to optional --- src/modules/automation_account/python_packages.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf index 8e9efc9c..4286c17c 100644 --- a/src/modules/automation_account/python_packages.tf +++ b/src/modules/automation_account/python_packages.tf @@ -4,7 +4,7 @@ resource "azurerm_automation_python3_package" "main" { name = try(each.value.name, each.key) resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) automation_account_name = azurerm_automation_account.main.name - content_uri = each.value.content_uri + content_uri = try(each.value.content_uri, null) content_version = try(each.value.content_version, null) hash_algorithm = try(each.value.hash_algorithm, null) hash_value = try(each.value.hash_value, null) From 2e3918bb1a8af9d0f814ad7a0992e292d504daf2 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 11:01:55 +0200 Subject: [PATCH 03/14] Add dependencies handling --- examples/automation_accounts.tfvars | 12 +++++++++--- src/modules/automation_account/python_packages.tf | 15 +++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/examples/automation_accounts.tfvars b/examples/automation_accounts.tfvars index 573971bb..72d7dad9 100644 --- a/examples/automation_accounts.tfvars +++ b/examples/automation_accounts.tfvars @@ -6,9 +6,15 @@ automation_accounts = { public_network_access_enabled = true python_packages = { - requests = { - content_uri = "https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz" - content_version = "2.32.3" + azure-common = { + version = "1.1.28" + content_uri = "https://files.pythonhosted.org/packages/py2.py3/a/azure-common/azure_common-1.1.28-py2.py3-none-any.whl" + } + + azure-mgmt-compute = { + version = "25.0.0" + content_uri = "https://files.pythonhosted.org/packages/py3/a/azure_mgmt_compute/azure_mgmt_compute-25.0.0-py3-none-any.whl" + depends_on_refs = ["azure-common"] } } diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf index 4286c17c..90a4a19b 100644 --- a/src/modules/automation_account/python_packages.tf +++ b/src/modules/automation_account/python_packages.tf @@ -1,12 +1,23 @@ +resource "terraform_data" "python_package_dependency" { + for_each = try(var.settings.python_packages, {}) + + input = [ + for package_ref in try(each.value.depends_on_refs, []) : + azurerm_automation_python3_package.main[package_ref].id + ] +} + resource "azurerm_automation_python3_package" "main" { for_each = try(var.settings.python_packages, {}) name = try(each.value.name, each.key) resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) automation_account_name = azurerm_automation_account.main.name - content_uri = try(each.value.content_uri, null) - content_version = try(each.value.content_version, null) + content_uri = each.value.content_uri + content_version = try(each.value.content_version, each.value.version, null) hash_algorithm = try(each.value.hash_algorithm, null) hash_value = try(each.value.hash_value, null) tags = try(each.value.tags, local.tags) + + depends_on = [terraform_data.python_package_dependency[each.key]] } From 1c4fd0def9cc1a3b8442719f5e52a26cd85376f0 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 11:12:53 +0200 Subject: [PATCH 04/14] Revert back changes --- examples/automation_accounts.tfvars | 12 +++--------- examples/keyvaults.tfvars | 10 ---------- src/modules/automation_account/python_packages.tf | 13 +------------ 3 files changed, 4 insertions(+), 31 deletions(-) diff --git a/examples/automation_accounts.tfvars b/examples/automation_accounts.tfvars index 72d7dad9..573971bb 100644 --- a/examples/automation_accounts.tfvars +++ b/examples/automation_accounts.tfvars @@ -6,15 +6,9 @@ automation_accounts = { public_network_access_enabled = true python_packages = { - azure-common = { - version = "1.1.28" - content_uri = "https://files.pythonhosted.org/packages/py2.py3/a/azure-common/azure_common-1.1.28-py2.py3-none-any.whl" - } - - azure-mgmt-compute = { - version = "25.0.0" - content_uri = "https://files.pythonhosted.org/packages/py3/a/azure_mgmt_compute/azure_mgmt_compute-25.0.0-py3-none-any.whl" - depends_on_refs = ["azure-common"] + requests = { + content_uri = "https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz" + content_version = "2.32.3" } } diff --git a/examples/keyvaults.tfvars b/examples/keyvaults.tfvars index 2b1f8d18..9c8832e4 100644 --- a/examples/keyvaults.tfvars +++ b/examples/keyvaults.tfvars @@ -47,16 +47,6 @@ virtual_networks = { } } - -log_analytics_workspaces = { - testw1 = { - name = "testw1-tc66" - resource_group_ref = "rg_test" - retention_in_days = 30 - } -} - - resource_groups = { rg_test = { name = "rg-test-dv-ne-01" diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf index 90a4a19b..8e9efc9c 100644 --- a/src/modules/automation_account/python_packages.tf +++ b/src/modules/automation_account/python_packages.tf @@ -1,12 +1,3 @@ -resource "terraform_data" "python_package_dependency" { - for_each = try(var.settings.python_packages, {}) - - input = [ - for package_ref in try(each.value.depends_on_refs, []) : - azurerm_automation_python3_package.main[package_ref].id - ] -} - resource "azurerm_automation_python3_package" "main" { for_each = try(var.settings.python_packages, {}) @@ -14,10 +5,8 @@ resource "azurerm_automation_python3_package" "main" { resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) automation_account_name = azurerm_automation_account.main.name content_uri = each.value.content_uri - content_version = try(each.value.content_version, each.value.version, null) + content_version = try(each.value.content_version, null) hash_algorithm = try(each.value.hash_algorithm, null) hash_value = try(each.value.hash_value, null) tags = try(each.value.tags, local.tags) - - depends_on = [terraform_data.python_package_dependency[each.key]] } From 45fd0ee0425c50e4dbb23315a1e70db225325347 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 11:37:57 +0200 Subject: [PATCH 05/14] Add optional param --- src/modules/automation_account/python_packages.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf index 8e9efc9c..4286c17c 100644 --- a/src/modules/automation_account/python_packages.tf +++ b/src/modules/automation_account/python_packages.tf @@ -4,7 +4,7 @@ resource "azurerm_automation_python3_package" "main" { name = try(each.value.name, each.key) resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) automation_account_name = azurerm_automation_account.main.name - content_uri = each.value.content_uri + content_uri = try(each.value.content_uri, null) content_version = try(each.value.content_version, null) hash_algorithm = try(each.value.hash_algorithm, null) hash_value = try(each.value.hash_value, null) From 5c78116e0d4f6c998adb7cc1ab049200942a1902 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 11:41:16 +0200 Subject: [PATCH 06/14] Revert back change --- src/modules/automation_account/python_packages.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/automation_account/python_packages.tf b/src/modules/automation_account/python_packages.tf index 4286c17c..8e9efc9c 100644 --- a/src/modules/automation_account/python_packages.tf +++ b/src/modules/automation_account/python_packages.tf @@ -4,7 +4,7 @@ resource "azurerm_automation_python3_package" "main" { name = try(each.value.name, each.key) resource_group_name = try(local.resource_group_name, var.settings.resource_group_name) automation_account_name = azurerm_automation_account.main.name - content_uri = try(each.value.content_uri, null) + content_uri = each.value.content_uri content_version = try(each.value.content_version, null) hash_algorithm = try(each.value.hash_algorithm, null) hash_value = try(each.value.hash_value, null) From 48c066dc3e1396c45e158de5d9ef015a8026417b Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 15:58:23 +0200 Subject: [PATCH 07/14] Add resource refs in jobs params block --- src/automation_runbooks.tf | 11 ++++++ src/modules/automation_runbook/_locals.tf | 41 +++++++++++++++++++++++ src/modules/automation_runbook/main.tf | 16 ++++++--- src/mssql_servers.tf | 4 +-- 4 files changed, 65 insertions(+), 7 deletions(-) diff --git a/src/automation_runbooks.tf b/src/automation_runbooks.tf index 5b94d1c8..a2e9befd 100644 --- a/src/automation_runbooks.tf +++ b/src/automation_runbooks.tf @@ -13,6 +13,17 @@ module "automation_runbooks" { (var.landingzone.key) = { automation_accounts = module.automation_accounts resource_groups = module.resource_groups + managed_identities = module.managed_identities + linux_virtual_machines = { + for key, vm in module.virtual_machines : + key => vm.linux_virtual_machines[0] + if length(vm.linux_virtual_machines) > 0 + } + windows_virtual_machines = { + for key, vm in module.virtual_machines : + key => vm.windows_virtual_machines[0] + if length(vm.windows_virtual_machines) > 0 + } } }, { diff --git a/src/modules/automation_runbook/_locals.tf b/src/modules/automation_runbook/_locals.tf index 68d4cfe2..718a10e7 100644 --- a/src/modules/automation_runbook/_locals.tf +++ b/src/modules/automation_runbook/_locals.tf @@ -15,4 +15,45 @@ locals { var.global_settings.inherit_resource_group_tags ? local.resource_group.tags : {}, try(var.settings.tags, {}) ) + + # Resolve landing zone per job schedule + job_lzkeys = { + for js_key, js in try(var.settings.job_schedules, {}) : + js_key => try(js.parameters.lzkey, var.client_config.landingzone_key) + } + + # Resolve parameters + job_schedule_parameters = { + for js_key, js in try(var.settings.job_schedules, {}) : + + js_key => merge( + # 1. Resolve all parameters (including _ref) + { + for p_key, p_val in try(js.parameters, {}) : + lower(replace(p_key, "_ref", "")) => ( + # CASE 1: resolve reference + endswith(p_key, "_ref") && length(trim(p_val)) > 0 ? + try( + lookup( + lookup( + var.resources[local.job_lzkeys[js_key]], + split("/", p_val)[0], + {} + ), + split("/", p_val)[1], + {} + )[split("/", p_val)[2]], + null + ) + # CASE 2: direct value + : p_val + ) + }, + + # 2. Always set subscriptionid + { + subscription_id = try(js.parameters.subscription_id, var.global_settings.subscription_id) + } + ) + } } diff --git a/src/modules/automation_runbook/main.tf b/src/modules/automation_runbook/main.tf index 3e631503..f93012bc 100644 --- a/src/modules/automation_runbook/main.tf +++ b/src/modules/automation_runbook/main.tf @@ -62,14 +62,22 @@ resource "azurerm_automation_runbook" "main" { } } + # dynamic "job_schedule" { + # for_each = try(var.settings.job_schedules, {}) + # content { + # schedule_name = job_schedule.value.schedule_name + # parameters = tomap({ + # for k, v in try(job_schedule.value.parameters, {}) : + # lower(k) => v + # }) + # } + # } + dynamic "job_schedule" { for_each = try(var.settings.job_schedules, {}) content { schedule_name = job_schedule.value.schedule_name - parameters = tomap({ - for k, v in try(job_schedule.value.parameters, {}) : - lower(k) => v - }) + parameters = local.job_schedule_parameters[job_schedule.key] } } } diff --git a/src/mssql_servers.tf b/src/mssql_servers.tf index e8dd0073..7c745ae5 100644 --- a/src/mssql_servers.tf +++ b/src/mssql_servers.tf @@ -39,7 +39,7 @@ module "mssql_failover_group" { resources = merge( { (var.landingzone.key) = { - mssql_servers = module.mssql_servers + mssql_servers = module.mssql_servers } }, { @@ -47,5 +47,3 @@ module "mssql_failover_group" { } ) } - - From 7441a9d3e8aa96511f9ab004aa8fc2827894796b Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 16:04:17 +0200 Subject: [PATCH 08/14] Fix typo --- src/modules/automation_runbook/_locals.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/automation_runbook/_locals.tf b/src/modules/automation_runbook/_locals.tf index 718a10e7..dc229002 100644 --- a/src/modules/automation_runbook/_locals.tf +++ b/src/modules/automation_runbook/_locals.tf @@ -32,7 +32,7 @@ locals { for p_key, p_val in try(js.parameters, {}) : lower(replace(p_key, "_ref", "")) => ( # CASE 1: resolve reference - endswith(p_key, "_ref") && length(trim(p_val)) > 0 ? + endswith(p_key, "_ref") && length(trimspace(p_val)) > 0 ? try( lookup( lookup( @@ -50,7 +50,7 @@ locals { ) }, - # 2. Always set subscriptionid + # 2. Always set subscription_id { subscription_id = try(js.parameters.subscription_id, var.global_settings.subscription_id) } From d401368b69b2a156d61e995c8a73972b91cc6d61 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 16:14:00 +0200 Subject: [PATCH 09/14] Change logic to keep original keys --- src/modules/automation_runbook/_locals.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/automation_runbook/_locals.tf b/src/modules/automation_runbook/_locals.tf index dc229002..f725ec34 100644 --- a/src/modules/automation_runbook/_locals.tf +++ b/src/modules/automation_runbook/_locals.tf @@ -27,11 +27,11 @@ locals { for js_key, js in try(var.settings.job_schedules, {}) : js_key => merge( - # 1. Resolve all parameters (including _ref) + # 1. Resolve all parameters (keep original keys) { for p_key, p_val in try(js.parameters, {}) : - lower(replace(p_key, "_ref", "")) => ( - # CASE 1: resolve reference + p_key => ( + # CASE 1: resolve reference if ends with _ref endswith(p_key, "_ref") && length(trimspace(p_val)) > 0 ? try( lookup( From bd8630e3cc0db3976550f72d75c844a0ab1e8b79 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 16:56:44 +0200 Subject: [PATCH 10/14] Export vm names --- .../virtual_machines/linux_virtual_machine/_outputs.tf | 4 ++++ .../virtual_machines/virtual_machine_default/_ouputs.tf | 4 ++++ .../virtual_machines/windows_virtual_machine/_ouputs.tf | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/modules/virtual_machines/linux_virtual_machine/_outputs.tf b/src/modules/virtual_machines/linux_virtual_machine/_outputs.tf index 13ab3947..04a9e8c7 100644 --- a/src/modules/virtual_machines/linux_virtual_machine/_outputs.tf +++ b/src/modules/virtual_machines/linux_virtual_machine/_outputs.tf @@ -2,6 +2,10 @@ output "id" { value = azurerm_linux_virtual_machine.main.id } +output "name" { + value = azurerm_linux_virtual_machine.main.name +} + output "private_ip_addresses" { value = azurerm_linux_virtual_machine.main.private_ip_addresses } diff --git a/src/modules/virtual_machines/virtual_machine_default/_ouputs.tf b/src/modules/virtual_machines/virtual_machine_default/_ouputs.tf index 521eb59a..b677b60a 100644 --- a/src/modules/virtual_machines/virtual_machine_default/_ouputs.tf +++ b/src/modules/virtual_machines/virtual_machine_default/_ouputs.tf @@ -1,3 +1,7 @@ output "id" { value = azurerm_virtual_machine.main.id } + +output "name" { + value = azurerm_virtual_machine.main.name +} diff --git a/src/modules/virtual_machines/windows_virtual_machine/_ouputs.tf b/src/modules/virtual_machines/windows_virtual_machine/_ouputs.tf index 4c5a9cb4..27d11f44 100644 --- a/src/modules/virtual_machines/windows_virtual_machine/_ouputs.tf +++ b/src/modules/virtual_machines/windows_virtual_machine/_ouputs.tf @@ -1,3 +1,7 @@ output "id" { value = azurerm_windows_virtual_machine.main.id } + +output "name" { + value = azurerm_windows_virtual_machine.main.name +} From 4cb1b21c58020dfa1dfa755d5a23e823b4a13646 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 17:49:21 +0200 Subject: [PATCH 11/14] Add reference --- src/automation_runbooks.tf | 7 ++++--- .../automation_job_schedule/_outputs.tf | 4 ++++ src/modules/automation_runbook/main.tf | 19 ++++++------------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/automation_runbooks.tf b/src/automation_runbooks.tf index a2e9befd..2e5b93a4 100644 --- a/src/automation_runbooks.tf +++ b/src/automation_runbooks.tf @@ -11,9 +11,10 @@ module "automation_runbooks" { resources = merge( { (var.landingzone.key) = { - automation_accounts = module.automation_accounts - resource_groups = module.resource_groups - managed_identities = module.managed_identities + automation_accounts = module.automation_accounts + resource_groups = module.resource_groups + managed_identities = module.managed_identities + automation_jobs_schedules = module.automation_jobs_schedules linux_virtual_machines = { for key, vm in module.virtual_machines : key => vm.linux_virtual_machines[0] diff --git a/src/modules/automation_job_schedule/_outputs.tf b/src/modules/automation_job_schedule/_outputs.tf index 012661d2..8fa2fa43 100644 --- a/src/modules/automation_job_schedule/_outputs.tf +++ b/src/modules/automation_job_schedule/_outputs.tf @@ -2,6 +2,10 @@ output "id" { value = azurerm_automation_job_schedule.main.id } +output "name" { + value = azurerm_automation_job_schedule.main.name +} + output "job_schedule_id" { value = azurerm_automation_job_schedule.main.job_schedule_id } diff --git a/src/modules/automation_runbook/main.tf b/src/modules/automation_runbook/main.tf index f93012bc..cecf2304 100644 --- a/src/modules/automation_runbook/main.tf +++ b/src/modules/automation_runbook/main.tf @@ -62,22 +62,15 @@ resource "azurerm_automation_runbook" "main" { } } - # dynamic "job_schedule" { - # for_each = try(var.settings.job_schedules, {}) - # content { - # schedule_name = job_schedule.value.schedule_name - # parameters = tomap({ - # for k, v in try(job_schedule.value.parameters, {}) : - # lower(k) => v - # }) - # } - # } - dynamic "job_schedule" { for_each = try(var.settings.job_schedules, {}) content { - schedule_name = job_schedule.value.schedule_name - parameters = local.job_schedule_parameters[job_schedule.key] + schedule_name = try( + var.resources[try(job_schedule.value.job_lz_key, var.client_config.landingzone_key)] + .automation_schedules[job_schedule.value.schedule_ref].name, + job_schedule.value.schedule_name + ) + parameters = local.job_schedule_parameters[job_schedule.key] } } } From a71dc62370f7f13b74b48c342df34adb62be5e82 Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 17:58:11 +0200 Subject: [PATCH 12/14] Change module ref --- src/automation_runbooks.tf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/automation_runbooks.tf b/src/automation_runbooks.tf index 2e5b93a4..973554ac 100644 --- a/src/automation_runbooks.tf +++ b/src/automation_runbooks.tf @@ -11,10 +11,10 @@ module "automation_runbooks" { resources = merge( { (var.landingzone.key) = { - automation_accounts = module.automation_accounts - resource_groups = module.resource_groups - managed_identities = module.managed_identities - automation_jobs_schedules = module.automation_jobs_schedules + automation_accounts = module.automation_accounts + resource_groups = module.resource_groups + managed_identities = module.managed_identities + automation_schedules = module.automation_schedules linux_virtual_machines = { for key, vm in module.virtual_machines : key => vm.linux_virtual_machines[0] From 5e5cd62f81e47e05347950e4a3caf43a1b9b17bd Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 18:01:11 +0200 Subject: [PATCH 13/14] Remove output argument --- src/modules/automation_job_schedule/_outputs.tf | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/modules/automation_job_schedule/_outputs.tf b/src/modules/automation_job_schedule/_outputs.tf index 8fa2fa43..012661d2 100644 --- a/src/modules/automation_job_schedule/_outputs.tf +++ b/src/modules/automation_job_schedule/_outputs.tf @@ -2,10 +2,6 @@ output "id" { value = azurerm_automation_job_schedule.main.id } -output "name" { - value = azurerm_automation_job_schedule.main.name -} - output "job_schedule_id" { value = azurerm_automation_job_schedule.main.job_schedule_id } From 105f8b4745acaa025cbf5777764397fe9ea29f5f Mon Sep 17 00:00:00 2001 From: Borislav Raynov Date: Fri, 27 Mar 2026 18:22:39 +0200 Subject: [PATCH 14/14] Add examples --- examples/automation_accounts.tfvars | 85 ++---------------- examples/automation_runbooks.tfvars | 135 +++++----------------------- 2 files changed, 29 insertions(+), 191 deletions(-) diff --git a/examples/automation_accounts.tfvars b/examples/automation_accounts.tfvars index 573971bb..8e2ec1a9 100644 --- a/examples/automation_accounts.tfvars +++ b/examples/automation_accounts.tfvars @@ -1,25 +1,25 @@ automation_accounts = { test_auto_acc = { - name = "automatio-account-test" + name = "automation-account-test" resource_group_ref = "rg_test" + sku_name = "Basic" local_authentication_enabled = true public_network_access_enabled = true + identity = { + type = "SystemAssigned" + } + python_packages = { requests = { - content_uri = "https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz" - content_version = "2.32.3" + version = "2.32.3" + content_uri = "https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz" } } tags = { Env = "Test" } - - encryption = { - key_ref = "kvkey_test1" - mi_ref = "id_test" - } } } @@ -36,72 +36,3 @@ resource_groups = { } } } - -virtual_networks = { - vnet_test = { - name = "vnet-test-dv-ne-01" - resource_group_ref = "rg_test" - cidr = ["10.10.10.0/24"] - subnets = { - snet_sqlmi = { - name = "snet-sql-managed-instance" - cidr = ["10.10.10.0/25"] - delegation = "sql_managed_instance" - } - snet_private_endpoints = { - name = "snet-private-endpoints" - cidr = ["10.10.10.128/25"] - service_endpoints = ["Microsoft.Storage", "Microsoft.KeyVault"] - } - } - } -} - -managed_identities = { - id_test = { - name = "id-test-dv-ne-01" - resource_group_ref = "rg_test" - } -} - -keyvaults = { - kv_test = { - name = "kv-test-dv-ne-01" - resource_group_ref = "rg_test" - network_rules = { - default_action = "Deny" - allowed_ips = ["10.10.10.10", "20.20.20.20"] - subnets = { - allow_app1 = { - subnet_ref = "vnet_test/snet_private_endpoints" - } - } - } - } -} - -key_vault_keys = { - kvkey_test1 = { - name = "generated-certificate" - key_vault_ref = "kv_test" - key_type = "RSA" - key_size = "2048" - - key_opts = [ - "decrypt", - "encrypt", - "sign", - "unwrapKey", - "verify", - "wrapKey", - ] - - rotation_policy = { - expire_after = "P90D" - notify_before_expiry = "P29D" - automatic = { - time_before_expiry = "P30D" - } - } - } -} diff --git a/examples/automation_runbooks.tfvars b/examples/automation_runbooks.tfvars index dab7b25b..57cf26b0 100644 --- a/examples/automation_runbooks.tfvars +++ b/examples/automation_runbooks.tfvars @@ -12,59 +12,18 @@ automation_runbooks = { Env = "Test" } - draft = { - edit_mode_enabled = true - output_types = ["string"] - - content_link = { - uri = "https://raw.githubusercontent.com/org/repo/dev/runbooks/cleanup.ps1" - version = "0.9.0" - - hash = { - algorithm = "SHA256" - value = "B32E61E3D26D9C94D2AAFF5735C542A829E94C6C7BBCE83B7298C11B9F678ABC" - } - } - - parameters = { - param_01 = { - key = "RetentionDays" - type = "Int" - mandatory = true - position = 1 - default_value = "30" - } - param_02 = { - key = "storageaccount" - type = "String" - mandatory = false - position = 2 - default_value = "mystorageacct" - } - } - } - publish_content_link = { - uri = "https://raw.githubusercontent.com/org/repo/main/runbooks/cleanup.ps1" - version = "1.0.0" - - hash = { - algorithm = "SHA256" - value = "C67F36DDA2AC0AAE7B44B69B7AA7BB22113E6543E0AD91A9A6DA27676B8D5A62" - } - } job_schedules = { daily = { - schedule_name = "Dailymidnight" + schedule_ref = "daily_schedule" parameters = { RetentionDays = "30" } } weekly = { - schedule_name = "weeklyreport" + schedule_ref = "weekly_schedule" parameters = { - RetentionDays = "90" - StorageAccount = "archivestorageacct" + RetentionDays = "90" } } } @@ -81,79 +40,31 @@ automation_accounts = { tags = { Env = "Test" } - encryption = { - key_ref = "kvkey_test1" - mi_ref = "id_test" - } } } -key_vault_keys = { - kvkey_test1 = { - name = "generated-certificate" - key_vault_ref = "kv_test" - key_type = "RSA" - key_size = "2048" - - key_opts = [ - "decrypt", - "encrypt", - "sign", - "unwrapKey", - "verify", - "wrapKey", - ] - - rotation_policy = { - expire_after = "P90D" - notify_before_expiry = "P29D" - automatic = { - time_before_expiry = "P30D" - } - } - } -} - -keyvaults = { - kv_test = { - name = "kv-test-dv-ne-01" +automation_schedules = { + daily_schedule = { resource_group_ref = "rg_test" - network_rules = { - default_action = "Deny" - allowed_ips = ["10.10.10.10", "20.20.20.20"] - subnets = { - allow_app1 = { - subnet_ref = "vnet_test/snet_private_endpoints" - } - } - } + acc_ref = "test_auto_acc" + name = "daily-midnight" + frequency = "Day" + interval = 1 + start_time = "2025-11-14T00:00:00Z" + expiry_time = "2026-01-01T00:00:00Z" + timezone = "UTC" + description = "Daily schedule at midnight" } -} -managed_identities = { - id_test = { - name = "id-test-dv-ne-01" + weekly_schedule = { resource_group_ref = "rg_test" - } -} - -virtual_networks = { - vnet_test = { - name = "vnet-test-dv-ne-01" - resource_group_ref = "rg_test" - cidr = ["10.10.10.0/24"] - subnets = { - snet_sqlmi = { - name = "snet-sql-managed-instance" - cidr = ["10.10.10.0/25"] - delegation = "sql_managed_instance" - } - snet_private_endpoints = { - name = "snet-private-endpoints" - cidr = ["10.10.10.128/25"] - service_endpoints = ["Microsoft.Storage", "Microsoft.KeyVault"] - } - } + acc_ref = "test_auto_acc" + name = "weekly-monday" + frequency = "Week" + interval = 1 + week_days = ["Monday"] + start_time = "2025-11-14T09:00:00Z" + description = "Runs every Monday at 9 AM UTC" } } @@ -162,10 +73,6 @@ resource_groups = { name = "rg-test-01" location = "northeurope" tags = { - DeployDate = "11/07/2025", - DeadLine = "11/07/2026", - Owner = "Test Test", - Project = "Test", } } }