You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The RPC compatibility is signaled when publishing a provider, and terraform init will only download providers compatible with the protocol versions supported by the version of Terraform core running the command.
Our Current Setup
Right now, all our provider releases are published signaling their support for version 4 and version 5 of the protocol. This means Terraform 0.11 (speaks protocol 4) can use them, and Terraform 0.12 (speaks protocol 5) can use them. Which is obviously a nice thing.
It also, unfortunately, means we're limited to a lowest common denominator of functionality between the two providers, which is sometimes unpredictable in how it behaves.
For example, we are currently unable to publish alpha or beta versions of provider releases, because Terraform 0.11 has a broken implementation of semver parsing for providers, and won't handle those correctly.
The Proposal
My proposed fix for this is to publish future versions of the provider advertising support only protocol 5. This would make Terraform 0.11 ignore them when running terraform init. In theory, users could download the binaries themselves and put them in a specific location on their hard drive and continue using the new binaries with 0.11, but we'd stop supporting that and some things likely wouldn't work as intended.
The Blockers
This would be a major breaking change, and would thus need to be bundled into a major release.
Also, providers are currently released to releases.hashicorp.com. Terraform 0.11 downloads the appropriate providers during terraform init by iterating through them in reverse, looking for a provider that supports the necessary protocol version. So the more protocol v5 releases we do on releases.hashicorp.com, the slower Terraform 0.11 will be to init. So ideally we'd like to wait until releases are published somewhere other than releases.hashicorp.com.
The text was updated successfully, but these errors were encountered:
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!
ghost
locked and limited conversation to collaborators
Mar 28, 2020
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
About Terraform Protocols
Terraform operates by using a core binary that communicates over local RPC with provider plugin binaries. In Terraform 0.11, we were using version 4 of this RPC protocol. Terraform 0.12 communicates using version 5 of this RPC protocol.
The RPC compatibility is signaled when publishing a provider, and
terraform init
will only download providers compatible with the protocol versions supported by the version of Terraform core running the command.Our Current Setup
Right now, all our provider releases are published signaling their support for version 4 and version 5 of the protocol. This means Terraform 0.11 (speaks protocol 4) can use them, and Terraform 0.12 (speaks protocol 5) can use them. Which is obviously a nice thing.
It also, unfortunately, means we're limited to a lowest common denominator of functionality between the two providers, which is sometimes unpredictable in how it behaves.
For example, we are currently unable to publish alpha or beta versions of provider releases, because Terraform 0.11 has a broken implementation of semver parsing for providers, and won't handle those correctly.
The Proposal
My proposed fix for this is to publish future versions of the provider advertising support only protocol 5. This would make Terraform 0.11 ignore them when running
terraform init
. In theory, users could download the binaries themselves and put them in a specific location on their hard drive and continue using the new binaries with 0.11, but we'd stop supporting that and some things likely wouldn't work as intended.The Blockers
This would be a major breaking change, and would thus need to be bundled into a major release.
Also, providers are currently released to releases.hashicorp.com. Terraform 0.11 downloads the appropriate providers during
terraform init
by iterating through them in reverse, looking for a provider that supports the necessary protocol version. So the more protocol v5 releases we do on releases.hashicorp.com, the slower Terraform 0.11 will be to init. So ideally we'd like to wait until releases are published somewhere other than releases.hashicorp.com.The text was updated successfully, but these errors were encountered: