Juju 2.4.5 now released!


The Juju team is proud to release Juju 2.4.5!

This is a bugfix release for the 2.4 series with one new feature. The export-bundle feature is cleared from the feature flag in previous releases. Many of the bugs are around helping Juju deal better at scale with thousands of units running in models on a single controller. On restart Juju is now smarter about retrying randomization and backing off retries along with other scale based improvements.

juju export-bundle

Juju now has a CLI function to generate a bundle from a given model. In any model use the following command to output a reusable description of the model to deploy a second time, to backup and check for differences, or to submit to the Charmstore.

juju export-bundle [options]

Exports the current model configuration as a reusable bundle.

-B, --no-browser-login  (= false)
    Do not use web browser for authentication
--filename (= "")
    Bundle file
-m, --model (= "")
    Model to operate in. Accepts [<controller name>:]<model name>

Exports the current model configuration as a reusable bundle.

If --filename is not used, the configuration is printed to stdout.
 --filename specifies an output file.


    juju export-bundle
    juju export-bundle --filename mymodel.yaml

controller API port config option

This new config option will allow controller connections to happen on a separate port to other agent connections, and the standard API port won’t accept connections until the controllers are connected. This is often needed when the number of units a controller managed reaches into the thousands. When the controller agent restarts it helps make sure the HA controllers are all up and in sync before dealing with the flood of connection requests from the many units out there.

juju bootstrap --config controller-api-port=17071 mymaas

This config attribute can currently be changed to allow existing controllers to support this new functionality. To update an existing controller you use the controller-config command.

juju controller-config controller-api-port=17071

To disable this, set the port to zero.

juju controller-config controller-api-port=0

At some time in the future this config value will be required and immutable like the api-port value.

Scale Improvements

There have been a number of improvements to deal with load from large numbers of agents. The workers in the agents now have an exponential backoff on failure. Additionally the agents should now more evenly spread over the controllers.

This release includes more important fixes

  • LP #1793245 - addresses agents randomizing their connections and exponential backoff
  • LP #1795499 - cross model relation breaks after removing relation
  • LP #1796106 - can’t bring up containers on a manually provisioned machine

Additional bugs fixed can be found in the milestone page.

How do I get it?

The best way to get your hands on this release of Juju is to install it as a
snap package

sudo snap install juju --classic

Other packages are available for a variety of platforms. Please see the online documentation at https://jujucharms.com/docs/stable/reference-install. Those subscribed to a snap channel should be automatically upgraded. If you’re using the ppa or homebrew, you should see an upgrade available.

Feedback Appreciated!

We encourage everyone to let us know how you’re using Juju. Join us on Discourse at https://discourse.jujucharms.com/, send us a message on Twitter using the hashtag #jujucharms, and join us at #juju on freenode.

The Juju Show #42 - 18:00UTC - Nov 14th