Terraform-provider-azurerm: terraform always asks for login if AZURE_CONFIG_DIR is different from the default

Created on 25 Feb 2020  ·  6Comments  ·  Source: terraform-providers/terraform-provider-azurerm

_This issue was originally opened by @rnsc as hashicorp/terraform#24193. It was migrated here as a result of the provider split. The original body of the issue is below._


Terraform Version

Terraform v0.12.21

Terraform Configuration Files

# The default provider configuration
provider "azurerm" {
  subscription_id = "MySubscriptionId"
}

Crash Output

Error: Error building AzureRM Client: Error populating Client ID from the Azure CLI: No Authorization Tokens were found - please ensure the Azure CLI is installed and then log-in with `az login`.

Expected Behavior

Terraform should support the AZURE_CONFIG_DIR env var (which is supported by Azure CLI).

Actual Behavior

Terraform complains that I'm not logged in, even though I am.

Steps to Reproduce

Configure your env with the AZURE_CONFIG_DIR set to something other than "$HOME/.azure".
Do az login and confirm that the AZURE_CONFIG_DIR is populated with the Azure CLI session files.
Run terraform and it will complain that you need to login.

Additional Context

Azure CLI reference:
https://docs.microsoft.com/en-us/cli/azure/azure-cli-configuration?view=azure-cli-latest#cli-configuration-file

authentication bug

All 6 comments

Hello,

Is this on the radar?
Will it be implemented?

Kind regards,

ping @jbardin

I would like to provide some further info if that will help with the issue.

I ran terraform plan with strace watching for file access while AZURE_CONFIG_DIR is set to a directory different than the default. Strace shows the following:

$ strace -e file -f -s99999 -o /tmp/terraform.strace terraform plan
...
4393  openat(AT_FDCWD, "/home/toklinov/.azureconfigs/lutraman/azureProfile.json", O_RDONLY|O_CLOEXEC) = 13
4393  openat(AT_FDCWD, "/home/toklinov/.azure/accessTokens.json", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
...

The first line is showing that terraform is loading the azureProfile.json from the location pointed to by the value at AZURE_CONFIG_DIR, the second line show terraform trying to load the accessTokens.json file from the default location.

I hope this helps in moving this issue further

This has been released in version 2.16.0 of the provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. As an example:

provider "azurerm" {
    version = "~> 2.16.0"
}
# ... other configuration ...

We're still having the issue when using an Azure backend state.
Is this on the provider team side, or on terraform one ?

I'm going to lock this issue because it has been closed for _30 days_ ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. If you feel I made an error 🤖 🙉 , please reach out to my human friends 👉 [email protected]. Thanks!

Was this page helpful?
0 / 5 - 0 ratings