Ramdisk Agent Driver
With the new ramdisk officially being part of the Ironic project, Ironic needs a driver to communicate and control it. This driver will serve as a reference implementation for such a driver. The basics of the driver are:
* Hardware boots up the ramdisk PXE image, with the Ironic API url as a param
* The ramdisk hits the nodeless vendor passthru, giving its mac addresses. The driver responds by looking up the ports and the node matching those ports and returns the node object. Support for a node that doesn't exist in Ironic's DB (node auto registration) is not targeted for this blueprint. A heartbeat config-based timeout is passed to the ramdisk agent as well, so it knows how often it is expected to heartbeat.
* The ramdisk agent uses the UUID in the returned node object to start heartbeating to Ironic using the standard driver vendor passthru. The ramdisk will send its IP along with the heartbeat that the driver can use to contact the node.
* The driver sets a periodic task to check for nodes that have failed to heartbeat and sets them in some provision_state to signify they are likely not responding.
* The driver can send commands to the node using the IP that is sent along with the heartbeat.
This driver depends on nodeless vendor passthru to initially link a node to a ramdisk agent, and allows the ramdisk agent to figure out what node (and specially its UUID so it can communicate to the normal vendor passthru). https:/
Blueprint information
- Status:
- Complete
- Approver:
- aeva black
- Priority:
- High
- Drafter:
- Josh Gachnang
- Direction:
- Approved
- Assignee:
- Jim Rollenhagen
- Definition:
- Approved
- Series goal:
- Accepted for juno
- Implementation:
- Implemented
- Milestone target:
- 2014.2
- Started by
- aeva black
- Completed by
- aeva black
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Adding a reference driver for the agent
Addressed by: https:/
Add lookup method to vendor mapping
Addressed by: https:/
Add version 1 of agent payload
Addressed by: https:/
Version agent lookup payloads
Addressed by: https:/
Bring agent deploy driver up to date with virt
Addressed by: https:/
Add configdrive generation to Nova driver
Gerrit topic: https:/
Addressed by: https:/
Support for v2 agent payloads
Addressed by: https:/
Factoring out PXE and TFTP functions
Addressed by: https:/
Wait for Neutron port updates when using SSHPower
Addressed by: https:/
Fixes for yuri to agent driver
Addressed by: https:/
Add methods to ipmitool driver
Addressed by: https:/
Factor out TFTPImageCache
Addressed by: https:/
Factor out deploy info from PXE driver
Addressed by: https:/
Add ironic-python-agent deploy driver (DO NOT MERGE)
Addressed by: https:/
Add deploy driver for ironic-python-agent
Addressed by: https:/
Adding swift temp url support
Gerrit topic: https:/
Addressed by: https:/
Improve IPA client library
Work Items
Dependency tree
* Blueprints in grey have been implemented.