Discovery
Discovery¶
There are several ways a machine is discovered. This diagram provides a high-level description of how these occur.
```d2 layout=elk ...@docs/assets/classes/all
endpoint: { direction: down label: Endpoint class: endpoint
Pref: {
class: prefs
Default Workflow
Default Stage
Default BootEnv
Unknown BootEnv
}
Subnet: {
class: subnet
}
}
ipmi: { label: IPMI Scan class: work_order }
ipmi -> endpoint: MACs endpoint -> ipmi: Create
machine: { label: Machine class: machine
PXE Boot
Sledgehammer.class: bootenv
Whoami.class: task
PXE Boot -> Sledgehammer: boots
Sledgehammer -> whoami
}
machine.whoami -> endpoint endpoint -> machine.whoami: machine object endpoint <-> machine.whoami: create
runner: { class: runner
universal-discover.class: workflow
universal-discover: {
start-callback.class: task
pre-flexiflow.class: task
inventory.class: task
post-flexiflow.class: task
classify.class: task
validation.class: task
complete-callback.class: task
workflow-chain.class: task
start-callback -> pre-flexiflow -> inventory -> post-flexiflow -> classify -> validation -> complete-callback -> workflow-chain
}
}
machine -> runner ```