7468264200
Set of tools that represent some sort of API to communicate with bareon instance. This API use vendor_passthru ironic API to "catch" request from bareon instance to ironic API. So bareon-ironic driver can receive bareon insnstance requests. This is existing communication channel. Before it was used to receive notification from bareon instance about successfull node load. Now this channel is extended to send "generic" tasks(step) from bareon-ironic driver to bareon instance. Right now only one task(step) is used - step to inject SSH key into bareon instance. This new "steps" interface allow to refuse from preinstalled SSH key in bareon instance, right now. And in future it allow to refuse from SSH communication between bareon-ironic and bareon instance... Change-Id: I0791807c7cb3dba70c71c4f46e5eddf01da76cdd |
||
---|---|---|
bareon_ironic | ||
doc/source | ||
etc/ironic | ||
patches | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
LICENSE | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
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