the following problem is to solve: - OpenStack Ocata (Ubuntu 16.04) (deployed with MAAS/Juju) with serveral availability zones / aggregates. Some are for testing, some for production - Test-tenant in its own OpenStack domain and project - Jump server VM in test-tenant (Ubuntu 18.04) with Juju 2.4 - Juju controller (bootstrapped from jump server in OpenStack cloud/region) (NO MAAS in test-tenant !)

Now, we want to deploy a multi-node charm bundle with 'juju deploy' and make sure that every juju-initiated 'machine' would be created only on nova compute nodes in the 'testing' availability zone/aggregate.

Any suggestions or recommendations?


PS: What I did NOT want to achieve with this question: - Hints and tips for 'juju deploy --to 0 xxx' or 'juju add-unit --to 1 xxx' cause the target machines must still exist. I am searching solution for a 'green field' bundle deployment.

2 Answers 2


The deploy command allows for zone placement.

Here is the example from the 'juju deploy --help' command:

juju deploy mysql --to zone=us-east-1a
(provider-dependent; deploy to a specific AZ)

I believe that zone placements work with openstack, so targetting zone=testing should work.


The following is working --> Juju 2.4

$ openstack availability zone list
| Zone Name | Zone Status |
| internal  | available   |
| default   | available   |
| testzone  | available   |  <--- desired AZ
| nova      | available   |

# juju model-config zone='testzone'
# juju deploy cs:ubuntu-12 --constraints "root-disk=8G" --to zone='testzone' ubuntu01

Each deployed machine will start in the desired AZ.

What´s NOT working:

# juju deploy canonical-kubernetes --to zone='testzone'
ERROR flags provided but not supported when deploying a bundle: --to

So you have to deploy your services step by step and reproduce the charm-bundle with single charm and relation deployment. :-(

I am currently investigating some possibilities forcing a zone to a local bundle.

Many thanks !

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.