Skip to content

CLI: Update Hypeman Go SDK to v0.29.0 - #78

Open
kernel-internal[bot] wants to merge 1 commit into
mainfrom
cli-coverage-update
Open

kernel-internal[bot] wants to merge 1 commit into
mainfrom
cli-coverage-update

Conversation

@kernel-internal

@kernel-internal kernel-internal Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Update the Hypeman Go SDK to v0.29.0.

Coverage

Update CLI coverage for hypeman-go v0.29.0

Summary

  • Updated github.com/kernel/hypeman-go from v0.28.0 to v0.29.0.
  • Accepted the SDK-required Docker dependency update and removed the now-obsolete version-specific Docker replacement; refreshed module sums, including golang.org/x/net.
  • Audited all 63 SDK methods and their parameter structs against the complete CLI command tree. No missing commands or flags were found, and the OpenAPI document contains no x-cli-skip: true operations.
  • Updated CLI behavior, output, and help text for the v0.29.0 API changes.

CLI coverage changes

Instance creation

Updated hypeman run for the changed CreateInstanceRequest fields:

  • platform: documents Linux amd64/arm64 support and the requirements for experimental darwin/arm64 guests.
  • size (--memory): documents image-derived macOS defaults and VZ size constraints.
  • vcpus (--cpus): documents image-derived macOS defaults and VZ CPU constraints.
  • overlay_size (--overlay-size): documents that macOS guests clone the complete image disk and must omit a Linux overlay size.

CPU, memory, and overlay values are now omitted from the API request unless their flags are explicitly supplied. Linux continues to receive the documented server defaults, while macOS can inherit image-specific CPU and memory settings and avoid an invalid overlay request.

Logs

  • Added swtpm to the documented values for hypeman logs --source, following the getInstanceLogs source enum.
  • Added the endpoint caveat that a requested source may be unavailable for a guest type.

GPU and resource output

  • hypeman ps now recognizes InstanceGPU.device_path as a vGPU assignment, covering SR-IOV hosts in addition to mdev UUID hosts.
  • hypeman resources now displays allocatable_slots, quarantined_slots, and placement_disabled_reason from GPUResourceStatus.
  • Resource help and table output explain that profile availability is per-profile and non-additive, and that used and quarantined vGPU slot counts can overlap.
  • Added tests for SR-IOV vGPU formatting and GPU placement-capacity output.

Spec-aligned caveats

Updated command descriptions to reflect changed OpenAPI behavior:

  • InstanceStats.network_rx_bytes: hypeman stats explains that received network bytes are always zero for macOS NAT guests.
  • restoreInstance: hypeman restore notes that standby restore is unavailable for some guest types.
  • statInstancePath: hypeman cp notes that required guest filesystem inspection is unavailable for some guest types.
  • createIngress: hypeman ingress create notes that ingress creation is unavailable in macOS-only mode.
  • createBuild: hypeman build notes that builds are unavailable in macOS-only mode.

Intentional exclusions

  • No new commands or flags were necessary: every SDK method is already exposed directly or through its documented internal CLI path. Internal paths include build-event streaming in hypeman build, instance stat calls in hypeman cp, and archive volume creation through hypeman volume create --from-archive.
  • SDK diff changes that only adjust generated comment indentation for device and ingress types do not change CLI behavior or help text.
  • Raw JSON-capable commands already expose newly returned response fields; the default table views were updated where those fields affect their summarized output.

Validation

  • go test ./...
  • go build ./...
  • git diff --check origin/main

Validation

  • Go build
  • Go vet
  • Go tests

Note

Low Risk
Dependency bump plus CLI help/output and conditional request fields; no new auth or core protocol logic, with targeted tests added.

Overview
Bumps github.com/kernel/hypeman-go to v0.29.0 (with matching Docker and golang.org/x/net module updates) and refreshes the CLI for the new API semantics.

hypeman run now documents Linux vs macOS/darwin/arm64 limits and only sends vcpus, size, and overlay_size when the user explicitly sets those flags, so macOS guests can inherit image defaults and avoid invalid overlay requests.

GPU and resource UX is expanded: ps treats device_path as a vGPU assignment; resources prints allocatable/quarantined slots, placement-disabled reasons, and clearer profile-availability notes (with tests).

Help and descriptions across build, cp, ingress create, restore, logs (swtpm source), and stats call out guest-type or macOS-only limitations aligned with v0.29.0.

Reviewed by Cursor Bugbot for commit 82bed8c. Bugbot is set up for automated code reviews on this repo. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants