WIP: Juju 2.8.1 Release Notes

The Juju team is proud to release Juju 2.8.1!

The Juju team is proud to release Juju 2.8.1! This is a bugfix release for the 2.8 series.

This release includes fixes to the following issues:

  • LP #1883792 - Juju should support acpi feature for kvm machines
  • LP #1882571 - juju schema doesn’t contain docs
  • LP #1883934 - pod spec missing hostPID option
  • LP #1883703 - Snap build not stripping the binary?
  • LP #1883575 - Unable to deploy --to kvm:X on focal hosts
  • LP #1882573 - diff-bundle results in runtime error
  • LP #1882186 - withoutControllerSuite.TestProvisioningInfoWithEndpointBindings
  • LP #1881101 - Intermittent Race in TestManageModelRunsCharmRevisionUpdater
  • LP #1880634 - juju schema doesn’t contain facade type
  • LP #1870195 - juju upgrade-series prepare $MACHINE bionic will run and hang if already on Bionic
  • LP #1857075 - Remove the derived application status
  • LP #1855263 - Duplicate link layer device entries when running on AWS
  • LP #1479278 - service status derivation happens in the wrong place
  • LP #1885324 - Admin facade missing from schema
  • LP #1885117 - Worker tests for instancemutater are racy
  • LP #1884709 - model cache initialized gate not recreated when database reconnects
  • LP #1884674 - kubernetes provider: juju removed existing ingress after controller restart
  • LP #1884260 - add-k8s tells me to snap install gcloud but it isn’t there
  • LP #1882181 - CAASProvisionerSuite.TestNewApplicationWaitsOperatorTerminated
  • [LP #1882149(https://bugs.launchpad.net/bugs/1882149) - “juju remove-unit ${k8s_app}” default and error disagree
  • LP #1881845 - unsafe pointer conversion in worker/multiwatcher test
  • LP #1881839 - dispatch-only charms cannot be deployed, hooks/ directory required
  • LP #1881819 - Intermittent failure in ProvisionerSuite.TestProvisioningMachinesFailsWithUnknownSpaces
  • LP #1881769 - Snap installation of microk8s fails when juju snap is also installed
  • LP #188143 - bootstrap not respecting subnet assignment
  • LP #1881227 - pod-spec-set and ints vs. floats
  • LP #1881206 - 2.8-rc2 juju dashboard fails on k8s controller until upgrade-dashboard is called
  • LP #1880973 - juju wont tell you what channel a charm is on and ERRORs out
  • LP #1880714 - AWS incorrectly handles bindings for placements
  • LP #1880713 - AWS doesn’t filter out FAN networks.
  • LP #1878639 - [2.8] Juju fails to connect to instance after juju-clean-shutdown.service timeout in cloud-init
  • LP #1878202 - OpenStack and AWS - Bindings do not affect machine placement
  • LP #1878130 - [DATA RACE] worker/uniter/runner/debug
  • LP #1876849 - [bionic-stein] openvswitch kernel module was not loaded prior to a container startup which lead to an error
  • LP #1875481 - Juju 2.8 error about unit not being the leader
  • LP #1872670 - AWS m6g.* instances fail with latest juju
  • LP #1871711 - Error in config.yaml reports as bundle error
  • LP #1871480 - relation-list cannot list a remote app for a relation id
  • LP #1864564 - failed to delete security group rule that does not exist
  • LP #1860717 - autoload credentials has misleading error message when lxd not found
  • LP #1856071 - Each controller in an HA cluster uses a different public-key in it’s macaroon bakery
  • LP #1843457 - [2.6.8][ux] juju does not show bundle errors
  • LP #1831580 - wrong etcd_connection_string on kubernetes-master charm
  • LP #1824465 - New units fail provisioning; juju 2.5.x switches to the Standard SKU (Azure provider)
  • LP #1882127 - nil pointer dereference in ‘relation-set’

This release includes more important fixes

Additional bugs fixed can be found in the milestone page.

Known issues

If you are running a k8s deployment on 2.8.0, there are extra steps needed to upgrade that deployment to this release.

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:

If you are upgrading Juju from 2.8.0 and have either a Kubernetes Juju controller or a Kubernetes Models the following steps will need to be performed

  • 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:

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.