Conversation
3d93281 to
06b2bae
Compare
swalkinshaw
reviewed
Mar 31, 2026
This was referenced Mar 31, 2026
Closed
Co-authored-by: David Stone <david@nnucomputerwhiz.com> Co-authored-by: Md Kabir Uddin <bd.kabiruddin@gmail.com>
…ough logic Set PATH via Cmd.Env on the limactl start command instead of mutating the process-wide environment with os.Setenv. This prevents an infinite exec loop where LookPath would resolve to the wrapper itself on subsequent calls. Also replaces the fragile help/version denylist in the wrapper script with a simpler check: only inject TAP args when -netdev is present (indicating a real VM launch vs a Lima feature probe). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
HostAccessIP was a no-op wrapper around IP(). Since the TAP networking constants are hardcoded to a single set of values (one VM at a time on Linux), there's no need for the indirection yet. Added a comment on the constants noting this single-instance constraint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
swalkinshaw
approved these changes
Mar 31, 2026
Member
swalkinshaw
left a comment
There was a problem hiding this comment.
Pushed two small fixes/improvements good now 👍 We can iterate on this
I'd just note in the PR description the main limitation that this only works with a single VM running at a time.
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
Adds Linux support for
trellis vmcommands using Lima with QEMU.This keeps the existing macOS
vzflow intact, adds Linux-specific Lima/QEMU config, and uses a host-reachable TAP network on Linux so Trellis local domains work without port suffixes.Note
The main limitation that this only works with a single VM running at a time
What changed
autoVM manager on Linuxqemuinstance config alongside the existing macOSvzconfig9pmounts on Linux withmapped-xattrso provisioning canchgrpmounted pathsvm startWhy
The earlier Linux Lima work in #648 proved that QEMU-based Linux VMs can boot and provision, but Lima's default Linux networking is not host-reachable in the way Trellis expects for local domains.
This PR adopts the TAP-networking direction from #633 so local sites work with normal Trellis hostnames instead of forwarded high ports.
Testing
Tested locally on Linux with a distro-packaged Lima build reporting:
Verified locally:
trellis vm start/etc/hoststrellis opengo test ./pkg/limago build ./...Some broader repo integration tests still depend on
TEST_BINARYor local socket listeners and were not used as the Linux validation path here.Attribution
This work builds directly on prior Linux support work from:
Close #599