Search code examples
azureterraformterraform-provider-azureazure-container-registry

ACR purge task using terraform not working as expected


Creating ACR like below

resource "azurerm_container_registry" "acr" {
  name                = var.azure_container_registry_name
  resource_group_name = var.resource_group.name
  location            = var.location
}

And purge task like below

resource "azurerm_container_registry_task" "acr_purge_task" {
  name                  = "scheduledAcrPurgeTask"
  container_registry_id = azurerm_container_registry.acr.id
  platform {
    os           = "Linux"
  }
  encoded_step {
    task_content = <<EOF
    version: v1.1.0
    steps:
      - cmd: acr purge --filter 'REPO:TEST.*' --untagged --ago 10m
        disableWorkingDirectoryOverride: true
        timeout: 3600
    EOF
    context_path = "/dev/null"
  }
  timer_trigger {
    name     = "t1"
    schedule = "*/15 * * * *"
    enabled  = true
  }
}

The task is getting creating successfully but when ran I am getting below error

Unable to find image 'acr:latest' locally
docker: Error response from daemon: pull access denied for acr, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

I am not sure why this is trying to find image in acr:latest as I am maintaining REPO as my repository.


Solution

  • Silly mistake I removed the empty spaces before lines

    version: v1.1.0
    steps:
      - cmd: acr purge --filter 'REPO:TEST.*' --untagged --ago 10m
        disableWorkingDirectoryOverride: true
        timeout: 3600
    

    earlier

        version: v1.1.0
        steps:
          - cmd: acr purge --filter 'REPO:TEST.*' --untagged --ago 10m
            disableWorkingDirectoryOverride: true
            timeout: 3600
    

    I don't why terraform or either the Azure didn't provide better error response.