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-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 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:
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:
If you want to generate machine-readable output,
juju status supports a
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]