Skip to content

openshift/ironic-agent-image

 
 

Repository files navigation

Ironic Agent Container

This is an container image for using ironic-python-agent (IPA) on top of CoreOS. This is different from standard IPA images that are built with diskimage-builder from a conventional Linux distribution, such as RHEL or Debian.

This repository also contains a CoreOS-specific IPA hardware manager called ironic_coreos_install. It is responsible for the customized installation process.

How it works

Unlike a conventional IPA image, the IPA source is not shipped with a CoreOS image. Instead, another component called image-customization-controller is used to inject its configuration into the ramdisk's Ignition. IPA is started as a systemd service that downloads its container image on start-up.

Inspection and automated cleaning works as usual in Ironic, but the deployment process is very different. Instead of downloading a QCOW2 image and writing it to the disk, the custom hardware manager runs the coreos-installer command shipped with the CoreOS image to install the contents of the ramdisk onto the disk. This way, no separate CoreOS image is required.

To achieve this, the BareMetal Operator custom deploy feature is used. It allows replacing some of the normal Ironic deploy steps with the install_coreos step shipped here.

Assisted agent integration

The custom hardware manager also ships another deploy step start_assisted_install that allows integration with the assisted service in a so called converged flow (in a contrast with the older non-converged flow that did not use IPA at all).

The assisted service invokes the converged flow by creating a CoreOS ramdisk with an Ignition that starts IPA and also ships the assisted agent without starting it.

The converged flow also starts with inspection unless disabled by a user. To make a host available for the assisted installation, the assisted service invokes the start_assisted_install step. This causes the host to move to the provisioning state, while IPA uses the systemd D-BUS API to start the assisted agent. IPA then waits for the assisted agent to exit and reports the exit status back to Ironic and eventually to BareMetal Operator.

The converged flow also allows cleaning and preparation steps such as RAID configuration or firmware settings to be run before provisioning.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 67.8%
  • Shell 31.5%
  • Makefile 0.7%