chore(scaleway): the Terraform provider pin moves to 2.82.0, and the move measures what it exposed - #777
Merged
Conversation
…move measures what it exposed
The three exact pins in this repository go from 2.81.0 to 2.82.0: the
conformance fixture, examples/stacks/scaleway and examples/quickstart/scaleway.
The pin is exact so that moving it is an act, and this is that act.
WHAT THE RELEASE CHANGES THAT COULD REACH THIS EMULATOR
Read from the release notes rather than met one failure at a time. 2.82.0 adds
an `srn` attribute to six products, three of which this emulator serves — iam,
vpcgw, ipam/flexibleip — plus `fix(instance): infer project_id from server if
not explicit` on a pack this repository does serve. Everything else is a new
product (autoscaling, datawarehouse) or a test chore.
WHAT THAT TURNED OUT TO MEAN, MEASURED
`srn` is computed client-side, and the SDK 2.82.0 bumps to asks the gateway for
the domain to build it with:
apiMetadata, err := s.client.GetAPIMetadata() // GET /metadata
if err == nil {
resp.setSRN(apiMetadata.Domain)
}
This emulator mounts no `/metadata`. One apply plus destroy of the conformance
fixture, recorded through `feint proxy --record`: **539 exchanges over 100
paths, of which 148 are `GET /metadata`, every one answered 404** — 148 of the
run's 169 refusals. Nothing fails, because the error is discarded; that is luck
rather than a decision, and it is the shape of #257 exactly.
So the answer is known rather than guessed. A read-only shot at a real fr-par
account, no resource created, 2026-09-14:
GET https://api.scaleway.com/metadata -> 200
{"platform": "external", "partition": "scw", "domain": "scw.eu"}
Not mounted here, because `Route.Operation` must name an operation the drift
scan finds and that scan walks `api/<product>/<version>` only, where
`GetAPIMetadata` is not. A route declaring it becomes an orphan and all three
baselines carry zero. The instrument gets decided before the handler: #776, with
docs/limits.md carrying the measurement in the meantime.
The same shot recorded a second divergence, left to its own issue: the gateway
answers an unknown path with a Scaleway error document, where this emulator
answers `net/http`'s plain-text `404 page not found`.
PROVEN
- conformance:leg -- terraform: green, and the log says which client answered —
`Installed scaleway/scaleway v2.82.0 (signed, key ID F5BF26CADF6F9614)`;
- conformance:leg -- scw-cli, conformance:quickstart (scaleway up, empty second
plan, down), conformance:stacks: green;
- mise run check and docs:check green; the generated client tables regenerated.
- conformance:functional under incus-ovn, Scaleway half: seven machines, each
'running' and each Running on the host, public paths, firewall rules,
cross-VPC isolation, a restart through the API, and the stack taken down.
A false alarm worth recording, because a single probe produced it: the provider
registry answered 504 on v2.82.0's SHA256SUMS twice running, which reads exactly
like a broken release. Fifteen requests against 2.82.0 and fifteen against
2.81.0 as a witness came back 200/200 on both, same size. One attempt at a
remote service settles nothing.
The same measurement found a real outage, and it is not this release. The
functional leg's Outscale half died on `Failed to install provider
outscale/outscale v1.8.0 [...] 504 Gateway Timeout returned from github.com`,
and 15 requests for that asset came back **5 in 200 and 10 in 504** while both
Scaleway assets were 15/15. So the Outscale half of that leg is not measured
here, for a reason upstream of this repository and unrelated to the pin this
commit moves.
NOT IN THIS CHANGE
`mise run limits:check` is red on 9 sections whose cited issues closed after
anyone last looked. It was red on main before this branch — verified by stashing
— and is a separate piece of work. The section added here carries its own
acknowledgement and is not among them.
Assisted-by: Claude Code (claude-opus-5)
stephrobert
force-pushed
the
chore/pin-scaleway-provider-2.82.0
branch
from
September 14, 2026 15:03
02b1654 to
6e93ce5
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.
The three exact pins in this repository move from 2.81.0 to 2.82.0: the
conformance fixture,
examples/stacks/scalewayandexamples/quickstart/scaleway.The pin is exact so that moving it is an act, and this is that act.
What the release changes that could reach this emulator
Read from the release notes rather than met one failure at a time. 2.82.0 adds
an
srnattribute to six products, three of which this emulator serves —iam, vpcgw, ipam/flexibleip — plus
fix(instance): infer project_id from server if not explicit, on a pack this repository does serve. Everything else is a newproduct (autoscaling, datawarehouse) or a test chore.
What that turned out to mean, measured
srnis computed client-side, and the SDK that 2.82.0 bumps to asks the gatewayfor the domain to build it with:
This emulator mounts no
/metadata. Oneapplyplusdestroyof theconformance fixture, recorded through
feint proxy --record:GET /metadata{200: 339, 404: 169, 204: 20, 201: 9, 202: 2}148 of the run's 169 refusals are that one route. Nothing fails, because the
error is discarded — that is luck rather than a decision, and it is the shape of
#257 exactly.
So the answer is known rather than guessed. A read-only shot at a real
fr-paraccount, no resource created, 2026-09-14:It is not mounted in this PR, and the reason is the instrument rather than
the handler:
Route.Operationmust name an operation the drift scan finds, andthat scan walks
api/<product>/<version>only, whereGetAPIMetadatais not. Aroute declaring it becomes an orphan, and all three baselines carry zero. That
decision is #776;
docs/limits.mdcarries the measurement in the meantime.The same shot recorded a second divergence, left to its own issue: the gateway
answers an unknown path with a Scaleway error document, where this emulator
answers
net/http's plain-text404 page not found.Proven
conformance:leg -- terraform: green, and the log names the client thatanswered —
Installed scaleway/scaleway v2.82.0 (signed, key ID F5BF26CADF6F9614).conformance:leg -- scw-cli: green.conformance:quickstart: green — Scaleway brought up, second plan empty,taken down. That empty second plan is the assertion that catches a provider
which gained an attribute the emulator does not serve.
conformance:stacks: green — applied, second plan with no resource change,destroyed, on all three stacks.
conformance:functionalunderincus-ovn, Scaleway half green: sevenmachines, each
runningand each really Running on the host, public paths,firewall rules, cross-VPC isolation, a restart through the API, stack taken
down.
mise run checkanddocs:checkgreen; the generated client tables and theREADME safety banner regenerated (56 → 57 limits sections).
Two things about the registry, because one of them nearly fooled me
A false alarm: the registry answered 504 on 2.82.0's
SHA256SUMStwicerunning, which reads exactly like a broken release. Fifteen requests against
2.82.0 and fifteen against 2.81.0 as a witness came back 200/200 on both,
same byte size. One attempt at a remote service settles nothing.
A real outage, and not this release: the functional leg's Outscale half died
on
Failed to install provider outscale/outscale v1.8.0[…] 504 Gateway Timeout returned from github.com. Fifteen requests for that asset came back 5 in 200and 10 in 504, while both Scaleway assets were 15/15 the same minute. So the
Outscale half of that leg is not measured here, for a reason upstream of this
repository and unrelated to this pin — and CI may hit the same thing on any leg
that installs the Outscale provider.
Not in this change
mise run limits:checkis red on 9 sections whose cited issues closed afteranyone last looked. It was red on
mainbefore this branch — verified bystashing — and is a separate piece of work. The section added here carries its
own acknowledgement and is not among the nine.
🤖 Generated with Claude Code