Here is a thread of features of Juju that don’t appear within many “checkout matrix” comparisions. Feel free to add anything that you think of!
Sophisticated upgrade path checking
Juju knows how to upgrade itself on the fly via upgrade-model
and upgrade-controller
. But it also knows that some upgrade paths are impossible. Hypothetically, 2.10.7 might be required to upgrade to 3.0.0. Juju prevents you from attempting to upgrade a version that would cause errors in production.
[example to come!]
Real-time introspection and reporting via juju status
Juju provides real-time monitoring capabilities via its web interface and the command line. To activate the web interface, first log into the command line and you’ll be provided the login details:
juju gui
GUI 2.14.0 for model "admin/default" is enabled at: https://10.129.244.233:17070/gui/u/admin/default Your login credential is: username: admin password: d4181...
The command-line version is even simpler:
juju status
If you want to generate machine-readable output, juju status
supports a --format
flag
juju status --format=(summary|yaml|json|table)
juju debug-log --replay
Juju logs what it’s doing across all of your models. If you want to gain some real visibility about what’s happening, this can be tailored to provide you exactly what you want:
Inspecting API commands sent over the wire
juju debug-log -m controller --replay --include-module juju.apiserver
This can be dialed up to 11 by increasing the verbosity of the internal logging.
juju model-config -m controller logging-config="juju.apiserver=TRACE"
[more examples to come]