OS-8735 piadm(8) lies about what version of loader is installed
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Approved by: Toomas Soome <tsoome at edgecast.io>
OS-8730 Bump /usr size to make room for illumos#17974
Reviewed by: Carlos Neira <cneira at edgecast.io>
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Reviewed by: Nahum Shalman <nshalman at edgecast.io>
Approved by: Toomas Soome <tsoome at edgecast.io>
vm.js, vmadm: migrate-listen startup mode for bhyve live migration
Adds a first-class way to boot a bhyve VM in its live-migration
destination mode, replacing the /tmp/migrate.listen sentinel file
sidechannel with a properly scoped zonecfg attribute.
Interface:
vmadm start <uuid> migrate-listen=true
This flows through VM.start(uuid, extra, {migrate_listen: true}, cb)
→ startVM → startZone, which (for the duration of this single
zoneadm boot call only) adds a transient `migrate_listen=true`
attribute to the zone's config via zonecfg. The brand boot program
(usr/src/lib/brand/bhyve/zone/boot.c, illumos-joyent companion
change) reads the attribute and appends `-o migrate.listen=true` to
the bhyve argv, causing bhyve to skip bootrom + vcpu_reset and block
on its in-zone control socket waiting for import-state from the GZ
migration agent.
[16 lines not shown]
vm.js, vmadm: migrate-listen startup mode for bhyve live migration
Adds a first-class way to boot a bhyve VM in its live-migration
destination mode, replacing the /tmp/migrate.listen sentinel file
sidechannel with a properly scoped zonecfg attribute.
Interface:
vmadm start <uuid> migrate-listen=true
This flows through VM.start(uuid, extra, {migrate_listen: true}, cb)
→ startVM → startZone, which (for the duration of this single
zoneadm boot call only) adds a transient `migrate_listen=true`
attribute to the zone's config via zonecfg. The brand boot program
(usr/src/lib/brand/bhyve/zone/boot.c, illumos-joyent companion
change) reads the attribute and appends `-o migrate.listen=true` to
the bhyve argv, causing bhyve to skip bootrom + vcpu_reset and block
on its in-zone control socket waiting for import-state from the GZ
migration agent.
[16 lines not shown]
OS-8724 - Reserve vendor-data for SmartOS/Triton use
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Reviewed by: Nahum Shalman <nahum.shalman at edgecast.io>
Approved by: Dan McDonald <danmcd at edgecast.io>
OS-8723 Expose virtio1 zone attribute via vmadm
Reviewed by: Nahum Shalman <nshalman at edgecast.io>
Reviewed by: Carlos Neira <cneira at edgecast.io>
Approved by: Nahum Shalman <nshalman at edgecast.io>
OS-8722 Propagate org.smartos:virtio image tag to bhyve zone attribute
Read the org.smartos:virtio tag from image manifests in validateImage(),
propagate it through validateImages() to the payload, and write it as a
zone attribute in buildZonecfgUpdate(). This allows boot.c (in
illumos-joyent) to select legacy or modern virtio mode based on the
image tag.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
OS-8721 SmartOS builds in Jenkins should guarantee different buildstamps per stage
Reviewed by: Travis Paul <tpaul at edgecast.io>
Approved by: Travis Paul <tpaul at edgecast.io>
OS-8711 Support cloud-init NoCloud datasource for Bhyve guests
Portions contributed by: Claude Opus 4.5 & 4.6 <noreply at anthropic.com>
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Reviewed by: Carlos Neira <cneira at edgecast.io>
Approved by: Dan McDonald <danmcd at edgecast.io>
Refactor nocloud disk topology out of VM.js
Move the nocloud disk construction and validation logic from VM.js
into the nocloud modules.
Remove the DISK_SIZE_MIB and BLOCK_SIZE re-exports from the
nocloud module as they no longer need to be re-exported from
lofs-fat16.js.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Prevent creating duplicate disk during sdc-migrate
Rename the nocloud createVolume function to createPcFs
to better reflect what it actually does.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Store hash of metadata used to create nocloud volume
The hash is used to prevent unecessarily regenerating the filesystem.
Also refactor the involved functions to avoid many nested callbacks.