Live data from Hacker News

Remove default "terraform" partner_id

github.com

51–60 of 81 posts

Re: Remove default "terraform" partner_id

#51

It's a random GUID that lets the company track how much their tool is used in deployments in Azure. It's about as noninvasive as it gets.

Feels sort of like a User Agent string to me.

I agree. I'm not mad at cURL for setting a user-agent string, and I don't see how this is much different unless I'm missing something.

Re: Remove default "terraform" partner_id

#52

It's a random GUID that lets the company track how much their tool is used in deployments in Azure. It's about as noninvasive as it gets.

Feels sort of like a User Agent string to me.

It's about as unique as a user agent that only says "Firefox" or "Chrome". Seems pretty acceptable to me.

Re: Remove default "terraform" partner_id

#53
post #38
post #31

Anyone know if this causes users to become noncompliant with GDPR, FedRAMP, or similar regulatory protections?

Did you read what the issue is even about? It's about setting the string "terraform" in a config file. It's not some personal data or evil tracking token.

Most comments are overblowing this issue, but you're under-blowing it. It's not just "a config file".

Let me try to describe what the Azure Partner ID is meant to be used for. Say you build a SaaS service that runs on Azure. As many Azure-based companies do, you have a Sales and Technical Account Manager from Microsoft that is responsible for things like getting you discounts based on sustained usage, perhaps helping bring you to market through their own sales channels, etc. They (and subsequently you) are measured on the basis of how much consumption of Azure resources you drive.

While you're still a purely-SaaS product, this consumption is easy to measure. It's basically just the size of your bill at the end of every month. But as your business grows, you start to have some customers who don't want to put their data into some random SaaS application; they'd rather run your application inside their subscription, either through some middleware or just in its own resource group. You can do this integration technically, but now you have a problem-all that consumption that used to be credited to you is now invisible. From your Azure sales rep's perspective, your usage is going down. It becomes harder to justify all those discounts and services they're giving you.

Enter the Azure Partner ID. You simply set this flag on all the resources you're spinning up inside your customers' subscription, and it tags that consumption as being driven by you. The bill is going to someone else, but you get the credit. You go to your sales rep and say "please add all the resources from Customer XYZ with Partner ID ABC to me", and they have some tooling to do that.

That's the field that Hashicorp is using/abusing. It doesn't do anything directly by itself (as far as I can tell, it's totally invisible to normal off-the-shelf Azure tooling), but clearly somewhere the infrastructure exists for someone who doesn't normally get to look at Customer XYZ's subscription, to at least see the consumption of some part of it. That's a violation, in my opinion.

It's twisting the semantics of the tag, at the very least. You can easily make the case that a SaaS service is directly contributing to consumption when they run a service in someone's subscription. That's almost certainly consumption that wouldn't have existed at all without that service. On the other hand, it's clearly ridiculous to say that if it wasn't for Terraform, none of the resources Terraform has spun up would've been created.

Re: Remove default "terraform" partner_id

#54

I wonder how much the outraged individual has contributed financially to what is a fabulous tool that all DevOps engineers benefit directly from. I get that it should have been discussed, but even still - the code is there for all to see and read whenever they can be bothered too. They can even fork and build it without this. It's this level of open source snobbery that makes me think that eventually only the big com…

If you don't want people to have discussions about your code then don't release it, ever, in any format. If you don't want to have discussions on your bug tracker then don't have one open to the world. Releasing something as open source doesn't mean you get total control over how other people feel or talk about it. This isn't even outrage, it's a mature constructive discussion of a released product.

Re: Remove default "terraform" partner_id

#55
Hi everyone,

I'm the founder of HashiCorp.

I want to make something clear up front that this does NOT allow us to see resource usage by Terraform user and does NOT result in credits or revenue sharing at all. HashiCorp has no direct access to this information in any form.

Before explaining "why" we do this, I do want to apologize and say that adding this without proper explanation was a mistake. It isn't clear why it's there and I think enough companies have hurt users with features like this that defaulting to a negative reaction makes sense. I'm sorry. I promise (and will explain) that our usage is not nefarious, and even further this ID does not give us access to anything directly.

The "why": the partner ID lets Microsoft better track Terraform usage internally (with data they already have access to, just lets them filter it by Terraform). Microsoft does share aggregate information with us ("x% of all Azure workloads") but does not go any more granular than that.

This information is used by Microsoft to gauge how much investment to make into Terraform as well as what resources are a priority to fix any issues or make improvements to. Microsoft is a big partner of ours[1] and as part of that partnership they employ full-time people to improve the Terraform provider. Part of making that partnership successful is measuring the output of it and this is one mechanism that allows them to do that. I can say that the usage information given by this partner code has directly resulted in more headcount being assigned to the "azurerm" Terraform provider that may not have been otherwise assigned.

Note that all this partner ID does is let Microsoft filter by "Terraform." They already have and use all information around what resources are being spun up by accounts (as you would expect any IaaS or even SaaS to do). This doesn't introduce anything else other than that easier filter for them.

The partner ID used by Terraform was provided directly by Microsoft and generated by them. It is not associated with our Azure accounts at all. This is an extra assurance that we don't have access to any partner information using this ID.

Some have pointed out that the docs specifically state that this is used for credit/revenue sharing. That is a feature of the partner ID but not one that we use. Azure is a large, complex platform and features are overloaded for different use cases. In our case, the partner ID does NOT provide us with any information, credits, or revenue. Zero.

Going forward, we will be building an option to opt out of using this partner ID. It was already noted in other comments that we made it configurable since there are other use cases for it that a Terraform user might want to set. We haven't made a direct option to opt-out and we will do that in the next release. As a workaround today, you can set any partner ID you want (an invalid value) and we will send that and that will function similarly.

Note that for years all our providers have also sent a custom user agent that notes Terraform and the version of Terraform being used. We haven't been secret about this (I've publicly tweeted about it many times), but it feels important to call out in this comment as well. This information could also be used by providers to determine Terraform usage. Similarly, HashiCorp has no direct access to this information.

