HYB-3: OpenTofu multi-cloud substrate contract (design) — plat/mitosis#36 #48
No reviewers
Labels
No labels
bug
discussion
duplicate
enhancement
goal
help wanted
horizon:backlog
horizon:governance
horizon:mvp
invalid
operator-decision
question
roadmap
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-platform/mitosis!48
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/hyb-3-opentofu-substrate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
roadmap HYB-3 (#36), backlog/design-only. Design note only — no code; acceptance is a reviewed/merged contract doc.
Adds
docs/proposals/opentofu-multicloud-substrate.md, fixing the contract every futuresubstrate/<provider>/OpenTofu module must satisfy sogerminate/lib.shstay cloud-blind.The four-output contract each provider module must produce (and nothing germinate doesn't already consume):
bin/germinate:39), it doesn't fetch one;DOMAINand owns every downstream rewrite;registries.yamlpre-seeded at/etc/rancher/k3s/registries.yamlbefore k3s starts — the node-local mirror is Mitosis's sole image-sovereignty mechanism (recipe/registries.yaml.tmpl,bin/up:5-11);tunnel-only(VPS-first default) vspublic-IP+ACME.Grounded in the real code: germinate already needs only
DOMAIN+ a workingkubectlcontext; all cloud/k3d shape lives in one branch ofbin/up(:79-102), with the generic bare-server fallback already spelled out atbin/up:104-116and the tunnel cutover already opt-in (bin/germinate:477-480,bin/lib.sh:568-598).Records OpenTofu over SST/CFN/Effect (MPL/LF HCL, ~3,900 providers incl. Hetzner/Cloudflare, liftable k3s modules; SST is AWS/serverless-shaped Pulumi-underneath; CFN is AWS-only; Effect is an effect-system, not IaC).
Explicit don't-build-now stance + the one invariant to protect immediately: reject any germinate/lib.sh change that assumes a specific cloud's shape. Ties to VPS-first HYB-1 (#25) / HYB-2 (#35) and the Cloudflare-tunnel default.
Do not merge — for review of the contract.