Newer versions of Juju are compatible with older versions, but only up to a point. For each version of Juju, there is a minimum supported controller / other agent / client version that it can communicate with. These values are stored as constants in the source code, in the file
upgrades/upgradevalidation/version.go
. The table below summarises the resulting compatibility.
Below, the client versions are inferred based on overlap between the client’s facade versions and the controller agent’s apiserver
’s facade versions .
Also note that an older client version might not support all the operations. For best results always upgrade to the latest stable version.
controller | all agents running in a non-controller model | juju client |
terraform juju client |
python-libjuju client |
---|---|---|---|---|
3.3 | 2.9.43+ | 2.9.47+ | 0.11.0+ | 3.1.0.1+ |
3.2.3 | 2.9.43+ | 2.9.47+ | 0.09.0+ | 3.1.0.1+ |
3.2.2 | 2.9.43+ | 2.9.47+ | 0.09.0+ | 3.1.0.1+ |
3.2.0 | 2.9.43+ | 2.9.36+ | 0.09.0+ | 3.1.0.1+ |
3.1.5 | 2.9.36+ | 2.9.42+ | 0.09.0+ | 3.1.0.1+ |
3.1.2 | 2.9.36+ | 2.9.36+ | 0.09.0+ | 3.1.0.1+ |
3.1.0 | 2.9.36+ | 2.9.36+ | 0.09.0+ | 3.1.0.1+ |