The major new features in this release are summarised below. See the Release Notes for full details.
Juju has been able to install a Kubernetes cluster for a while now. However, only until 2.5 is Juju able to take a pre-existing cluster and add it to its list of backing clouds. This renders the cluster available for charm deployment. Kubernetes-specific charms are naturally required.
A remote LXD cloud is now possible. Like other custom clouds, it is added via
add-cloud command. The Juju client can then request a controller be
created on the remote LXD host. This naturally bolsters the already supported
LXD clustering feature; both features are expected to be used in tandem.
Placement directives are supported for LXD clustering. You can specify upon which LXD host (cluster node) a Juju machine will be created. These nodes effectively become availability zones for a LXD clustered cloud.
OCI is the new cloud framework from Oracle and Juju now supports it out of the box. Juju's cloud name for this cloud is 'oci'. The legacy Oracle cloud of 'oracle' has been renamed 'oracle-classic' and should be considered deprecated.
Juju workload machines can now have their series updated natively. In previous
versions the recommended approach was to add a new unit and remove the old one.
v.2.5 a new command makes its appearance:
upgrade-series. By design,
the bulk of the underlying operating system is upgraded manually by the user by
way of standard tooling (e.g.
do-release-upgrade). Note that the upgrade of
machines hosting controllers is not supported and the documented method of
creating a new controller and migrating models is still the recommended
Juju now supports charms that include a LXD profile. A profile is applied to a
LXD container that the charm is deployed into. Some hardcoded security checks
are applied automatically when such a charm is deployed and profile information
is exposed at the machine level with the
A model's configuration can now be saved as a bundle at the command line using
export-bundle command. Previously, the Juju GUI was needed for this.
See Saving a bundle.
A model and a bundle can now be compared using the new
This will help in complex enterprise setups where changes have been made to a
model yet a new bundle deployment of the initial model is desired.
The adding of an OpenStack cloud, via
add-cloud, now supports the inclusion
of a CA certificate in cases where it is necessary. This command also now
recognises certain environment variables used by OpenStack - typically via its
novarc file. The corresponding values will be used as default values when
add-cloud is used in interactive mode.
Occasionally there is the need to change (or set) what remote credential is
assigned to a model. This is now possible via the new
A custom Charm Store can be configured by specifying a URL during the creation
of a controller (