Ironic Python Agent (also often called IPA or just agent) is a Python-based agent which handles ironic bare metal nodes in a variety of actions such as inspect, configure, clean and deploy images. IPA is distributed over nodes and runs, inside of a ramdisk, the process of booting this ramdisk on the node.
For more information see the ironic-python-agent documentation.
Starting with the Kilo release all drivers (except for fake ones) are using IPA for deployment. There are two types of them, which can be distinguished by prefix:
Which one to choose depends on your environment. iSCSI-based drivers put higher load on conductors, agent-based drivers currently require the whole image to fit in the node’s memory.
Using IPA requires it to be present and configured on the deploy ramdisk, see Building or downloading a deploy ramdisk image for details.
IPA supports using proxies while downloading the user image. For example, this could be used to speed up download by using caching proxy.
After deploying an image onto the node’s hard disk Ironic will reboot the machine into the new image. By default this power action happens in-band, meaning that the ironic-conductor will instruct the IPA ramdisk to power itself off.
Some hardware may have a problem with the default approach and would require Ironic to talk directly to the management controller to switch the power off and on again. In order to tell Ironic to do that you have to update the node’s driver_info field and set the deploy_forces_oob_reboot parameter with the value of True. For example, the below command sets this configuration in a specific node:
ironic node-update <UUID or name> add driver_info/deploy_forces_oob_reboot=True