nova-compute errors on startup when ironic user isn't registered in keystone
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
High
|
Robert Collins |
Bug Description
The specific case we saw in testing was when the ironic service user hadn't been created, but in general it makes system startup fragile if we have to formally sequence bringup across a dag.
The specific error was in run_service which has a bunch of code that presumes the full hypervisor functionality is available.
TripleO can probably deploy this today using brute force - o-r-c will just retry every 30s until keystone is up and we've had time to configure the ironic use, but it would be much much better if the needed one-time work was just queued until the api was available.
to reproduce:
install and configure ironic as usual but give a bad (e.g. missing use) ironic use in the nova config.
summary: |
- ironic nova driver blocks nova-compute startup when ironic isn't - available + nova-compute errors on startup with ironic nova when ironic user isn't + registered in keystone |
Changed in ironic: | |
status: | Incomplete → Triaged |
summary: |
- nova-compute errors on startup with ironic nova when ironic user isn't - registered in keystone + nova-compute errors on startup when ironic user isn't registered in + keystone |
Changed in ironic: | |
milestone: | none → icehouse-rc1 |
Changed in ironic: | |
status: | Fix Committed → Fix Released |
Changed in ironic: | |
milestone: | icehouse-rc1 → 2014.1 |
I believe this is a feature, not a bug :)
Seriously though, if libvirt isn't available and n-cpu is configured to use that driver, then AFAIK, it doesn't start. This is no different. Nova Compute requires the hypervisor driver be available during init_host(), or else critical initialization tasks (which are only performed during init_host) can not be performed.