fix(parallels): macOS leases connect when Tools cannot report the guest - #1745
fix(parallels): macOS leases connect when Tools cannot report the guest#1745saariuslystoned wants to merge 2 commits into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Maintainer triage at
After repair, retain the native clone/SSH proof and add final-head saved-port reuse, actual account-authenticated desktop interaction, and independent cleanup confirmation for the task-owned clone. The source VM and unrelated VMs must remain untouched. No VM or credential changes were made during this triage. |
|
CI follow-up at unchanged head The new Refreshing that contract does not resolve the saved-port reuse, child password-environment boundary, or native desktop/lifecycle proof requirements in the earlier review. No rerun was requested for this deterministic failure, and no VM or credential state was changed. |
What Problem This Solves
Fixes an issue where users acquiring Apple-silicon macOS guests through the Parallels provider would see a healthy full clone remain unready when Parallels Tools could not report the guest IP or execute the guest-preparation command.
It also lets macOS desktop sessions authenticate with the real guest account credential instead of requiring only the generated legacy VNC credential.
Why This Change Was Made
Parallels Tools remains the preferred discovery and preparation path. For macOS only, operators can configure a trusted host-side bootstrap identity. When Tools publishes no IP, Crabbox matches the clone's exact normalized NIC MAC against an unexpired Parallels DHCP lease, rejects missing, malformed, stale, duplicate-ambiguous results, verifies the configured SSH port, and streams the existing preparation script over SSH. Normal sync and run traffic then uses Crabbox's generated per-lease key.
For desktop access, the Parallels provider implements the same provider credential contract used by other macOS providers. The account password is accepted only from trusted user configuration or
CRABBOX_PARALLELS_PASSWORD; there is no password CLI flag, repository configuration cannot select it, and it is removed from target-facing child environments. The password is never written to the guest, passed on argv, or used to reset the macOS account.Linux and Windows retain their existing behavior. Linked-clone behavior is unchanged.
User Impact
Operators can use Crabbox to acquire and drive full-clone macOS guests on local or remote Parallels hosts even when the macOS Parallels Tools guest-info channel is unavailable. Existing configurations remain Tools-first and backward-compatible.
New optional trusted configuration:
parallels.bootstrapKey/CRABBOX_PARALLELS_BOOTSTRAP_KEYparallels.password/CRABBOX_PARALLELS_PASSWORDEvidence
Live integration against a remote Apple-silicon Parallels host:
/usr/bin/sw_vers -productVersionand received26.5.2;The desktop credential routing is covered by focused and race tests. A direct live ARD screenshot is not claimed in this PR.
Post-rebase verification:
All passed on
13ea9a99fd409eaa9633e9291fb788936dd03536.