0.Core.Foundation/app.config.tf (131 lines of code) (raw):

################################################################################################## # Application Configuration (https://learn.microsoft.com/azure/azure-app-configuration/overview) # ################################################################################################## variable appConfig { type = object({ name = string type = string }) } locals { appConfigKey = { scriptExtensionLinux = "scriptExtensionLinux" scriptExtensionWindows = "scriptExtensionWindows" jobSchedulerDeadline = "jobSchedulerDeadline" jobSchedulerSlurm = "jobSchedulerSlurm" jobProcessorPBRT = "jobProcessorPBRT" jobProcessorBlender = "jobProcessorBlender" nvidiaCUDAWindows = "nvidiaCUDAWindows" hpAnywareAgent = "hpAnywareAgent" } } resource azurerm_role_assignment app_config_data_owner { role_definition_name = "App Configuration Data Owner" # https://learn.microsoft.com/azure/role-based-access-control/built-in-roles/integration#app-configuration-data-owner principal_id = data.azurerm_client_config.current.object_id scope = azurerm_app_configuration.studio.id } resource time_sleep app_config_rbac { create_duration = "30s" depends_on = [ azurerm_role_assignment.app_config_data_owner ] } resource azurerm_app_configuration studio { name = var.appConfig.name resource_group_name = azurerm_resource_group.studio.name location = azurerm_resource_group.studio.location sku = var.appConfig.type data_plane_proxy_authentication_mode = "Pass-through" data_plane_proxy_private_link_delegation_enabled = true local_auth_enabled = false identity { type = "UserAssigned" identity_ids = [ azurerm_user_assigned_identity.studio.id ] } } resource azurerm_app_configuration_key script_extension_linux { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.scriptExtensionLinux label = "Script Extension Linux" value = "2.1" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key script_extension_windows { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.scriptExtensionWindows label = "Script Extension Windows" value = "1.10" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key job_scheduler_deadline { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.jobSchedulerDeadline label = "Job Scheduler Deadline" value = "10.4.0.13" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key job_scheduler_slurm { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.jobSchedulerSlurm label = "Job Scheduler Slurm" value = "24.11.3" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key job_processor_pbrt { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.jobProcessorPBRT label = "Job Processor PBRT" value = "v4" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key job_processor_blender { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.jobProcessorBlender label = "Job Processor Blender" value = "4.4.3" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key nvidia_cuda_windows { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.nvidiaCUDAWindows label = "NVIDIA CUDA Windows" value = "12.8.1" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } resource azurerm_app_configuration_key hp_anyware_agent { configuration_store_id = azurerm_app_configuration.studio.id key = local.appConfigKey.hpAnywareAgent label = "HP Anyware Agent" value = "24.10.2" content_type = "kv" depends_on = [ time_sleep.app_config_rbac ] } output appConfig { value = { id = azurerm_app_configuration.studio.id name = azurerm_app_configuration.studio.name key = local.appConfigKey } }