Bareon-based driver for Ironic
Go to file
OpenDev Sysadmins 9ba560c681 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:51:20 +00:00
bareon_ironic Fix bug in when verification is called 2017-06-22 13:26:39 +01:00
doc/source Rename variables 2017-01-13 12:54:19 +00:00
etc/ironic Adopt code to ironic changes (since kilo) 2017-02-03 19:26:44 +02:00
patches New communication interface with bareon instance 2017-02-28 16:06:57 +02:00
.gitignore Add .gitignore file 2016-12-07 15:25:07 +02:00
.gitreview OpenDev Migration Patch 2019-04-19 19:51:20 +00:00
.testr.conf Change the way we use sphinx(autodocs) 2016-11-23 17:09:06 +02:00
LICENSE Initial commit 2016-04-15 11:36:28 +03:00
README.rst Initial commit 2016-04-15 11:36:28 +03:00
requirements.txt Reimplement SSH port forwarding 2016-12-08 12:42:01 +02:00
setup.cfg New communication interface with bareon instance 2017-02-28 16:06:57 +02:00
setup.py Initial commit 2016-04-15 11:36:28 +03:00
test-requirements.txt Reimplement SSH port forwarding 2016-12-08 12:42:01 +02:00
tox.ini Update ironic version for pike 2017-07-07 15:30:37 +01:00

Bareon-based deployment driver for Ironic

bareon_ironic package adds support for Bareon to OpenStack Ironic. Ironic1 is baremetal provisioning service with support of multiple hardware types. Ironic architecture is able to work with deploy agents. Deploy agent is a service that does provisioning tasks on the node side. Deploy agent is integrated into bootstrap ramdisk image. bareon_ironic contains pluggable drivers code for Ironic that uses Bareon2 as deploy agent. Current implementation requires and tested with Ironic/Nova Stable Kilo release.

Features overview

Flexible deployment configuration

A JSON called deploy_config carries partitions schema, partitioning behavior, images schema, various deployment args. It can be passed through various places like nova VM metadata, image metadata, node metadata etc. Resulting JSON is a result of merge operation, that works basing on the priorities configureed in /etc/ironic/ironic.conf.

LVM support

Configuration JSON allows to define schemas with mixed partitions and logical volumes.

Multiple partitioning behaviors available

  • Verify. Reads schema from the baremetal hardware and compares with user schema.
  • Verify+clean. Compares baremetal schema with user schema, wipes particular filesystems basing on the user schema.
  • Clean. Wipes disk, deploys from scratch.

Multiple image deployment

Configuration JSON allows to define more than 1 image. The Bareon Ironic driver provides handles to switch between deployed images. This allows to perform a baremetal node upgrades with minimal downtime.

Block-level copy & file-level Image deployment

Bareon Ironic driver allows to do both: bare_swift drivers for block-level and bare_rsync drivers for file-level.

Deployment termination

The driver allows to teminate deployment in both silent (wait-callback) and active (deploying) phases.

Post-deployment hooks

Two hook mechanisms available: on_fail_script and deploy actions. The first one is a user-provided shell script which is executed inside the deploy ramdisk if deployment has failed. The latter is a JSON-based, allows to define various actions with associated resources and run them after the deployment has passed.

Building HTML docs

$ pip install sphinx $ cd bareon-ironic/doc && make html


  1. https://wiki.openstack.org/wiki/Ironic↩︎

  2. https://wiki.openstack.org/wiki/Bareon↩︎