Handle upgrades with drop of AvailabilityZoneFilter in bobcat
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Charm Guide |
Fix Released
|
Undecided
|
Unassigned | ||
OpenStack Nova Cloud Controller Charm |
Fix Committed
|
High
|
Unassigned |
Bug Description
The AvailabilityZon
The was removed from upstream nova in the 2023.2 cycle
via commit 5edd805fe2395f3
The nova release note states:
The ``AvailabilityZ
in 24.0.0 (Xena) and has now been removed.
The functionality of the``Availabili
replaced by the``map_
The pre-filter was introduced in 18.0.0 (Rocky) and enabled
by default in 24.0.0 (Xena). This pre-filter is now always
enabled and the ``[scheduler] query_placement
config option has been removed.
There are likely migration considerations here for the charms where placement aggregates will need updating on upgrade to bobcat or C (SLURP) in order for users to target availability zones on instance creation (needs testing). New bobcat or C deploys should be okay [1] (but also needs testing).
Relevant docs:
https:/
https:/
[1] Note (from 2nd link above):
The nova-api service attempts (as of nova 18.0.0) to automatically mirror the association of a compute host with an aggregate when an administrator adds or removes a host to/from a nova host aggregate. This should alleviate the need to manually create those association records in the placement API using the openstack resource provider aggregate set CLI invocation.
I started a review here: https:/
Changed in charm-nova-cloud-controller: | |
status: | New → Triaged |
Changed in charm-placement: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in charm-nova-cloud-controller: | |
importance: | Undecided → High |
Changed in charm-nova-cloud-controller: | |
status: | Triaged → In Progress |
no longer affects: | charm-placement |
I tested the following successfully for this change:
Note: Fix for the following is required for upgrades: https:/ /bugs.launchpad .net/charm- nova-cloud- controller/ +bug/2037751
== upgrade ==
# deploy jammy-zed zone=az- zed ag-zed
openstack aggregate create ag-zed
openstack aggregate set --property availability_
openstack aggregate add host ag-zed $(openstack hypervisor list --column 'Hypervisor Hostname' --sort-column 'Hypervisor Hostname' --format value | grep 14)
openstack server create az-zed-on-zed --availability-zone az-zed --image cirros --flavor m1.tiny --nic net-id=private
openstack server show --column hypervisor_hostname --column availability_zone az-zed-on-zed
# upgrade to antelope zone=az- antelope ag-antelope on-antelope --availability-zone az-antelope --image cirros --flavor m1.tiny --nic net-id=private on-antelope
openstack aggregate create ag-antelope
openstack aggregate set --property availability_
openstack aggregate add host ag-antelope $(openstack hypervisor list --column 'Hypervisor Hostname' --sort-column 'Hypervisor Hostname' --format value | grep 15)
openstack server create az-antelope-
openstack server create az-zed-on-antelope --availability-zone az-zed --image cirros --flavor m1.tiny --nic net-id=private
openstack server show --column hypervisor_hostname --column availability_zone az-antelope-
openstack server show --column hypervisor_hostname --column availability_zone az-zed-on-antelope
# upgrade to bobcat zone=az- bobcat ag-bobcat on-bobcat --availability-zone az-antelope --image cirros --flavor m1.tiny --nic net-id=private on-bobcat
openstack aggregate create ag-bobcat
openstack aggregate set --property availability_
openstack aggregate add host ag-bobcat $(openstack hypervisor list --column 'Hypervisor Hostname' --sort-column 'Hypervisor Hostname' --format value | grep 16)
openstack server create az-bobcat-on-bobcat --availability-zone az-bobcat --image cirros --flavor m1.tiny --nic net-id=private
openstack server create az-antelope-
openstack server create az-zed-on-bobcat --availability-zone az-zed --image cirros --flavor m1.tiny --nic net-id=private
openstack server show --column hypervisor_hostname --column availability_zone az-bobcat-on-bobcat
openstack server show --column hypervisor_hostname --column availability_zone az-antelope-
openstack server show --column hypervisor_hostname --column availability_zone az-zed-on-bobcat
== new bobcat deploy ==
# deploy jammy-bobcat zone=az- bobcat ag-bobcat
openstack aggregate create ag-bobcat
openstack aggregate set --property availability_
openstack aggregate add host ag-bobcat $(openstack hypervisor list --column 'Hypervisor Hostname' --sort-column 'Hypervisor Hostname' --format value | grep 16)
openstack server create az-bobcat-on-bobcat --availability-zone az-bobcat --image cirros --flavor m1.tiny --nic net-id=private
openstack server show --column hypervisor_hostname --column availability_zone az-bobcat-on-bobcat