diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2026-04-10 06:43:21 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2026-04-10 06:43:21 -0700 |
| commit | ef69d2041b4741f48b6ca3d92a7c7ce617ea68cc (patch) | |
| tree | 581634d69b85588bd559712b8bda48b1167d3885 /control/controlhttp/controlhttpserver/controlhttpserver.go | |
| parent | 03c3551ee50921cd4dba46e8fe08a6a49b0e9920 (diff) | |
| download | tailscale-ef69d2041b4741f48b6ca3d92a7c7ce617ea68cc.tar.xz tailscale-ef69d2041b4741f48b6ca3d92a7c7ce617ea68cc.zip | |
tstest/natlab/vmtest: add macOS VM support and TestMacOSAndLinuxCanPing
Add macOS VM support to the vmtest integration test framework using
tailmac (Apple Virtualization.framework). The new TestMacOSAndLinuxCanPing
creates a LAN with a Gokrazy arm64 Linux VM (QEMU/HVF) and a macOS VM
(tailmac) and verifies they can ping each other over vnet.
Key changes:
vmtest framework (tstest/natlab/vmtest/):
- Add MacOS OSImage type with IsMacOS field
- Add NoAgent node option for VMs without TTA
- Add LANPing method using TTA's /ping endpoint with retries
- Add --macos-vm-id flag for specifying the base macOS VM
- Set up Unix datagram socket for macOS VMs (ProtocolUnixDGRAM)
- Add tailmac.go for macOS VM clone/configure/launch lifecycle
- Support arm64 QEMU with HVF on macOS hosts (virt machine type)
- Use /tmp for socket paths to avoid 104-byte sun_path limit
tailmac (tstest/tailmac/):
- Add --headless flag to Host.app for GUI-less VM operation
- Use RunLoop.main.run() instead of dispatchMain() (VZ framework
requires the RunLoop for start/restore callbacks)
- Single-NIC mode in headless (matches llmacstation VM config)
- Add socketpair relay between VZ and the vnet dgram socket
- Fix dispatchMain() bug in tailmac CLI's create command too
gokrazy arm64:
- Add natlab-arm64 Makefile target
- Add gokrazydeps.go for github.com/gokrazy/kernel.arm64
- Add kernel.arm64 dependency to go.mod
The test requires: macOS arm64 host, qemu-system-aarch64, a pre-built
macOS VM (--macos-vm-id flag), and tailmac Host.app built.
Diffstat (limited to 'control/controlhttp/controlhttpserver/controlhttpserver.go')
0 files changed, 0 insertions, 0 deletions
