Juju Progress Report - 2020-W12


While the team has faced disruption as the COVID-19 outbreak, the team has continued to operate. We work remotely from home and are better placed than most to continue operating while countries impose movement restrictions.

Once again, thanks to external contributors. This week included some fixes to performance problems with juju status on very large models that were raised by @soumplis the recent Charm Summit.

:package: New Releases

  • Juju 2.7.5 is ready and sent to Canonical’s Quality Assurance team for independent testing

:microscope: Feature Development


Other features in progress:

  • Work is continuing on a Juju admission controller endpoint. This will enable label resources created outside Juju
  • A new update-k8s command is almost ready. This will allow microk8s and other k8s clouds to be updated after initial deployment. A major driver is the microk8s use case where the network to which the host machine is connected changes, requiring and update to the endpoints.

Backup and restore

Work continues to streamline the process of backing up and restoring a Juju controller and its models.

  • enhanced backup file metadata and backup file versioning has been completed
  • restore to an existing controller is working
  • next up will be using restore to downgrade a controller to a previous version


Updates to support new default profile format for network devices, released with 3.22.


Ongoing work to provide better integration tests against OpenStack by leveraging MicroStack.

MicroStack is a distribution of OpenStack for workstations and edge/IoT:

Multi-node OpenStack for workstations and edge / IoT

Install and run OpenStack on Linux in minutes. Made for developers and great for edge, IoT, and appliances.

Out team’s work has included using MicroStack as a vehicle for creating/deleting ports when destroying a controller. We’ve used this to prevent the creation of “orphaned” ports during cleaning up (juju destroy-controller).

Relation hook changes (2.8)

  • We have introduced a new hook type called xyz-relation-created (where xyz is the relation name). The new hook fires for each established relation and allows charms to perform additional initialization work (e.g. the leader can set something in the app databag) before joining the relation. Peer relations are considered to be pre-established and therefore the created hooks for them are fired before any leadership-related hook.
  • The xyz-relation-departed hook now exposes the name of the departing unit via a new envvar called JUJU_DEPARTING_UNIT. Charms can use this information to figure out if it’s them or the remote unit that goes away and apply any required action.

Both of these features are currently in review and are expected to land on edge sometime next week.

:construction: Internal/Behind-the-scenes Refactoring

:bug: Bugfixes

19 bugs have been marked “Fix Committed” against the upcoming 2.7.5 release.

29 pull requests were accepted into the main development branch during the period.

:link: Links

Juju 2.7.5 Release Notes

Previous progress report