Add compute-nodes-az-sync spec

It proposes an automatic way to sync the Juju availability zones
with the OpenStack availability zones.

Change-Id: I315ffbdb2a1a0ab993fca1c0f39f758b214a36ce
This commit is contained in:
Ionut Balutoiu 2021-02-03 16:35:15 +00:00
parent 8cbfdbc908
commit a6f8b11c24
1 changed files with 110 additions and 0 deletions

View File

@ -0,0 +1,110 @@
..
Copyright 2021 Canonical Ltd.
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
..
This template should be in ReSTructured text. Please do not delete
any of the sections in this template. If you have nothing to say
for a whole section, just write: "None". For help with syntax, see
http://sphinx-doc.org/rest.html To test out your formatting, see
http://www.tele3.cz/jbar/rest/rest.html
====================================================
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.
.. code-block:: bash
git-review -t compute-nodes-az-sync
Work Items
----------
- nova-compute
- Set a new relation variable called ``availability_zone`` in the
``cloud-compute`` relation (used to relate to the ``nova-cloud-controller``
application). This variable will take the value of the automatic Juju
variable ``JUJU_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 the
``cloud-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.