Skip to main content

Igor2

@nblair2/igor2v2026.05.30.1· 1d agoMODELS
01README

Full igor2 cluster-manager control via the REST API, split into five models: reservations (the reservation lifecycle), hosts (power, inventory, administration, host policies), boot (distros, profiles, images, kickstarts), identity (users, groups, privilege elevation), and server (clusters/MOTD, sync, stats, config, auth-reset, dashboard).

02Models5
@nblair2/igor2/reservationsv2026.05.30.1reservations.ts
fn reservation_create(name: string, nodeList?: string, nodeCount?: number, profile?: string, distro?: string, duration?: union, start?: number, group?: string, vlan?: string, kernelArgs?: string, description?: string, owner?: string, noCycle?: boolean)
Create a node reservation; idempotent (returns the existing one on conflict)
ArgumentTypeDescription
namestringUnique reservation name
nodeList?stringExplicit nodes, e.g. 'kn1,kn3' or 'kn[1-5]' (mutually exclusive with nodeCount)
nodeCount?numberNumber of any available nodes to reserve (mutually exclusive with nodeList)
profile?stringBoot profile name (provide profile OR distro)
distro?stringBoot distro name (provide profile OR distro)
duration?unionLength, e.g. '3d' or '5h30m', or a Unix-epoch end time
start?numberStart time as a Unix-epoch timestamp
group?stringGroup to grant access to
vlan?stringVLAN id, or the name of a reservation to share a VLAN with
kernelArgs?stringExtra kernel arguments
description?stringFree-text description
owner?stringOwner username (admin only)
noCycle?booleanSkip the power cycle on install
fn reservation_show(name: string)
Fetch a single reservation by name and store its state
ArgumentTypeDescription
namestringReservation name
fn reservation_list()
List all visible reservations, storing each one
fn reservation_edit(name: string, extend?: union, extendMax?: boolean, drop?: string, addNodeList?: string, addNodeCount?: number, distro?: string, profile?: string, newName?: string, owner?: string, group?: string, kernelArgs?: string, description?: string)
Modify a reservation (extend, add/drop nodes, rename, re-distro, etc.)
ArgumentTypeDescription
namestringReservation to edit
extend?unionExtend by a duration ('3d') or to a Unix-epoch end time
extendMax?booleanExtend to the maximum allowed
drop?stringNodes to remove, e.g. 'kn[1-3]'
addNodeList?stringNodes to add, e.g. 'kn[10-12]'
addNodeCount?numberNumber of additional nodes to add
distro?stringChange boot distro
profile?stringChange boot profile
newName?stringRename the reservation
owner?stringTransfer ownership
group?stringChange group ('none' to clear)
kernelArgs?stringUpdate kernel arguments
description?stringUpdate description
fn reservation_delete(name: string)
Delete a reservation
ArgumentTypeDescription
namestringReservation name

Resources

reservation(infinite)— An igor2 node reservation and its current host state
@nblair2/igor2/hostsv2026.05.30.1hosts.ts
fn host_power(cmd: enum, hosts?: string, reservation?: string)
Power on/off/cycle nodes, or query their power status
ArgumentTypeDescription
cmdenumPower command
hosts?stringHost range, e.g. 'kn[1-5]' (mutually exclusive with reservation)
reservation?stringReservation whose nodes to target (mutually exclusive with hosts)
fn host_list()
List all hosts, storing each one
fn host_status(name: string)
Fetch a single host by name and store its state
ArgumentTypeDescription
namestringHost name, e.g. 'kn1'
fn host_edit(name: string, ip?: string, hostname?: string, boot?: enum, mac?: string, eth?: string, hostPolicy?: string)
Edit a host's network/boot attributes or its host policy (admin)
ArgumentTypeDescription
namestringHost name to edit, e.g. 'kn1'
ip?stringNew IP address
hostname?stringNew hostname
boot?enumBoot mode
mac?stringNew MAC address
eth?stringEthernet interface name
hostPolicy?stringHost policy name ('' resets to the default policy)
fn host_delete(name: string)
Delete a host from igor2 (admin)
ArgumentTypeDescription
namestringResource name
fn host_block(hosts: string, block: boolean)
Block or unblock hosts from being reserved (admin)
ArgumentTypeDescription
hostsstringHost range, e.g. 'kn[1-5]'
blockbooleantrue to block, false to unblock
fn host_apply_policy(nodeList: string, policy: string)
Apply a host policy to a set of hosts (admin)
ArgumentTypeDescription
nodeListstringHost range, e.g. 'kn[1-5]'
policystringHost policy name to apply
fn hostpolicy_create(name: string, maxResTime?: string, accessGroups?: array, notAvailable?: array)
Create a host policy (admin)
ArgumentTypeDescription
namestringHost policy name
maxResTime?stringMaximum reservation time as a duration, e.g. '24h' or '7d'
accessGroups?arrayGroups allowed to reserve hosts under this policy
notAvailable?arrayCron-based unavailability blocks
fn hostpolicy_list()
List all host policies, storing each one
fn hostpolicy_show(name: string)
Fetch a single host policy by name and store it
ArgumentTypeDescription
namestringResource name
fn hostpolicy_edit(name: string, newName?: string, maxResTime?: string, accessGroups?: array, notAvailable?: array)
Edit a host policy (admin)
ArgumentTypeDescription
namestringHost policy to edit
newName?stringRename the policy
maxResTime?stringNew maximum reservation time
accessGroups?arrayReplace access groups
notAvailable?arrayReplace unavailability blocks
fn hostpolicy_delete(name: string)
Delete a host policy (admin)
ArgumentTypeDescription
namestringResource name

