-
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
Azure ARM Support #4226
Azure ARM Support #4226
Conversation
@jen20 there seems to be a significant copy paste from this PR #3808 Now, not that it really matters, but it would be nice if the commits were done by the original authors of the code. :-) Due to the nature of this "fork" over the original PR, IMO it would be more correct to keep the previous PR open and refactor the code there. |
Hi @alexpilotti - I'm not at all opposed to giving credit for the original work using |
@jen20 the amended commit author on the patches is ok. It'd be also great to hear @aznashwan's opinion on the refactoring of his code in the form of a discussion on the PR. This is for the sake of getting the best possible combined results and benefit for the users. I'm definitely not opposing the refactoring that you are "suggesting", but some input in the changes at a first glance could be useful. |
The reasons for separating this out into a separate provider are primarily user-experience related:
In addition there are a few other things included on the
|
@jen20 as I said I'm not opposing the content of your changes. It's a relatively large PR and as such we were hoping and expecting such comments. The part on which I don't agree is the workflow: in a typical OSS process a reviewer comments on the commits in a PR and leaves a few days for the author to respond and / or implement the requested changes. If the author does not respond in a reasonable amount of time, it makes of course sense to proceed otherwise. What happened here, is that we submitted a PR (#3808) that nobody reviewed for a month, just to see it closed and copy / pasted in a different one (changing also the commits author in the process) without any review, which is not particularly correct IMO. Said that, considering that the goal is to get the best possible Azure support in Terraform, I'm personally ok in continuing our work based on this "forked" PR, provided of course that the commits are amended to match the original author and that a better review dialog is maintained for further activities. |
Greetings to all. It seems there isn't much love of Azure here anyway (compared with the vast surface of aws work on TF). Let's "scrum" and move fast. :) BTW, how many people actually have commit rights for Azure related issues? It will be great to know to speed up things. |
Hi @xied75, thanks for the comment. It's true that AWS has more activity today, but Azure is definitely on the upswing! Currently we're having HashiCorp core team members facilitate review and merge of Azure-related code, but we're always keeping an eye out for active community members to invite to the core team. It's important that we get this base ARM structure laid down properly, but once that's in we'll be able to move more quickly by parallelizing across resources. |
Hi @alexpilotti! We discussed internally and decided the scope of the changes was such that it was easier to make them internally than to communicate across the probably 3 or 4 round trips that would be required. The authorship of the original move across to this branch has been adjusted to accurately reflect @aznashwan's work (along with some of the changes which got it into a working state). If @aznashwan has some time to review this prior to merge that would be appreciated! Now that we have base support for the provider in place, it should be reasonably straightforward to proceed on the resources on a piecemeal basis on individual pull requests which are much easier to review and feed back on using the normal processes observed in the Terraform repository. Once again though, we'd like to thank @aznashwan and others involved at CloudBase for the contribution - it's a strong start to getting complete coverage of the the ARM API! |
It turns out the upstream |
Hello everyone! First off; I do very much appreciate the authorship acknowledgements (I'd even argue that there is extra code accidentally attributed to me, @jen20), though it was never really about that. Overall, I'd still argue that having the two providers merged would not have been that user unfriendly (realistically speaking, there is only the added Either way, I am indeed happy to see things progressing rapidly once more, and will lay out a handful of notes I have compiled on this PR (mostly small things). I'll also be adapting the handful of resources not pulled in here in anticipation of this one's merging and the true resource-ing beginning 😄 |
return nil, nil | ||
} | ||
|
||
pathOrContents, _, err := pathorcontents.Read(v.(string)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pathorcontents.Read gives back the contents as its first return value, so the variable's name is misleading...
Also, as @jen20 pointed out on my old PR, wasPath should have been checked and a proper warning returned if it was indeed an unsourced file.
OK, it seems that Azure/azure-sdk-for-go#246 has been fixed, so we can remove our fork of the Azure Go SDK. My guess is that MS have turned on the preview endpoint again, which is fine, at least in the short term. There should only be one last set of changes (based on @aznashwan's feedback as well as some additional work) before we are good to merge this stuff and we'll have reasonable exemplars for resource types. |
This commit cleans up some of the work on the Azure ARM provider following review by @phinze. Specifically: - Unnecessary ASM-targeted tests are removed - Validation is added to the `resource_group` resource - `dns_servers_names` -> `dns_servers` as per the API documentation - AZURE_SUBSCRIPTION_ID environment variable is renamed to be ARM_SUBSCRIPTION_ID in order to match the other environment variables
Just rebased this onto master to resolve some conflicts. The acceptance tests are now passing and resources track the natural Azure ID rather than the name. There is still some tidying up to do, however. |
After clean up work:
|
@@ -0,0 +1 @@ | |||
package main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is unnecessary, yeah?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is - following the pattern of all other provider bins though. We should probably get rid of all of them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 lets omit it here and circle around to remove the others
- Add documentation for resources - Rename files to match standard patterns - Add acceptance tests for resource groups - Add acceptance tests for vnets - Remove ARM_CREDENTIALS file - as discussed this does not appear to be an Azure standard, and there is scope for confusion with the azureProfile.json file which the CLI generates. If a standard emerges we can reconsider this. - Validate credentials in the schema - Remove storage testing artefacts - Use ARM IDs as Terraform IDs - Use autorest hooks for logging
LGTM! |
Preliminary support for Azure Resource Manager
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. |
This is a refactoring of the work begun by @aznashwan in #3808. for ARM support (discussion started in #3212).
It was decided that for usability purposes, the ARM API would be added as a new provider. That work is on this branch, along with two of the resources and the requisite documentation. Further work will go onto this branch before merging into
master
when it is sufficiently useful, and when there is a sufficiently robust set of acceptance tests which can be run during the nightly Travis builds in the same manner as the AWS work done by @phinze.