chore(exoscale): the provider constraint becomes an exact pin, and the safety floor stops depending on a registry's clock - #779
Merged
Conversation
…e safety floor stops depending on a registry's clock
`examples/stacks/exoscale` asked for `>= 0.71.0`. The floor was right; writing it
as a lower bound was the accident.
WHAT A LOWER BOUND ACTUALLY RESOLVED TO
`registry.terraform.io` and `registry.opentofu.org` do not index together, and
this repository drives both engines over the same stack. Measured 2026-09-14:
terraform 85 stable versions listed, `>= 0.71.0` resolved to 0.72.0
opentofu 84 stable versions listed, `>= 0.71.0` resolved to 0.71.0
**Two engines driving one stack with two different providers, both reporting
that it passed.** docs/clients.md already says a constraint's resolved version
"is not knowable here"; this is a step past that — it was not the SAME on the
two legs.
WHY IT MATTERS MORE HERE THAN ELSEWHERE
`terraformProviderFloor` is `v0.71.0` because below it the provider honours
EXOSCALE_API_ENDPOINT for only half its calls and the rest reach a paying
account — 57 requests, measured in #525. While the window was open the opentofu
leg sat EXACTLY on that floor. Not below it, and `guardSplitClients` would
refuse a client that were. But the margin was zero, held there by an indexing
schedule rather than by anything in this repository. That guard is the right
last line; it should not be the first.
The window closed on its own about forty minutes later, which is recorded in
the report was wrong. The mechanism did not close: it reopens at every
publication. It reopened for the Scaleway provider in the same hour.
WHAT 0.72.0 CARRIES
Read rather than assumed, from the commits between the two tags: SKS nodepool
kubelet max-pods, a ClickHouse dbaas resource, a new zone es-mad-1, and
re-enabled EIP tests. Nothing this emulator serves, which is why this is a pin
move and not a compatibility change.
PROVEN
- `conformance:stacks`: green — the three stacks applied, re-planned with no
resource change, destroyed.
- And the part a green gate does NOT prove, measured separately because its log
is filtered and does not say who answered: `init -upgrade` in a copy of the
stack installs **0.72.0 under terraform and 0.72.0 under tofu**. A pass with a
cached provider would have proved the wrong thing.
- `mise run check` and `docs:check` green. docs/clients.md now reads
"exact: the version that answered" for this row instead of "not knowable here".
NOT IN THIS CHANGE
The Outscale stacks keep `~> 1.7`. They agree across both registries today by
luck rather than by construction, and the same window will open at their next
publication — that is the general half of #778, and it is a decision rather than
an oversight.
Assisted-by: Claude Code (claude-opus-5)
stephrobert
force-pushed
the
chore/pin-exoscale-0.72.0
branch
from
September 14, 2026 19:36
b674f2e to
b8a2858
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
examples/stacks/exoscaleasked for>= 0.71.0. The floor was right; writingit as a lower bound was the accident.
What a lower bound actually resolved to
registry.terraform.ioandregistry.opentofu.orgdo not index together, andthis repository drives both engines over the same stack. Measured
2026-09-14:
>= 0.71.0resolved toTwo engines driving one stack with two different providers, both reporting that
it passed.
docs/clients.mdalready says a constraint's resolved version "isnot knowable here"; this is a step past that — it was not the same on the two
legs.
Why it matters more here than elsewhere
terraformProviderFloorisv0.71.0because below it the provider honoursEXOSCALE_API_ENDPOINTfor only half its calls and the rest reach a payingaccount — 57 requests, measured in #525.
While the window was open, the opentofu leg sat exactly on that floor. Not
below it, and
guardSplitClientswould refuse a client that were. But themargin was zero, held there by an indexing schedule rather than by anything in
this repository. That guard is the right last line; it should not be the first.
The window closed on its own about forty minutes later — recorded in #778 so
nobody re-measures 0.72.0 on both engines tomorrow and concludes the report was
wrong. The mechanism did not close: it reopens at every publication, and it
reopened for the Scaleway provider in the same hour.
What 0.72.0 carries
Read from the commits between the two tags rather than assumed: SKS nodepool
kubelet max-pods, a ClickHouse dbaas resource, a new zone
es-mad-1, re-enabledEIP tests. Nothing this emulator serves — which is why this is a pin move and
not a compatibility change.
Proven
conformance:stacks: green — three stacks applied, re-planned with noresource change, destroyed.
says who answered, so it was measured separately:
init -upgradein a copy ofthe stack installs 0.72.0 under terraform and 0.72.0 under tofu. A pass
with a cached provider would have proved the wrong thing.
mise run checkanddocs:checkgreen. The generated row indocs/clients.mdnow reads "exact: the version that answered" instead of"not knowable here".
Not in this change
The Outscale stacks keep
~> 1.7. They agree across both registries today byluck rather than by construction, and the same window opens at their next
publication — that is the general half of #778, a decision rather than an
oversight.
🤖 Generated with Claude Code