Resources

host(infinite)— An igor2 cluster host and its power/boot state
hostPolicy(infinite)— An igor2 host policy (max reservation time, access groups)
powerResult(7d)— Result of a host power command
operation(7d)— Outcome of a host block/unblock or apply-policy action
@nblair2/igor2/bootv2026.05.30.1boot.ts
fn distro_create(name: string, copyDistro?: string, useDistroImage?: string, imageRef?: string, kernelFile?: string, initrdFile?: string, description?: string, kernelArgs?: string, kickstart?: string, public?: boolean, distroGroups?: array, boot?: array)
Create a boot distro by copying a distro, reusing an image, referencing an image ID, or uploading kernel+initrd
ArgumentTypeDescription
namestringUnique distro name
copyDistro?stringCreate by copying an existing distro (one source required)
useDistroImage?stringCreate using the image of an existing distro (one source required)
imageRef?stringCreate from an already-registered image ID (one source required)
kernelFile?stringLocal path to a kernel file to upload (with initrdFile; one source required)
initrdFile?stringLocal path to an initrd file to upload (with kernelFile)
description?stringFree-text description
kernelArgs?stringDefault kernel arguments
kickstart?stringKickstart filename (local-boot images only)
public?booleanMake the distro public (admin)
distroGroups?arrayGroups granted access (not allowed if public)
boot?arraySupported boot modes
fn distro_list()
List all visible distros, storing each one
fn distro_show(name: string)
Fetch a single distro by name and store it
ArgumentTypeDescription
namestringResource name
fn distro_edit(name: string, newName?: string, description?: string, kernelArgs?: string, owner?: string, addGroup?: array, removeGroup?: array, kickstart?: string, public?: boolean, setDefault?: boolean, removeDefault?: boolean)
Edit a distro (rename, groups, kernel args, default, etc.)
ArgumentTypeDescription
namestringDistro to edit
newName?stringRename the distro
description?stringUpdate description
kernelArgs?stringUpdate default kernel arguments
owner?stringTransfer ownership (admin)
addGroup?arrayGroups to grant access
removeGroup?arrayGroups to revoke access
kickstart?stringUpdate kickstart filename
public?booleanMake the distro public (admin)
setDefault?booleanSet as the default distro (admin)
removeDefault?booleanClear default-distro status
fn distro_delete(name: string)
Delete a distro
ArgumentTypeDescription
namestringResource name
fn profile_create(name: string, distro: string, description?: string, kernelArgs?: string)
Create a boot profile (a distro plus extra kernel arguments)
ArgumentTypeDescription
namestringUnique profile name
distrostringDistro this profile boots
description?stringFree-text description
kernelArgs?stringExtra kernel arguments appended to the distro's
fn profile_list()
List all visible profiles, storing each one
fn profile_show(name: string)
Fetch a single profile by name and store it
ArgumentTypeDescription
namestringResource name
fn profile_edit(name: string, newName?: string, description?: string, kernelArgs?: string)
Edit a profile (rename, description, kernel arguments)
ArgumentTypeDescription
namestringProfile to edit
newName?stringRename the profile
description?stringUpdate description
kernelArgs?stringUpdate kernel arguments
fn profile_delete(name: string)
Delete a profile
ArgumentTypeDescription
namestringResource name
fn image_register(kernelFile?: string, initrdFile?: string, kstaged?: string, istaged?: string, breed?: string, localBoot?: boolean, boot?: array)
Register a distro image by uploading kernel+initrd files or referencing server-staged files
ArgumentTypeDescription
kernelFile?stringLocal path to a kernel file to upload (with initrdFile)
initrdFile?stringLocal path to an initrd file to upload (with kernelFile)
kstaged?stringServer-staged kernel filename (with istaged) instead of uploading
istaged?stringServer-staged initrd filename (with kstaged)
breed?stringDistro breed (e.g. ubuntu, redhat, generic-linux)
localBoot?booleanRegister as a local-install image
boot?arraySupported boot modes
fn image_list()
List all registered distro images, storing each one
fn image_delete(name: string)
Delete a registered distro image by name/ID
ArgumentTypeDescription
namestringResource name
fn kickstart_register(kickstart: string)
Register (upload) a kickstart file
ArgumentTypeDescription
kickstartstringLocal path to a kickstart file to upload
fn kickstart_list()
List all kickstart files, storing each one
fn kickstart_edit(name: string, kickstart?: string, newName?: string)
Replace a kickstart's file and/or rename it
ArgumentTypeDescription
namestringKickstart to edit
kickstart?stringLocal path to a replacement kickstart file
newName?stringRename the kickstart
fn kickstart_delete(name: string)
Delete a kickstart file
ArgumentTypeDescription
namestringResource name

