Provision nodes with Ironic+Mistral/Ansible without Nova
Making TripleO workflows use Ironic directly to provision nodes has quite a few benefits:
1. First and foremost, getting rid of the horrible "no valid hosts found" exception. The scheduling will be much simpler and the errors will be clearer.
2. Also important for the generic provisioner case, we'll be able to get rid of Nova and Glance, reducing the memory footprint.
3. We'll get rid of pre-deploy validations that currently try to get what nova scheduler will expect.
4. We'll become on charge of building the configdrive, potentially putting more useful things there.
5. In the future we'll be able to integrate things like building RAID on demand much easier.
6. Also in the future we might want to use introspection data in scheduling and provisioning decisions. Particularly, we can automate handling root device hints.
7. We'll probably have easier time combining ironic with pre-deployed services or virtual solutions (e.g. putting controllers on oVirt, which is currently done via an unsupported ironic-
8. Hopefully, scale-up will be less error-prone.
The way I see it implemented is probably similar to the config-download work (and based on it). We can have a Heat flag to not provision instances, essentially stop after creating ports and creating ansible input. Then a mistral workflow will pick the required number of nodes, prepare them and provision. Then the usual config-download will proceed.
A library is being prepared to host the reusable code for provisioning: https:/
Blueprint information
- Status:
- Complete
- Approver:
- Emilien Macchi
- Priority:
- Medium
- Drafter:
- Dmitry Tantsur
- Direction:
- Approved
- Assignee:
- Steve Baker
- Definition:
- Approved
- Series goal:
- Accepted for ussuri
- Implementation:
-
Implemented
- Milestone target:
-
ussuri-rc1
- Started by
- Dmitry Tantsur
- Completed by
- Steve Baker
Related branches
Related bugs
Sprints
Whiteboard
[2019-09-18] (aschultz): Not implemented by the end of Train, moving out to Ussuri
Gerrit topic: https:/
Addressed by: https:/
Support provisioning bare metals without Nova
Addressed by: https:/
Add ServerDeletionP
Addressed by: https:/
Add RoleNetPortIdMap output
Addressed by: https:/
Add RoleCtlplanePortMap output
Addressed by: https:/
[WIP] Bare metal provisioning without Nova and Glance
Addressed by: https:/
nova-
Addressed by: https:/
nova-
Addressed by: https:/
[WIP] nova-less-deploy: implement deploy_roles workflow
Addressed by: https:/
nova-
Gerrit topic: https:/
Addressed by: https:/
Switch off nova metadata api on the undercloud
Addressed by: https:/
Revert "Switch off nova metadata api on the undercloud"
Addressed by: https:/
Revert "Revert "Switch off nova metadata api on the undercloud""
Gerrit topic: https:/
Addressed by: https:/
Configure nova_compute for vendordata
Addressed by: https:/
[WIP] nova-less-deploy: stop using glance for ironic-python-agent images
Addressed by: https:/
Rework create_
Addressed by: https:/
Define var undercloud_
Addressed by: https:/
Write out overcloud_
Addressed by: https:/
DNM: undercloud_
Addressed by: https:/
Env file to disable undercloud nova
Addressed by: https:/
Add undercloud.conf enable_nova option
Addressed by: https:/
DNM Set enable_nova in undercloud.conf
Addressed by: https:/
Define variable baremetal_provision
Addressed by: https:/
DNM: Set baremetal_
Addressed by: https:/
Filter the rendered DeployedServerP
Addressed by: https:/
Improve yaml output of "openstack overcloud node provision"
Addressed by: https:/
Drop EC2MetadataIp parameter and its uses
Addressed by: https:/
Make instances name/hostname optional
Addressed by: https:/
WIP Add --baremetal-
Addressed by: https:/
DNM proposed change to baremetal provision format
Addressed by: https:/
Break out hostname format logic into functions
Addressed by: https:/
Allow mixing of count and instances
Gerrit topic: https:/
Addressed by: https:/
nova-
Addressed by: https:/
Add provisioned attribute to instances
Addressed by: https:/
WIP add an undeploy_nodes workflow
Addressed by: https:/
WIP new command "openstack overcloud node unprovision"
Addressed by: https:/
WIP New command "overcloud node extract provisioned"
Addressed by: https:/
Remove glance and nova custom constraints
Addressed by: https:/
Sync deployed-
Addressed by: https:/
Remove disable_constraints
Addressed by: https:/
DNM never delete a nova server
Addressed by: https:/
Move enable_nova after enable_ironic
Addressed by: https:/
Also disable undercloud glance with nova
Addressed by: https:/
Don't mount /etc/nova into placement migrate script
Addressed by: https:/
Configure nova_compute for vendordata
Addressed by: https:/
Configure nova_compute for vendordata
Addressed by: https:/
DNM: baremetal_
Addressed by: https:/
Add missing allocations for active nodes
Addressed by: https:/
Revert "Fixes for deploying nova-less undercloud"
Addressed by: https:/
Revert "Revert "Fixes for deploying nova-less undercloud""
Gerrit topic: https:/
Addressed by: https:/
Run RDO jobs with baremetal provisioning
Addressed by: https:/
Run multinode and undercloud jobs nova-less
Addressed by: https:/
Ignore failure calling cell_v2_
Addressed by: https:/
mistral-
Addressed by: https:/
Create an endpoint entry for novajoin
Addressed by: https:/
Override policy for undercloud novajoin
Addressed by: https:/
Build config-drive with novajoin metadata
Addressed by: https:/
WIP prompt for nodes which will be unprovisioned
Addressed by: https:/
Complete overcloud deploy --baremetal-
Addressed by: https:/
Document baremetal provisioning
Addressed by: https:/
Clean up instance defaults setting
Addressed by: https:/
Set ServerDeletionP
Gerrit topic: https:/
Addressed by: https:/
Refactor image upload command
Addressed by: https:/
WIP local file based image uploader
Addressed by: https:/
WIP bm provisioning with overcloud node delete
Addressed by: https:/
Update docs for node delete with baremetal provisioning
Addressed by: https:/
Don't subclass NovajoinConfig
Addressed by: https:/
openstack overcloud node delete --baremetal-
Addressed by: https:/
Clean up instance defaults setting
Addressed by: https:/
Improvements to unprovision command
Addressed by: https:/
Complete overcloud deploy --baremetal-
Addressed by: https:/
Set ServerDeletionP
Addressed by: https:/
Refactor image upload command
Addressed by: https:/
Local file based image uploader
Gerrit topic: https:/
Addressed by: https:/
Auto-detect default overcloud-full image
Addressed by: https:/
DNM switch off nova/glance in featureset001
Addressed by: https:/
Exit overcloud-deploy.sh on provision failure
Addressed by: https:/
Return None image client when no glance endpoint
Addressed by: https:/
Only do nova cell discovery when nova endpoint exists
Addressed by: https:/
Reduce overhead of stack show loop
Gerrit topic: https:/
Addressed by: https:/
New command "overcloud node extract provisioned"
Addressed by: https:/
Add role tripleo_
Addressed by: https:/
Module tripleo_
Addressed by: https:/
WIP undercloud upgrade steps to switch off nova and glance
Addressed by: https:/
Fall back to local upload when there is no glance endpoint
Gerrit topic: https:/
Addressed by: https:/
on-