Juju 2.9 RC 3 Release Notes

The Juju team is pleased to announce Juju 2.9rc3!


CharmHub is a brand new all shiny charm store. Previously behind a feature flag, it has become a full featured store that is replacing the existing CharmStore. Don’t worry though, we’ll still keep backwards compatibility with the old charm store, so everything should work, with one exception. Previously if you didn’t specify a scheme (cs:) for your charm/bundle deployments then it would always hit the existing charm store. That is no longer the case, if you want to target the new CharmHub and targeting the existing charm store will require the cs: prefix.

The CharmHub API is still in progress, so some things like private charms aren’t currently supported, but are being actively worked on!

Juju is fully integrated with CharmHub store and has gained some new commands along with existing integration for deploying and refreshing your existing deployments.

juju find

Juju now has the ability to search the CharmHub store directly from the command line. The fuzzy search will find any potential matches to get the fully qualified charm/bundle name so it makes it a breeze to deploy a charm without leaving the command line.

juju info

Juju info displays important and vital information about a given charm/bundle, including the various channels, architectures and series available for deployment. In conjunction with juju find, the Juju command line is now closer integrated with the store.

juju download

With the move to the new CharmHub backend, Juju can now download charms directly from the CharmHub store to your local file system. This should make it easier to customise a charm before deploying or fulfil any potential air-gapped strategies.

juju download wordpress

For more information about the CharmHub feature, refer to this discourse post.

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

  • LP # 1902815 - purge reboot monitor state when unit removed from machine
  • LP # 1904020 - [azure provider] Juju purges resource group VMs and other resources that do not belong to it
  • LP # 1902548 - TestClientWatchAllAdminPermission Intermittent Failures
  • LP # 1902814 - embedded CLI tries to discharge macaroons for external users
  • LP # 1902945 - 2.9rc2: kubeflow deploy fails on microk8s
  • LP # 1903202 - juju machine agent runtime panic
  • LP # 1903557 - 2.9rc2: juju enable-ha times out with new nodes failing to connect to juju api
  • LP # 1905827 - Incorrect memory constraints on LXD cluster
  • LP # 1900002 - Juju fails to reset jujud password on windows if logged into desktop
  • LP # 1903726 - bad log message when caas unit shuts down

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

Known Issues:


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:

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.