The Juju team is proud to release Juju 2.8.4!
Juju 2.8.4 is a bugfix release for the 2.8 series. This release includes some improvements for the vSphere provider as well as a number of other bug fixes.
vSphere improvements
LP #1894236: The vSphere provider now supports deploying to clusters and hosts inside folders, including any nested combination of sub-folders. For example, to bootstrap to a cluster inside a folder, specify the path as an “availability zone” constraint, for example:
juju bootstrap vsphere \
--constraints zones=SomeFolder/ClusterName \
--config datastore=MyDatastore
This also fixes an inconsistency with availability zone names when the vSphere datacenter is in a folder. Previously, the availability zone name for a cluster or host would be MyCluster/Resources
if the datacenter was in a folder, but just MyCluster
if not. Juju 2.8.4 is more consistent: the Resources
path component is never used, whether or not the datacenter is in a folder.
LP #1895756: vSphere datastore names (and other “hardware characteristics”) now support spaces and special characters. Previously a datastore name like "My NAS"
would fail during bootstrap – now these names are handled correctly. See also LP #1894100.
This release also includes fixes to the following issues:
- LP #1888409 - reduce number of AWS API calls (and add retrying) to avoid “request limit exceeded” errors during parallel bootstraps
- LP #1892285 - Juju 2.8 adds juju-app label to workload-created pods
- LP #1892492 - microk8s juju upgrade-controller doesn’t match on the minor version
- LP #1893993 - juju unit logging defaults to WARNING and no python tracebacks at any log level
- LP #1895886 - priorityClassName support removed
- LP #1896076 - Pod_spec : cannot apply namespaced role and cluster role to a serviceaccount
Additional bugs fixed can be found on the 2.8.4 milestone page.
Known Issues:
- LP #1895963 - cannot upgrade a 2.8.3 controller using a 2.8.4 client. The work around is to use the 2.8.3 (or less) client.
How do I install Juju?
The best way to get your hands on this release of Juju is to install it as a snap:
sudo snap install juju --classic
Other packages are available for a variety of platforms, including Windows and macOS. Refer to the full Juju installation documentation.
Those subscribed to a snap channel should be automatically upgraded. If you’re using the PPA or Homebrew for macOS, you should see an upgrade available.
How do I upgrade?
Upgrading Juju is a multi-step process:
- upgrade the client (the Juju binary that you interact with on the command-line)
- (recommended) verify that the client upgrade was successful
- (recommended) back up the controller
- upgrade the controller
- upgrade models
Upgrade the client
If you’ve installed Juju via the snap, your Juju will automatically be installed overnight. To force the update, run:
snap refresh juju
Upgrading the Juju client through other channels
If you’re using the PPA:
sudo apt update
sudo apt upgrade
On Homebrew for macOS:
brew update
brew upgrade
Check version
To prevent any confusion in later steps, ensure that you’re using the new Juju version.
juju version
What to do if Juju reports an old version
Check your $PATH
environment variable and that you’ve installed the new version correctly.
On Linux and macOS, use the env
command to inspect the environment. On MS Windows, use SET
.
Backing up
The controller state can be saved to allow for recovery in case the upgrade process encounters a serious error.
juju create-backup
Upgrading controllers
Juju includes a command that instructs the controller to upgrade itself to the latest version.
juju upgrade-controller
How to upgrade the controller
First, check that you’re interacting with the intended controller. The juju models
command reports the current controller on the first line.
juju models
To verify what will occur, use the --dry-run
option.
juju upgrade-controller --dry-run
When you’re happy, omit the flag:
juju upgrade-controller
Upgrade models
Your models remain at the same version until you have explicitly told Juju to upgrade them.
juju upgrade-model
How to upgrade your model(s)
Check that you’re operating in the correct model. juju model
highlights the current model with an asterisk:
juju models
To verify what will occur, use the --dry-run
option.
juju upgrade-juju --dry-run
When you’re happy, omit the flag:
juju upgrade-juju
Further instructions
Juju’s documentation pages provide detailed information about the upgrade process:
- https://discourse.jujucharms.com/t/controller-backups/1106
- https://discourse.jujucharms.com/t/upgrading-models/1154
- https://discourse.jujucharms.com/t/notes-on-upgrading-juju-software/1153
- https://discourse.jujucharms.com/t/troubleshooting-model-upgrades/1186
Feedback Appreciated!
We encourage everyone to let us know how you’re using Juju. Please ask questions on on Discourse, send us a message to our Twitter account @juju_devops, tweet using the hashtag #juju_devops, and chat with us at #juju on Freenode.