2.8.9 Release Notes

The Juju team is proud to release Juju 2.8.9!

This is a bug-fix release for the 2.8 series.

This release includes important fixes

  • LP #1914619 - running many actions fails to complete, causing them to be terminated
  • LP #1914088 - juju status message field could be more friendly when container is being created
  • LP #1914074 - nconsistency between juju bootstrap and juju deploy when dealing with Kubernetes configuration flags

Additional bugs fixed can be found in the milestone page.

Other improvements

Invalid credential handling

Juju will mark a model as suspended if it gets an “unauthorised” type of error when making an API call to the cloud. A suspended model is put into a dormant state - no workers will run, no hooks will execute, no resources will be provisioned etc. Such models are flagged as suspended in juju status and juju show-model. Running a juju_engine_report will show the key workers all stopped.

What was missing was the ability for Juju to surface the root cause error of the model being suspended. There’s now tooling to allow this.

  1. juju show-model and juju status

Both of these will now include the reason (underlying error string from the API call) for a model being suspended.

  1. juju show-status-log

juju show-status-log --type model will now display the status history of the model so it becomes apparent when the model transitioned from active to suspended.
In addition, juju show-status-log model --format yaml will include the extended error information.

How do I install Juju?

The best way to get a specific release of Juju is to install the snap from the appropriate channel. snap info juju will give you a list of the current channels and the versions published in them. For the latest stable release of Juju:

sudo snap install juju --classic --channel=2.8/candidate

The Juju CLI is available for a variety of platforms, including Windows and macOS. Refer to the installation documentation for details.

How do I upgrade?

There are three binaries that make up a Juju deployment - the client, the server and the agents. To upgrade a running system:

Upgrade the client

Make sure you have the version of the Juju CLI that you want running across the system (controller and agents in any deployed models). If you installed the Juju snap, it will automatically be updated daily from the channel you selected, but you might want to sudo snap switch juju --channel=2.9/candidate for example, to get a particular version. To get the latest binary from your channel:

snap refresh juju 

Upgrading the Juju client through other channels

Check version

Make sure that you’re using the Juju version you want.

juju version

What to do if Juju reports an old version

Backing up

The controller state can be saved to allow for recovery in case the upgrade process encounters a serious error.

juju create-backup

Upgrade a Juju server

You can see which servers your client knows about, and their versions, with this command:

juju controllers
Controller  ...  Version
azure*      ...  2.8.3  
jaas        ...  2.7.6  

You can instruct a server to upgrade itself to the latest version:

juju upgrade-controller <controller>

How to upgrade the controller

Upgrade deployed agents

Each running model includes a set of Juju agents which manage the communication between your charms and the Juju server. Your model agents remain at the same version until you ask to upgrade them.

juju upgrade-model <model>

How to upgrade your model(s)

Further instructions

For detailed information about the upgrade process please see:

Feedback Appreciated!

Let us know how you’re using Juju! Please ask questions on discourse.charmhub.io, tweet us @juju_devops with the hashtag #juju_devops, and chat with us at #juju on Freenode.

1 Like

This doesn’t work for me for two reasons:

  1. Unavailable, even though I have v.2.8.9
  2. Syntax error
juju version
2.8.9-focal-amd64

juju show-status-log model # what you've shown above
ERROR "model" is not a valid name for a unit

juju show-status-log --type model
ERROR model status history not supported on this version of Juju

Ah sorry, you found a typo in the notes, fixed. It should be:

juju show-status-log --type model

The output of juju help show-status-log is correct.

The other error

ERROR model status history not supported on this version of Juju

means you are using an old controller. It’s not just the Juju client that has to be 2.8.9; the controller does too.

$ sudo snap refresh juju --channel 2.8
$ juju bootstrap lxd test
...
Bootstrap complete, controller "test" is now available
Controller machines are in the "controller" model
Initial model "default" added

$ juju show-status-log --type model
Time                        Type   Status     Message
27 Feb 2021 07:05:22+10:00  model  available
1 Like