Introduced to Juju 2.6.1, clouds can now be added to an existing controller using juju add-cloud
. This gives rise to the “multi-cloud controller”.
Multi-cloud controllers are intended for cases where a clouds are stacked on top of one another. For example, when an OpenStack is deployed on top of MAAS or perhaps a LXD cluster is deployed on top of OpenStack.
The syntax of the most relevant options is:
juju add-cloud [--c=<controller>] [--force] [<cloud-name> <cloud-definition>]
When invoked without arguments, add-cloud
begins an interactive session to help you provide details to Juju about your new cloud.
The -c
(also --controller
) option provides you with the ability to upload your cloud’s definition to a controller that you’re not currently connected to.
When adding a cloud to a controller, you may encounter an error asking you to use --force
. This is a warning that Juju cannot guarantee high connectivity between the cloud and the controller.
Supported combinations are:
- LXD controllers support LXD, MAAS and OpenStack clouds
- MAAS controllers support MAAS and OpenStack clouds
- OpenStack controllers supports OpenStack clouds
When using --force
, you must consider network routability and other considerations. With the manual provider, for example, any collection of SSH-accessible machines can become a private cloud. Juju is unable to assume high-reliability.
To add Kubernetes clusters to your controller, use the add-k8s
command.