Resources

distro(infinite)— An igor2 boot distro (kernel/initrd + kickstart + groups)
profile(infinite)— An igor2 boot profile (a distro plus kernel arguments)
image(infinite)— A registered igor2 distro image (kernel/initrd pair)
kickstart(infinite)— A registered igor2 kickstart file
@nblair2/igor2/identityv2026.05.30.1identity.ts
fn user_create(name: string, email: string)
Create a user account (admin)
ArgumentTypeDescription
namestringUsername
emailstringEmail address
fn user_list()
List users, storing each one
fn user_show(name: string)
Fetch a single user by name and store it
ArgumentTypeDescription
namestringResource name
fn user_edit(name: string, email?: string, fullName?: string, password?: string, oldPassword?: string, reset?: boolean)
Edit a user: email/fullName, change password, or force a reset
ArgumentTypeDescription
namestringUser to edit
email?stringNew email address
fullName?stringNew full name
password?stringNew password (requires oldPassword)
oldPassword?stringCurrent password (required when changing password)
reset?booleanForce a password reset (cannot combine with other edits)
fn user_delete(name: string)
Delete a user account (admin)
ArgumentTypeDescription
namestringResource name
fn group_create(name: string, isLDAP?: boolean, members?: array, owners?: array, description?: string)
Create a group (optionally LDAP-backed)
ArgumentTypeDescription
namestringGroup name
isLDAP?booleanBack the group with LDAP (no members/owners/description allowed)
members?arrayMember usernames
owners?arrayOwner usernames
description?stringFree-text description
fn group_list(showMembers?: boolean)
List groups (owned and member), storing each one
ArgumentTypeDescription
showMembers?booleanInclude member lists
fn group_show(name: string)
Fetch a single group by name and store it
ArgumentTypeDescription
namestringResource name
fn group_edit(name: string, newName?: string, description?: string, addOwners?: array, rmvOwners?: array, add?: array, remove?: array)
Edit a group: metadata, owners, or members (one facet)
ArgumentTypeDescription
namestringGroup to edit
newName?stringRename the group
description?stringUpdate description
addOwners?arrayOwners to add
rmvOwners?arrayOwners to remove
add?arrayMembers to add
remove?arrayMembers to remove
fn group_delete(name: string)
Delete a group (admin)
ArgumentTypeDescription
namestringResource name
fn elevate()
Activate admin privilege elevation for your session
fn elevate_status()
Check remaining time on your admin elevation
fn elevate_cancel()
Cancel your admin privilege elevation

Resources

user(infinite)— An igor2 user account
group(infinite)— An igor2 group (owners, members, shared distros/policies)
operation(7d)— Outcome of an elevate / elevate-status / elevate-cancel action
@nblair2/igor2/serverv2026.05.30.1server.ts
fn cluster_list()
List clusters, storing each one
fn cluster_motd_set(motd: string, motdUrgent: boolean)
Set the cluster message-of-the-day (admin)
ArgumentTypeDescription
motdstringMessage-of-the-day text ('' to clear)
motdUrgentbooleanFlag the MOTD as urgent
fn sync(cmd: string, force?: boolean, quiet?: boolean, scope?: string)
Run a network sync check (e.g. Arista VLAN reconciliation)
ArgumentTypeDescription
cmdstringSync command (currently only 'arista')
force?booleanApply corrections on mismatch
quiet?booleanSuppress detailed output
scope?stringLimit to a host range or reservation names
fn stats(start?: string, duration?: number, verbose?: boolean)
Read cluster usage statistics and store the snapshot
ArgumentTypeDescription
start?stringEnd of the range as 'YYYY-Mon-DD' (e.g. 2026-May-28)
duration?numberDays back from start (default 7; 0 = since epoch)
verbose?booleanInclude per-reservation entries
fn config_show(public?: boolean)
Read the igor2 server configuration (or public settings)
ArgumentTypeDescription
public?booleanRead only the public settings (no admin required)
fn auth_reset(confirm: literal)
Reset the server JWT signing secret — DESTRUCTIVE: invalidates every issued token cluster-wide (admin)
ArgumentTypeDescription
confirmliteralMust be true — this invalidates ALL issued JWT tokens cluster-wide
fn show(public?: boolean)
Read the cluster dashboard (cluster meta, hosts, reservations)
ArgumentTypeDescription
public?booleanRead only the public settings (no admin required)

Resources

cluster(infinite)— An igor2 cluster definition and its MOTD
dashboard(7d)— Cluster dashboard snapshot (cluster meta, hosts, reservations)
stats(7d)— An igor2 cluster usage-statistics snapshot
config(7d)— The igor2 server configuration snapshot
operation(7d)— Outcome of a sync, MOTD-set or auth-reset action
03Previous Versions1
2026.05.28.2May 29, 2026
04Stats
A
100 / 100
Downloads
0
Archive size
58.0 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
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
05Platforms
06Labels