Juju Progress Report - 2020-W13


The last week has been an important one for the Juju community. We’ve restarted live “office hours” so that you have a chance to ask questions of the developers. Please subscribe to our YouTube channel and/or the Juju Public Events iCal feed to be notified of future events.

A memory leak and a logic error were detected and fixed in the Juju 2.7 codebase. It was decided to include these fixes in the Juju 2.7.5 release, which has incurred a delay.

:package: Releases

:microscope: Feature Development

Relation hook changes (2.8)

We have introduced a new hook type called <relation>-relation-created (where <relation> 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 <relation>-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.

Enhanced Restore

The new standalone juju-restore utility can be used to restore a backup into an existing controller. We could do with help testing it if you have a suitable controller! The next task is to support restoring to a previous Juju version.


Storage for stateless deployments / DaemonSets

Work is in progress to allow Juju storage to be used with deployments and DaemonSets as well as StatefulSets.

Experimental support for operator workloads

Using the development feature flag “k8s-operators”, it’s possible to deploy a charm which does not create a workload pod. The charm itself is the workload.

As a reminder, to use a feature flag, set the JUJU_DEV_FEATURE_FLAGS environment variable:

$ export JUJU_DEV_FEATURE_FLAGS=k8s-operators
$ juju deploy <charm>

Actions are not currently supported for these workloads.


Multi-NIC improvements are underway. This change ensures that Netplan is rendered correctly on multi-NIC OpenStack instances in order that NICs reflect the ports that were added to them.

:bug: Bugfixes and Internal

Testing has been a loud theme of the week’s work. We’ve taken steps to increase the robustness of error handling routines and will improve the speed of our hook tool unit tests. We’re increasing the breadth of our integration tests for OpenStack, adding a test for “add space”.

The unit agent code has been refactored to allow Juju to reduce the number persistent volumes used in k8s clouds.

A memory leak and a logic error were detected and fixed in the Juju 2.7 codebase. It was decided to include these fixes in the 2.7.5 release, which has incurred a delay.

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

35 bugs are marked “Fix Commited” against 2.8-beta, which will become 2.8.0.

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


Latest Office Hours Replay

Some direct links to questions:

  • What are the top commands new users should learn? 0:10
  • What is the bootstrap process? What is a controller? 0:40
  • What is “Juju deploy”? 2:28
  • What is a relation? 4:12
  • How do you upgrade Juju? 5:15
  • Does Juju manage networks and ports? 12:02
  • Can you explain spaces and how they apply to Juju and MAAS? 13:32
  • Does network management work with cross-model relations? What is cross-model relation? 19:03
  • Why is “juju status” slow? And how has the team fixed it? 22:01
  • When is 2.7.5 being released? And what is the Juju release process? 25:20
  • How is Juju developed? How is the team comprised? 28:20
  • Why is there nothing written about Juju around the web, such as Medium/dev.to/Hacker Noon/etc? 30:55
  • What is a charm upgrade? And what is a charm? 35:26
  • How do I start charming? 39:21

Juju 2.7.5 Release Notes

Previous Report