OpenStack Compute Nodes Juju Availability Zones Sync¶
For some providers, Juju may set the environment variable
JUJU_AVAILABILITY_ZONE
with information about the availability zone of the
machine deployed.
OpenStack has the concept of availability zones too, and it would be useful for Juju operators to have the option of automatically sync the Juju availability zones with the OpenStack availability zones.
Problem Description¶
At the moment, a Juju operator needs to manually sync the nova-compute Juju machines’ availability zones (AZs), with the OpenStack AZs.
Proposed Change¶
A new Juju action to the nova-cloud-controller charm will be implemented to automatically sync the Juju AZs with the OpenStack AZs. The availability zone for each Juju unit is exposed to the nova-cloud-controller charm through the cloud-compute relation.
Alternatives¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
ionutbalutoiu
Gerrit Topic¶
Use Gerrit topic “compute-nodes-az-sync” for all patches related to this spec.
git-review -t compute-nodes-az-sync
Work Items¶
nova-compute
Set a new relation variable called
availability_zone
in thecloud-compute
relation (used to relate to thenova-cloud-controller
application). This variable will take the value of the automatic Juju variableJUJU_AVAILABILITY_ZONE
, if this is set by the underlying provider.
nova-cloud-controller
Implement a new Juju action called
sync-compute-availability-zones
used to sync the Juju availability zones, set by the remote units in thecloud-compute
relation, with the OpenStack availability zones.
Repositories¶
openstack/charm-nova-compute
openstack/charm-nova-cloud-controller
Documentation¶
The new Juju action needs to be documented in the appropriate docs that reference the nova-cloud-controller actions. This is the only user-facing change.
Security¶
None
Testing¶
Code written or changed will be covered by unit tests.
Dependencies¶
The nova-cloud-controller
charm does not install the Nova client Python
library. This is needed for the new Juju action, so it is added to the charm
Python dependencies.