What’s changing
When using juju
you can select the operating system you wish to deploy a workload to by specifying a series (e.g. --series focal
) or a base --base ubuntu@20.04
).
In Juju 4.0, we are removing the concept of a series. So users will have to use bases.
WHY THE CHANGE?
A series is an Operating System’s code name. For example, ‘focal’ and ‘jammy’ are both series. However, series do not translate well outside of the Ubuntu world and cannot be predicted ahead of time.
Bases fix this by separating an operating system into the distro name and channel, separated by an ‘@’. For example, the series focal
is equivalent to the base ubuntu@20.04
. The series jammy
is equivalent to the base ubuntu@22.04
.
Specifically:
-
The
juju
CLI andjuju-metadata
plugin will no longer recognise the flags--series
or--bootstrap-series
. Users should use--base
or--bootstrap-base
instead. -
Juju will ignore
series
keys in bundles. These keys should be replaced bybase
for applications + machines ordefault-base
for top-level bundle default operating systems. -
Juju will ignore the
series
key in charm metadata. NOTE: This is already the case for all charms built withcharmcraft
. -
Juju pre-series-upgrade hook will no longer expose
JUJU_TARGET_BASE
. See more. -
More TBA
Who is this likely to affect?
-
Juju users who drive
juju
via a script: Ensure your scripts do not use--series
or--bootstrap-series
. -
Juju users who deploy local charms: Ensure your local charms have been built with
charmcraft
before deployment. -
Bundle authors: Ensure you bundles + overlays include
default-base
in instead of (or as well as)series
at the top level, andbase
instead of (or as well as)series
in applications and machines -
Charm authors who use
JUJU_TARGET_SERIES
inpre-series-upgrade
hook. See more. -
More TBA
Is anything changing in Juju 3.x?
Series is being deprecated in 3.x. Juju will keep compatibility so your current scripts and/or charms should not break, however you may see deprecation warnings when using --series
for instance
The only exception to this is Juju will not recognise Ubuntu series after noble
.
This means that if Ubuntu 24.10 has codename observant
, --series observant
will fail. Users will have to use --base ubuntu@24.10
to deploy to this OS.