-
Notifications
You must be signed in to change notification settings - Fork 9.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provider Install Failure when using Azure CloudShell's CloudDrive #17115
Comments
Hi @jeffreyCline! Sorry for this annoying error and thanks for reporting it. I just reproduced this in Cloud Shell when running in a directory under Terraform here is trying to apply the executable mode to the plugin binary so it can be executed as a child process of Terraform. Indeed, it works when run in the home directory of the Cloud Shell user, creating a binary with the executable flag set. I see that the mount settings for
The
So with all of this said, a possible fix here would be to test to see if the extracted file already has the executable mode set before trying to set it. This is a little tricky because on a different system the forced mode might be something more ambiguous, like An extra tricky detail here is that it looks like this mode is coming from the archive metadata, and thus |
@apparentlymart Another possible idea for a fix would be to move the check up into the When an error is returned we could do the below additional checks:
If all of the checks pass we could safely ignore the error and continue execution else Would you by any chance happen to have an ETA for this fix as it is a blocking issue for many of our core CloudShell scenarios. |
I notice the reference here from Azure/terraform-azurerm-network#10 which raises the fact that this is a more general problem than just plugin installation: anything done with
Since I think any fix here must support both provider and module installation (since both are key features of Terraform that Cloud Shell users will presumably want), it seems like the only reasonable path here would be to make that For modules, this would mean that any module containing executable files (e.g. a script intended to be run using the This breaking change to I'm not able to given an ETA on fixing this at the moment since we need to first discuss the above proposal with the teams working on other |
@apparentlymart any update on this issue ? We have been asked by customers for this issue again and again. |
@apparentlymart I don't think there is anything for the Hashicorp engineers to do here, I think the root cause of this issue is the way the CloudShell team is mounting the cifs share. I looked at their bash file and they do not have the noperm argument. I will work with the CloudShell team to add this argument to the mount call which should solve this issue. |
Thanks for following up, @jeffreyCline! Given that outcome, I'm going to close this issue for now. It does sound like |
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 have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further. |
Terraform Version
Configuration File
Crash Output
Expected Behavior
Provider should have installed without error.
Actual Behavior
Installing provider error occurred.
Steps to Reproduce
terraform init
Additional Context
This issue happens when using the Azure CloudShell's CloudDrive, the CloudDrive is an SMB mounted volume where CHMOD is not supported which causes this issue when installing any provider on the CloudShell instance. This appears to be an issue in the hashicorp/go-getter code base, which I believe could be fixed by either:
The text was updated successfully, but these errors were encountered: