This is primarily a bugfix release for the 2.4 series but comes with one new feature and several improvements.
export-bundle feature is cleared from the feature flag. Many of the bugs involve 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 now has an
export-bundle command that generates a bundle from a given model. In any model use this 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 Charm Store.
Controller API port configuration key
The new configuration key ‘controller-api-port’ allows controller connections to occur on a separate port than that used by other agent connections, and the standard port won’t accept connections until the controllers are connected. This can be of use when the number of units is very large (thousands). When the controller agent restarts it helps make sure the HA controllers are all up and synchronised before handling connection requests from the units.
juju bootstrap --config controller-api-port=17071 cloud-name controller-name
This feature can be implemented in real time (i.e. post-bootstrap):
juju controller-config controller-api-port=17071
This feature is disabled by setting the port to zero:
juju controller-config controller-api-port=0
In a future release this key will become required and immutable like the normal ‘api-port’ key.
Several improvements have been made to deal with the load caused by a large number of agents. Each agent’s workers now have an exponential backoff on failure. Additionally, agent requests are now more evenly distributed over controllers.
This release also includes the following 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
For the full list of fixes and additions, see the 2.4.5 milestone.
The easiest way to install Juju is by using the
sudo snap install juju --classic
Those already using the ‘stable’ snap channel (the default as per the above command) should be upgraded automatically. Other packages are available for a variety of platforms (see the install documentation).
Let us know how you’re using Juju or of any questions you may have. You can join us on Discourse, send us a message on Twitter (hashtag
#jujucharms), or talk to us in the
#juju IRC channel on freenode.
To learn more about Juju visit our home page at https://jujucharms.com.