bramvdk
bramvdk

Reputation: 1557

Pass variables from terraform to arm template

I am deploying an ARM template with Terraform. We deploy all our Azure infra with Terraform but for AKS there are some preview features which are not in terraform yet so we want to deploy an AKS cluster with an ARM template. If I create a Log Analytics workspace with TF, how can I pass the workspace id to ARM.

resource "azurerm_resource_group" "test" {
  name     = "k8s-test-bram"
  location = "westeurope"
}

resource "azurerm_log_analytics_workspace" "test" {
  name                = "lawtest"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  sku                 = "PerGB2018"
  retention_in_days   = 30
}

So here is a snippet of the AKS ARM where I want to enable monitoring and I refer to the workspaceresourceId. But how do I define/declare the parameter to get the id from the workspace that I created with TF

        "properties": {
            "kubernetesVersion": "[parameters('kubernetesVersion')]",
            "enableRBAC": "[parameters('EnableRBAC')]",
            "dnsPrefix": "[parameters('DnsPrefix')]",
            "addonProfiles": {
                "httpApplicationRouting": {
                    "enabled": false
                },
                omsagent": {
                  "enabled": true,
                  "config": {
                    "logAnalyticsWorkspaceResourceID": "[parameters('workspaceResourceId')]"
                  }
                }
            },

Upvotes: 2

Views: 1729

Answers (1)

4c74356b41
4c74356b41

Reputation: 72191

you could use the parameters property of the azurerm_template_deployment deployment to pass in parameters:

  parameters = {
    "workspaceResourceId" = "${azurerm_log_analytics_workspace.test.id}"
  }

I think it should look more or less like that, here's the official doc on this.

Upvotes: 2

Related Questions