Transition from series to base in Juju 4.0

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 and juju-metadata plugin will no longer recognise the flags --series or --bootstrap-series. Users should use --base or --bootstrap-base instead.

  • Bundles including the series key will fail to deploy. These keys should be replaced by base for applications + machines or default-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 with charmcraft.

  • 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 do not use the series key.
    :warning: Juju 2.9 only supports series, so you will have to pick whether you want your bundles to support 2.9 or rather 4.0.

  • Charm authors who use JUJU_TARGET_SERIES in pre-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.

2 Likes