-
Notifications
You must be signed in to change notification settings - Fork 986
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
add conflictsWith
to provider schema
#2084
Conversation
While I totally agree this change is technically correct, the old behaviour has a useful side effect. What I've been doing for years is to only set
The actual auth will be configured through env vars (e.g. I use This is useful in the sense that it allows Terraform code to enforce the exact cluster a config is supposed to be used, while at the same time allowing auth information to be configured through potentially different manners, not just between developers, but between local and CI as well (which iirc was certainly a case at my previous job). (And yes it did happen that we used a wrong config in the wrong cluster, hence I looked around for way to prevent it) This is now impossible due to:
I'm a bit upset that this is not released as a major version even though I'll be the first to admit I was abusing the behaviour, still, I think the ability to enforce the correct cluster without hardcoding the auth has some merit. I would like to propose an alternative solution, instead of using Before you ask, I run EKS and I'm aware of the I want to stress again I totally see where this change is coming from, but I want to explain my (ab)use case and I do believe it will be helfpul especially for people operating many kube clusters, to be able to enforce the correct cluster in code, while keeping the auth flexible. (Maybe, we could introduce a I will totally understand if it doesn't happen, but I do wish that this change be reverted in this major version and explore some other options instead, or introduce only in the next major version. We do not use Terraform lockfiles because of a whole slew of other issues, and in general we would like to use latest providers (locked to major version). |
Breaking change for us. Would have been nice if this could have initially been a Warning instead of Error, giving some time to "fix" our configuration. We usually auto-upgrade providers to the newest minor version, not expecting things to break, as required by SemVer. |
I have a few problems with this. As others have mentioned, this is a breaking change in a minor version release, which violates SemVer, and has caused a lot of disruption with no notice. The documentation has not been updated to indicate what conflicts with what. For example, does This change removes our ability to override environment variables. In #1175, @dak1n1 explained that v2 of this provider consciously avoided taking configuration from the After we fix the breakage by removing
(Confusing because SuggestionI believe the better path forward is to arrange the configuration options in a hierarchy, rather than cause them to conflict. Ideally the provider would use configuration provided directly in the provider block in preference to environment variables, and not complain (or perhaps issue a warning) if the environment variables provide a different configuration than what is specified in the provider block. This would allow the provider to support Until v3 is ready, please revert this change and discuss backwards compatible improvements instead. |
Thank you for your thoughtful responses @aquarhead @Pell17 @Nuru – we are going to revert this change for now. We will put out a hotfix release once the above PR is merged. |
This change also does not care about the value of the parameters. I just ran into a conflict between |
Description
This resolves the issue that comes up when wanting to use 2 k8s configurations
Relates to #1141, updates the original PR
Acceptance tests
Output from acceptance testing:
Release Note
Release note for CHANGELOG:
References
Community Note