In Juju v.2.6.0
, the context for several commands change from the local client cache to an existing controller.
This change amounts to a better user experience since most commands already use a controller as context by default. For example, when a model is added with add-moel
the model is added remotely, on a controller. When an application is deployed with the deploy
command the application is deployed remotely.
The below commands become remote by default:
-
add-cloud
(yet interactive mode is always local) list-clouds
add-k8s
show-cloud
remove-cloud
update-cloud
They each grow a --local
option for when the operator wishes to explicitly apply a command locally.
Note that the add-cloud
command only makes sense in a remote context when a cloud is being added to an existing controller. This makes use of the equally new multi-controller feature.
A caveat is when a client is first installed. In this state, it is not aware of any controllers and issuing the list-clouds
command would therefore lead to a null output. This foreseeable situation is awkward and so the output includes explanatory text and displays local context output:
There are no controllers running.
You can bootstrap a new controller using one of these clouds:
Cloud Regions Default Type Description
aws 15 us-east-1 ec2 Amazon Web Services
aws-china 2 cn-north-1 ec2 Amazon China
.
.
.
rackspace 6 dfw rackspace Rackspace Cloud
localhost 1 localhost lxd LXD Container Hypervisor
A related enhancement is that the update-credential
command can update a remote credential directly from a local YAML file. Previously, a credential needed to be updated locally and then use that to update the credential remotely.