
Currently, when you delete an ironic instance, we trigger and undeploy in ironic and we release our allocation in placement. We do this well before the ironic node is actually available. We have attempted to fix this my marking unavailable nodes as reserved in placement. This works great until you try and re-image lots of nodes. It turns out, ironic nodes that are waiting for their automatic clean to finish, are returned as a valid allocation candidates for quite some time. Eventually we mark then as reserved. This patch takes a strange approach, if we mark all nodes as reserved as soon as the instance lands, we close the race. That is, when the allocation is removed the node is still unavailable until the next update of placement is done and notices that the node has become available. That may or may not have been after automatic cleaning. The trade off is that when you don't have automatic cleaning, we wait a bit longer to notice the node is available again. Note, this is also useful when a broken Ironic node is marked as in-maintainance while it is in-use by a nova instance. In a similar way, we mark the Nova as reserved immmeidately, rather than first waiting for the instance to be deleted before reserving the resources in Placement. Closes-Bug: #1974070 Change-Id: Iab92124b5776a799c7f90d07281d28fcf191c8fe
12 lines
610 B
YAML
12 lines
610 B
YAML
---
|
|
fixes:
|
|
- |
|
|
Fixed when placement returns ironic nodes that have just started automatic
|
|
cleaning as possible valid candidates. This is done by marking all ironic
|
|
nodes with an instance on them as reserved, such that nova only makes them
|
|
available once we have double checked Ironic reports the node as available.
|
|
If you don't have automatic cleaning on, this might mean it takes longer
|
|
than normal for Ironic nodes to become available for new instances.
|
|
If you want the old behaviour use the following workaround config:
|
|
`[workarounds]skip_reserve_in_use_ironic_nodes=true`
|