docs(scaleway): validate the Crossplane bet and the IaC coverage - #18
Open
UlysseCarpentier wants to merge 1 commit into
Open
UlysseCarpentier wants to merge 1 commit into
UlysseCarpentier wants to merge 1 commit into
Conversation
The bet holds, and the reason it holds is not the one expected. Coverage is excellent: 144 managed resources against 157 in the Terraform provider, and every resource a client claim needs is generated — RDB with its users and privileges, Redis, MongoDB, Object, the whole MNQ range, Secrets, Key Manager, Block. IAM applications, policies and API keys are there too, so the credential problem the managed-scope work identified is at least expressible as a Composition rather than a script. Cadence is not. No release since v0.6.0 on 6 February 2026, no functional commit since 27 April 2026, and everything in between is Dependabot. The April fix is in no release. Two priority:highest bugs have been open since August 2024. The Terraform provider it is generated from ships monthly, so the generated provider drifts behind its own source by default. What saves the bet is that the provider is generated, not written: the repository carries its upjet config, so regenerating against a newer Terraform provider is a build the factory can run. Pin v0.6.0, own a fork that can be regenerated (~3-5 days, once), and fall back to provider-terraform per resource — inside the same Composition, so claims and the GitOps path are untouched. tofu-controller is refused: a second reconciler and a second state model beside Flux. The OpenTofu provider needs no such argument. Every foundations resource exists, k8s_acl, cockpit_token and object_bucket_lock_configuration included. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
UlysseCarpentier
added this pull request to stack #19
September 14, 2026 12:44
UlysseCarpentier
marked this pull request as ready for review
September 14, 2026 12:44
5 tasks
Garinlu
approved these changes
Sep 15, 2026
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.
Summary
Closes the fourth and last Scaleway research ticket: [Scaleway] Validation du pari Crossplane & couverture IaC. Feeds #4.
Adds
docs/scaleway/crossplane-iac.mdand its rows in the decision index.Verdict: the bet holds — but not for the reason expected
Coverage is excellent. 144 managed resources against 157 in the Terraform provider. Everything a client claim needs is generated: RDB with its databases, users, privileges, ACLs and read replicas; Redis; MongoDB; Object; the whole MNQ range (SQS, SNS, NATS); Secrets; Key Manager; Block. The narrow gaps —
lbACLs, serverless triggers, job definitions — sit on no claim path.Worth noting:
iam.applications,iam.apikeysandiam.policiesare all generated, so the static-credential problem frommanaged-scope.mdbecomes expressible as a Composition rather than a script.Cadence is not.
priority:highestbugs open since August 2024:PublicGatewayIPnot created,RDB Instance matchLabelsbroken.What saves the bet is that the provider is generated, not written. A hand-written provider that stalls means waiting or writing Go. An upjet-generated one that stalls is a build you can run yourself — and the repository carries its generator config.
Decisions
v0.6.0. Never a floating tag on a component that reconciles client infrastructure.provider-terraformis the per-resource fallback, because it patches inside the Composition: claims, XRs and the GitOps path are untouched, and the patch is removed when the generated provider catches up.The OpenTofu provider needs no such argument
157 resources, v2.82.0 released 1 September 2026. Every foundations resource exists, including the ones the sprint's decisions depend on:
k8s_acl(the allowed-IP list),cockpit_token,object_bucket_lock_configuration, the whole VPC and public gateway set, andiam_application/iam_policy/iam_api_key. No gaps, nothing to work around.Cost
€0 recurring. ~3–5 days of engineering, once, amortised across every client.
Test plan
docs/scaleway/crossplane-iac.mdrenders correctly on GitHub.One thing this document does not do
It does not verify the two 2024 bugs are still real. That needs a cluster, and the ticket is explicit that no POC is in scope.
🤖 Generated with Claude Code