Ansible roles and playbooks to enable a standalone Ironic install
de0d4c738e
The latest release 1.9.1 of Ansible OpenStack Collection [1] is compatible only to openstacksdk <0.99.0. Until the former has been fixed, a workaround [2] is required in Bifrost to pin both the Ansible OpenStack Collection as well as openstacksdk. These pinned versions will be overwritten when their repositories are listed in job.required-projects in .zuul.yaml, which we do in the master branch of Ansible OpenStack collection [3] for both jobs bifrost-collections-src and bifrost-keystone-collections-src. This has two side effects: First, Bifrost's CI jobs use the master branch of both openstacksdk and Ansible OpenStack Collection for both bifrost-*collections-* jobs which thus differ from other Bifrost jobs that use pinned releases. Second, it causes a chicken-and-egg problem: Applying a breaking change to module openstack.cloud.baremetal_node [4] will break Bifrost but could easily be fixed [5]. The fix would be backward compatible to previous releases of Ansible OpenStack Collection and openstacksdk. But merging that fix [5] without patching module openstack.cloud.baremetal_port [6] first would break the bifrost-*collections-* jobs. The patch for openstack.cloud.\ baremetal_port [6] would break bifrost-*collections-* jobs without the Bifrost fix [5]. The solution is to use the last known working releases of Ansible OpenStack collection and openstacksdk in both bifrost-*collections-* jobs like all other Bifrost jobs already do. Once we release Ansible OpenStack collection 2.0.0, we simply have to revert Dmitry's workaround [2] and this patch. [1] https://opendev.org/openstack/ansible-collections-openstack [2] |
||
---|---|---|
bifrost | ||
doc | ||
playbooks | ||
releasenotes | ||
scripts | ||
tools | ||
zuul.d | ||
.ansible-lint | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.stestr.conf | ||
ansible-collections-requirements.yml | ||
bifrost-cli | ||
bindep.txt | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Bifrost
Bifrost (pronounced bye-frost) is a set of Ansible playbooks that automates the task of deploying a base image onto a set of known hardware using ironic. It provides modular utility for one-off operating system deployment with as few operational requirements as reasonably possible.
The mission of bifrost is to provide an easy path to deploy ironic in a stand-alone fashion, in order to help facilitate the deployment of infrastucture, while also being a configurable project that can consume other OpenStack components to allow users to easily customize the environment to fit their needs, and drive forward the stand-alone perspective.
Use cases include:
- Installation of ironic in standalone/noauth mode without other OpenStack components.
- Deployment of an operating system to a known pool of hardware as a batch operation.
- Testing and development of ironic in the standalone mode.
Useful Links
- Bifrost's documentation can be found at:
- Release notes are at:
- The project source code repository is located at:
- Bugs can be filed in storyboard:
-
https://storyboard.openstack.org/#!/project/openstack/bifrost