Ironic Node — Provision State Machine

Ironic Node — Provision State Machine A lifecycle diagram generated by Archify. 01 / Provisioning rail — stable states 02 / Interruptions, waits and branches 03 / Failure states (recoverable) Enroll · row exists, not verified · Provisioning rail — stable states · manage then verifying 01 Enroll row exists, not verified manage then verifying Manageable · creds verified, power off · Provisioning rail — stable states · adopt, inspect, clean here 02 Manageable creds verified, power off adopt, inspect, clean here Available · clean, free to allocate · Provisioning rail — stable states · Nova can claim it 03 Available clean, free to allocate Nova can claim it Deploying · partition, write image · Provisioning rail — stable states · target state: active 04 Deploying partition, write image target state: active Active · tenant workload running · Provisioning rail — stable states · stable 05 Active tenant workload running stable Cleaning · cleaning + clean wait · Interruptions, waits and branches · used by provide + delete Cleaning cleaning + clean wait used by provide + delete Inspecting · inspecting, inspect wait · Interruptions, waits and branches · only from manageable Inspecting inspecting, inspect wait only from manageable Wait call-back · waiting on IPA heartbeat · Interruptions, waits and branches · the literal state string Wait call-back waiting on IPA heartbeat the literal state string Rescue states · rescuing, wait, rescue · Interruptions, waits and branches · unrescue to get back Rescue states rescuing, wait, rescue unrescue to get back Deleting · tear down, then cleaning · Interruptions, waits and branches · verbs: delete, undeploy Deleting tear down, then cleaning verbs: delete, undeploy Inspect failed · manage or inspect again · Failure states (recoverable) Inspect failed manage or inspect again Clean failed · manage to recover · Failure states (recoverable) Clean failed manage to recover Error · delete or rebuild · Failure states (recoverable) Error delete or rebuild manage provide done deploy done wait inspect fail manage fail or abort rescue unrescue delete fail Legend start active state waiting terminal success failure / exit

Walkthrough - enroll to active, and what the columns mean

  • • 1. You POST the node with a driver name and BMC credentials; the API writes the row and it sits in enroll.
  • • 2. You PUT target=manage; the conductor dials the BMC - credentials good means manageable, bad means back to enroll.
  • • 3. You PUT target=provide; the conductor wipes the disks (cleaning) on its own, then the node becomes available.
  • • 4. You PUT target=active with an image; the conductor partitions the disk and writes it (state: deploying).
  • • 5. It parks in wait call-back until the IPA ramdisk heartbeats back, then the conductor flips it to active.
  • • Steps 1, 2, 3 and 4 are API verbs you send; wait, resume, done and fail are fired by the conductor, never by you.
  • • provision_state = life stage, power_state = on/off, target_provision_state = the goal, reservation = the conductor's lock.