Helios
@mccormick/heliosv2026.05.19.1
01README
Manage an illumos/Helios host over SSH from swamp. Four model types compose to provision and inventory zones with explicit ZFS layout and isolation/security controls:
@mccormick/helios/host— connection profile + uname/release probe -@mccormick/helios/zfs— remote ZFS dataset and pool ops -@mccormick/helios/dladm— datalink and exclusive-IP VNIC management -@mccormick/helios/zone— zonecfg/zoneadm with hardened defaults (ip-type=exclusive, file-mac-profile, hardened limit-priv, capped-cpu/memory) plus a fan-outinventorymethod that gathers live usage, security state, network, storage, SMF health, and recent log lines for every zone in a single SSH session.
Brands supported: solaris (native illumos) and bhyve. SSH key supplied by the user's ssh-agent (e.g. the 1Password SSH agent); no key material flows through swamp. Privileged commands run via pfexec so the model can connect as a non-root user with the relevant Solaris RBAC profiles.
02Models
@mccormick/helios/hostv2026.05.14.4helios_host.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshUser | string | Default SSH user; recommended: a non-root user with Solaris RBAC |
| sshPort? | number | Default SSH port |
| sshKnownHosts? | string | Path to a known_hosts file. Omit to use accept-new on first connect. |
fn lookup()
Probe the Helios host for hostname, illumos build, helios release,
fn thermal()
Read-only thermal snapshot. Aggregates prtdiag -v, kstat fan/temp
fn load()
Read-only load snapshot: load average, per-core CPU, top processes,
fn faults()
Read-only fault snapshot: active faults from fmadm plus the most
fn messages(pattern: string, lines: number)
Filtered tail of /var/adm/messages and the fmd service log. The
| Argument | Type | Description |
|---|---|---|
| pattern | string | |
| lines | number |
fn health_check(messagePattern: string, messageLines: number)
Fan-out: gather thermal + load + faults + recent messages in a
| Argument | Type | Description |
|---|---|---|
| messagePattern | string | |
| messageLines | number |
Resources
host_info(infinite)— Probed identity and capacity of the Helios host
thermal(7d)— Temperature/fan sensor snapshot from prtdiag, kstat, and (when
load_snapshot(7d)— CPU/IO/memory pressure snapshot: load averages, per-core CPU, top
fault_state(7d)— Active faults from fmadm and recent ereports from fmdump. One per
kernel_messages(7d)— Filtered lines from /var/adm/messages and the fmd service log
audit(7d)— Combined host health audit: thermal + load + faults + recent
@mccormick/helios/zfsv2026.05.14.3helios_zfs.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshUser | string | |
| sshPort? | number | |
| sshKnownHosts? | string |
fn dataset_list()
List all filesystem and volume datasets on the host.
fn dataset_lookup(name: string)
Look up one dataset's full property set.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn dataset_create(name: string, quota?: string, reservation?: string, compression: string, encryption?: string, encryptionPassphrase?: string, recordsize?: string, mountpoint?: string, canmount?: enum)
Create a ZFS filesystem with optional quota, reservation,
| Argument | Type | Description |
|---|---|---|
| name | string | |
| quota? | string | e.g. 10G; omit for unlimited |
| reservation? | string | |
| compression | string | |
| encryption? | string | e.g. aes-256-gcm. Omit to disable encryption. |
| encryptionPassphrase? | string | Passphrase for keyformat=passphrase keylocation=prompt. |
| recordsize? | string | |
| mountpoint? | string | |
| canmount? | enum |
fn dataset_destroy(name: string, recursive: boolean, force: boolean)
Destroy a dataset (recursive optional).
| Argument | Type | Description |
|---|---|---|
| name | string | |
| recursive | boolean | |
| force | boolean |
fn snapshot_create(name: string, recursive: boolean)
Create a snapshot pool/dataset@name.
| Argument | Type | Description |
|---|---|---|
| name | string | Fully-qualified e.g. rpool/zones/foo@2026-05-14 |
| recursive | boolean |
fn snapshot_destroy(name: string)
Destroy a snapshot.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn delegate(dataset: string, zone: string)
Delegate a dataset into a zone: `zfs zone <dataset> <zone>`.
| Argument | Type | Description |
|---|---|---|
| dataset | string | |
| zone | string |
fn pool_status(pool: string)
Capture pool size/usage and zpool status output.
| Argument | Type | Description |
|---|---|---|
| pool | string |
fn pool_scrub(pool: string)
Start a scrub on a pool.
| Argument | Type | Description |
|---|---|---|
| pool | string |
Resources
dataset(infinite)— A ZFS filesystem or volume on the Helios host
pool(infinite)— A ZFS pool on the Helios host
snapshot(infinite)— A ZFS snapshot on the Helios host
@mccormick/helios/dladmv2026.05.14.3helios_dladm.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshUser | string | |
| sshPort? | number | |
| sshKnownHosts? | string |
fn link_list()
List every datalink (phys, vnic, aggr, etherstub).
fn phys_list()
List physical NICs (`dladm show-phys`).
fn etherstub_create(name: string)
Create an etherstub.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn etherstub_destroy(name: string)
Destroy an etherstub.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn vnic_create(name: string, over: string, macAddress?: string, vlanId?: number, allowedIps: array)
Create a VNIC over `over` (phys/etherstub/aggr) and immediately
| Argument | Type | Description |
|---|---|---|
| name | string | |
| over | string | |
| macAddress? | string | |
| vlanId? | number | |
| allowedIps | array | CIDR list to pin via the allowed-ips linkprop. Required for |
fn vnic_destroy(name: string)
Destroy a VNIC.
| Argument | Type | Description |
|---|---|---|
| name | string |
Resources
link(infinite)— A datalink
phys(infinite)— A physical NIC
vnic(infinite)— A VNIC, with mac, vlan, link-protection, allowed-ips
etherstub(infinite)— An etherstub
@mccormick/helios/zonev2026.05.14.3helios_zone.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshUser | string | |
| sshPort? | number | |
| sshKnownHosts? | string |
fn list()
List every configured zone via `zoneadm list -cp`.
fn lookup(name: string)
Look up a single zone with full zonecfg.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn create(name: string, brand: enum, zonepath: string, vnicLink?: string, allowedAddress?: string, defaultRouter?: string, limitPriv: string, fileMacProfile: string, cappedCpu?: number, cappedMemoryMb?: number, dedicatedCpu?: string, delegatedDatasets: array, lofs: array)
Create a zone with hardened security defaults. ip-type=exclusive,
| Argument | Type | Description |
|---|---|---|
| name | string | |
| brand | enum | |
| zonepath | string | |
| vnicLink? | string | |
| allowedAddress? | string | |
| defaultRouter? | string | |
| limitPriv | string | |
| fileMacProfile | string | |
| cappedCpu? | number | |
| cappedMemoryMb? | number | |
| dedicatedCpu? | string | |
| delegatedDatasets | array | |
| lofs | array |
fn install(name: string, extraArgs: array)
Install a zone (no-op for bhyve brand).
| Argument | Type | Description |
|---|---|---|
| name | string | |
| extraArgs | array |
fn boot(name: string, bootArgs?: string)
Boot a zone.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| bootArgs? | string |
fn halt(name: string)
Halt a zone.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn uninstall(name: string)
Uninstall a zone (force).
| Argument | Type | Description |
|---|---|---|
| name | string |
fn delete(name: string)
Delete a zone configuration.
| Argument | Type | Description |
|---|---|---|
| name | string |
fn exec(name: string, command: string)
Run a command inside the zone via `zlogin -S`.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| command | string |
fn inventory(includeLogs: boolean, logTailLines: number)
Single fan-out: gather identity, live usage, security config,
| Argument | Type | Description |
|---|---|---|
| includeLogs | boolean | |
| logTailLines | number |
Resources
zone(infinite)— An illumos zone (configured/installed/running) on the host
zone_inventory(7d)— Per-zone inventory snapshot: identity, security, network, storage,
inventory_summary(7d)— Host-level zone inventory rollup. One per inventory call.
exec_result(1d)— stdout/stderr/exit from a zlogin exec call
03Previous Versions
2026.05.14.1May 19, 2026
04Stats
A
100 / 100
Downloads
2
Archive size
54.2 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types1/1earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
05Platforms
06Labels