The purpose of this spec is to add support for the OpenStack Ironic program to OpenStack Ansible, allowing the provisioning of compute nodes to bare metal machines.
Openstack Ansible currently does not support the provisioning of bare metal compute hosts, but this is functionality that operators and users are likely to want.
The Ironic program encompasses a number of projects, but this spec and this proposed series of changes covers the initial implementation of support for Ironic. This will involve adding support for the Ironic server and Ironic client.
Future specs may be raised to cover the addition of ironic-inspector, or to support alternate deployment mechanisms, or to support different deployment drivers. The specific detail for these will be added in future specs.
This work will build upon the experiences learnt in developing bifrost (which is a set of ansible playbooks for deploying Ironic standalone, without other OpenStack components).
The changes that are proposed as part of this spec are:
None, really. Supporting bare metal hosts in OpenStack is done via using Ironic.
Test playbooks will be placed in the openstack-ansible-ironic repository for functional testing purposes, with no initially proposed changes to openstack-ansible playbooks.
In the future, once the ironic role is deemed useful and acceptible, a future spec will address the integration of the ironic role with the main openstack-ansible repository.
Deployers will be able to deploy compute nodes to bare metal hosts.
Ironic specific configuration options will be added to the new repository. When support for the new Ironic role is added to the parent repository new config options will be made available, however it is expected that Ironic support will initially be disabled, requiring that deployers explicitly enable Ironic support, and to enrol hosts for openstack-ansible to use.
As this change is self-contained initially, no impact on other developers is expected.
As this is testing deploying to hardware, this is challenging :)
Develop a test playbook to deploy to hardware that can exercise the new role. Develop tests that verify the role’s behaviour independent of actually requiring hardware to test the role’s functionality.
Adding support to the user guide on how to enable Ironic support will be required.