Understanding juju
vs jaas
vs jimmctl
¶
This document aims to explain the differences between the various CLI tools you may encounter when using Juju and JAAS.
Summary¶
|
|
|
|
Purpose |
Used to interact with Juju/JIMM controllers |
A plugin to add more commands to the Juju CLI |
A tool for admins of the JIMM server |
Installation Link |
|||
Use |
|
|
|
juju
¶
The Juju ecosystem introduces the Juju CLI as the first way a user can interact with their Juju environment.
The Juju CLI is provided as a Snap and allows you to communicate with a Juju controller.
More information on the Juju CLI is available here. A full list of the Juju CLI commands is available here
The Juju CLI shares the same name as the Juju project so it’s helpful to understand via context or via the explicit use of
juju
when we are talking about the Juju CLI versus the Juju project.
jaas
¶
The JAAS ecosystem introduces the JIMM controller. A special controller that sits in front of your Juju controllers and acts as an authorisation gateway and aggregator.
Interacting with the JIMM controller is done in the same fashion as Juju controllers, i.e. one uses the Juju CLI.
However, JIMM offers some extra functionality and that is where jaas
comes in.
The jaas
CLI tool acts as a plugin for the Juju CLI. It is distributed as a Snap.
When you install both the Juju and JAAS snaps, they automatically connect via
content-interface enabling new commands on the Juju CLI.
To view a list of all the newly available commands run juju jaas -h
.
These commands are intended to be used by all users of JAAS, giving you more capability with Juju.
jimmctl
¶
As mentioned above, at the centre of the JAAS ecosystem is the JIMM controller. The jimmctl
CLI tool is intended for administrators
of JIMM, to be used to debug permission issues, add controllers, access audit logs, etc.
The jimmctl
tool is also distributed as a Snap.
Use of the jimmctl
tool requires that you are logged into the JIMM controller with the Juju CLI and that your user has administrator
permissions on the controller. At this point you can run jimmctl
to interact with the system.
Try running jimmctl list-controllers
to see which controllers are connected to JIMM.