N36 Upgrading

Juju exposes different upgrading scenarios for the various software components. There is no inherent reason to upgrade components at the same time or to upgrade components in a specific order. What often dictates an upgrade is a desired feature in a new version of one component. This may, either before or after, necessitate the upgrade of another component.

Clients

A Juju client can be generally described as the software for managing Juju. The Juju client version is independent of the controller version, so upgrading the Juju CLI locally will not affect the controller version. Each Juju client has been built so that each client version can interact with the same major version of the controller version. For example, 2.8.1 client can talk to a 2.4.6 controller and vice versa. There are some notable exceptions to this rule; calling juju status and juju upgrade-model will work to ensure migration to the next major version.

More information about upgrading clients can be found at upgrading the client

Models

A Juju Model defines a space for application units to be deployed. Models encapsulate the configuration, user access and layout of application topology (units, machines, containers) easily under a controller. A controller is also a Juju Model, in turn can have indefinite number of models to manage.

Model versions are not restricted to be locked at the same version as every other version, including the controller model version. Allowing for upgrading strategies between models, without affecting other models under the same controller. Upgrading a model ahead of the controller model is not permitted and it is expected that controller models are upgraded first.

Information about upgrading models, including controller models can be found at upgrading models

Applications

A Juju Application is the manifestation of the deployed charm software. New updates of a charm can then be ‘refreshed’ to update the application. Juju provides the same client command for refreshing local, charm-store and Charmhub charms.

See upgrading applications for more information.

Machine’s series

Juju provides a mechanism for upgrading a machine’s series once a machine has been added to a Juju Model. Juju allows the machine to be updated to a newer operating system, whilst the Application is still being served.

Upgrading a machine series

To whomever reviews this, please provide specific examples of how one component upgrade influence another component upgrade