Replies: 1 comment 3 replies
-
|
The issues cited are old/outdated and not relevant mostly. Talos/QEMU works on MacOS without any major issues. I would not rather have a provisioner which is a "snowflake" for a specific platform (MacOS) and has no real benefit over QEMU. QEMU provider might be improved for better networking when needed, and this is the only provider which does full Talos experience, any container mode is more of a workaround. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR — I built a working
pkg/provisionprovisioner for Apple'scontainerruntime, sotalosctl cluster create apple-containerbrings up a local Talos cluster as one micro-VM pernode on macOS — no Docker socket, no QEMU. It's verified end to end (incl. MetalLB + Gateway
API). Before I polish a PR I'd like to know: is this something you'd want in-tree?
Repo (provider + a from-zero runbook + verification log):
https://github.com/BinHsu/aegis-talos-apple-container-provisioner
Why
Local Talos on macOS today is either the docker provisioner (needs a Linux Docker socket —
Docker Desktop / OrbStack / Colima) or the qemu provisioner (shipped, but with open macOS
issues, e.g. #11865, #13579, and the recurring "not supported on this platform" reports like
discussion #11438). Apple's
container(1.0.0, macOS 26, Apple Silicon) gives a Kata-derivedmicro-VM per node — a higher-fidelity on-prem analog than shared-kernel containers, with no
Docker API in the path.
What works (verified by hand, receipts in the repo)
talosctl cluster create apple-container→ 2-node cluster, all nodesReady, cleancluster destroy(no orphans). Also a 3-node etcd quorum.pkg/provisioninterface (it's an additive package +a factory case + a
cluster createsubcommand — no framework changes).qemu-vmnet path drops ([macOS] Support socket_vmnet / vmnet-bridged networking for QEMU provisioner #12834) is forwarded here. L7 verified with both ingress-nginx v1.15.1
and Gateway API (Envoy Gateway), host-routed.
The one interesting design point
apple/container assigns node IPs via vmnet DHCP (no static
--ip). The docker provider'smodel (static IP + machine config injected as
USERDATAat create) can't be honored as-is. Sothe provider owns
Createand does a post-launch reconciliation: launch nodes bare intomaintenance, discover the DHCP IPs, patch
cluster.controlPlane.endpoint, then apply config overthe maintenance API. This keeps the whole DHCP workaround inside the provider —
pkg/provisionis untouched. (It's also why a Docker-API shim / socktainer route doesn't work: there's no seam
to reconcile the IP.)
Honest scope / limitations
blocks in-place reboot in container mode anyway. A static-IP option in apple/container would
remove this.
container1.0.0 only.Ask
Would you accept this as a third macOS provisioner? I noticed a "remote provisioner" is being
added (#13576), so new provisioners seem welcome — if there's interest I'll open a PR (the delta
is ready:
pkg/provision/providers/apple/, the factory case, and acluster create apple-containersubcommand) and align it to your conventions.
Beta Was this translation helpful? Give feedback.
All reactions