Juju 2.9 RC4 Release Notes

The Juju team is pleased to announce Juju 2.9rc4!

This is primarily a bug fix release.

One improvement is that it’s now possible to use Ctrl-C to cancel an in-flight bootstrap.

There’s also been preliminary work to allow Juju to bootstrap to a Minikube k8s cluster without the need for first running the Minikube tunnel. Kind is also supported without extra configuration being required. Note though that this feature is still under development and is being refined prior to the final 2.9.0 release.

Juju 2.9rc4 fixes the following issues in Juju 2.9rc3:

  • LP # 1910595 - juju migrate fails: agents failed phase “validating”
  • LP # 1907685 - upgrade step for 2.8.1 ReplaceNeverSetWithUnset fails if statuses collection is large

Additional bugs fixed can be found on the 2.9 milestone page.

Charmhub

Continuing work to provide the new charm store for Juju has being coming thick and fast. For more information about the CharmHub feature, refer to this discourse post.

Lots of new features and bug fixes have been added to this release:

Charmhub charm take precedence over CharmStore charms

As this is a new charm store for Juju to use, there are some fundamental changes to the naming of charms. For example using wordpress previously would get you a machine CharmStore charm, but now will get you a kubernetes Charmhub charm. To get the previous behaviour you need to prefix the charm name wordpress with cs:wordpress.

Architecture and series constraint selection for charms

An example of provisioning a machine with arm64 and selecting the correct charm for that machine.

juju deploy ubuntu --constraints="arch=arm64"

Bundle support

Bundle support has also been added to the RC4 release, so the same architecture selection can be also done with in a bundle:

series: focal
applications:
    charm: ubuntu
    constraints: "arch=arm64"

Known Issues:

Using set-series followed by add-unit with the new Charmhub charms, may not find the new charm for the new series. The interim workaround is to deploy the charm with the new series and then when performing juju add-unit -n 1 it will correctly select the new charm.

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.9/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 seems to be just the output, not the command. Missing juju controllers?

Yeah, thanks, a newline was missing in the post. Fixed.