I'm happy to answer any questions, and once again I'm sorry about how this wasn't communicated up front.

EDIT (2 hours after posting): We've opened a PR for adding the opt-out behavior which also includes an environment variable you can set. We plan to include this as part of the next patch release. https://github.com/terraform-providers/terraform-provider-az...

[1]: https://www.hashicorp.com/blog/hashicorp-and-microsoft-exten...

Re: Remove default "terraform" partner_id

#56

Hi everyone, I'm the founder of HashiCorp. I want to make something clear up front that this does NOT allow us to see resource usage by Terraform user and does NOT result in credits or revenue sharing at all. HashiCorp has no direct access to this information in any form. Before explaining "why" we do this, I do want to apologize and say that adding this without proper explanation was a mistake. It isn't clear why it…

Thanks for hopping on here yourself, it definitely throws some bleach into the murky water.

Re: Remove default "terraform" partner_id

#58

Hi everyone, I'm the founder of HashiCorp. I want to make something clear up front that this does NOT allow us to see resource usage by Terraform user and does NOT result in credits or revenue sharing at all. HashiCorp has no direct access to this information in any form. Before explaining "why" we do this, I do want to apologize and say that adding this without proper explanation was a mistake. It isn't clear why it…

> I can say that the usage information given by this partner code has directly resulted in more headcount being assigned to the "azurerm" Terraform provider that may not have been otherwise assigned.

In 5 days? Impressive

Re: Remove default "terraform" partner_id

#59

This does indeed look bad, but I'd like to give Hashicorp the benefit of the doubt and allow them to respond before grabbing any pitchforks/torches. Let's not forget they've added a ton of value to many of our lives and have never required a cent (for the free version).

Thank you. I'm hijacking this top comment at the moment to share that I have responded: https://news.ycombinator.com/item?id=21389908

I hope that makes it very clear what this is, why it's there, and what we're doing about the GitHub issue raised. If there are any questions, please respond to that thread and I'll be happy to respond.

Re: Remove default "terraform" partner_id

#60
post #14
post #4

Isn't this what Partner ID is designed for? "Injects" is a strong word. Maybe "Hashicorp provides an Azure Partner ID in Terraform deployments for deployment stats, and some users may not want that" would be a better title.

By adding their partner ID, they get revenue based on the usage in Azure.

That's okay, provided they disclose it. Much like Ubuntu does with Amazon.
Post reply on HN