See also: How to upgrade your deployment
This document is about our releases of Juju, that is, the juju
CLI client and the Juju agents.
Starting with Juju 3.4.0, we will release a new minor version (the ‘x’ of 3.x) every 3 months, on the last Thursday of January, April, July, and October of every year. Thus, Juju 3.4.0 will be released on the last Thursday of January 2024. Juju 3.5.0 will follow on the last Thursday of April. And so on.
When we release a new major version, the latest minor version of the previous release will become an LTS (Long Term Support) release.
Starting with Juju 3.3, our minor releases will be supported with bug fixes for a period of 6 months from their release date, and a further 3 months of security fixes. LTS releases will receive security fixes for 5 years.
There are two specific exceptions to the general rule:
- In recognition of our earlier commitment to a longer support period for Juju 3.1, we will extend support of 3.1 for security-only patches (for high/critical security issues) until the final release of 3 which will become the LTS.
- We will release Juju 4.0 Beta 2024. This will be functionally usable, but without all of the polish that we want to have for a final 4.0 release.
The rest of this document gives detailed information about each release.
Juju 3.5
30 Jan 2025: end of security fix support
30 Nov 2024: end of bug fix support
Juju 3.5.4 - 11 September 2024
Fixes:
- Fix CVE-2024-7558
- Fix CVE-2024-8037
- Fix CVE-2024-8038
- Fix using ed25519 ssh keys when juju sshing LP2012208
- Plus 1 other bug fixes and 17 fixes from 3.4.6
See the full list in the milestone page.
Juju 3.5.3 - 26 July 2024
Fixes:
- Fix CVE-2024-6984
See the full list in the milestone page.
Juju 3.5.2 - 10 July 2024
Fixes:
- Runtime error: invalid memory address or nil pointer dereference LP2064174
- Pebble (juju 3.5.1) cannot write files to workload containers LP2067636
- Machines with base ubuntu@24.04 (Noble) flagged as deprecated, blocking controller upgrade LP2068671
- Regular expression error when adding a secret LP2058012
- Juju should report open-port failures more visibly (than just controller logs) LP2009102
- Lower priority juju status overrides app status when a unit is restarting LP2038833
Juju 3.5.1 - 30 May 2024
Fixes:
- Fix non-rootless sidecar charms by optionally setting SecurityContext. #17415 LP2066517
- Match by MAC in Netplan for LXD VMs #17327 LP2064515
- Fix
SimpleConnector
to setUserTag
when no client credentials provided #17309
Juju 3.5.0 - 7 May 2024
Features:
- Optional rootless workloads in Kubernetes charms #17070
- Move from pebble 1.7 to pebble 1.10 for Kubernetes charms
Fixes:
- juju.rpc panic running request LP2060561
Juju 3.4
30 Nov 2024: end of security fix support
30 Aug 2024: end of bug fix support
Juju 3.4 series is in security maintenance until 30 Nov 2024
Juju 3.4.6 - 11 September 2024
Fixes:
- Fix CVE-2024-7558
- Fix CVE-2024-8037
- Fix CVE-2024-8038
- Fix broken upgrade on k8s LP2073301
- Plus 16 other bug fixes.
NOTE: This is the last bug fix release of 3.4.
See the full list in the milestone page.
Juju 3.4.5 - 26 July 2024
Fixes:
- Fix CVE-2024-6984
See the full list in the milestone page.
Juju 3.4.4 - 1 July 2024
Features:
- Improve error message for "juju register LP2060265
Fixes:
- Machines with base ubuntu@24.04 (Noble) flagged as deprecated, blocking controller upgrade LP2068671
- apt-get install distro-info noninteractive LP2011637
- Hide stale data on relation broken LP2024583
- juju not respecting “spaces” constraints LP2031891
- Juju add-credential google references outdated documentation LP2049440
- manual provider: adding space does not update machines LP2067617
- Juju controller panic when using token login with migrated model High LP2068613
- sidecar unit bouncing uniter worker causes leadership-tracker worker to stop LP2068680
- unit agent lost after model migration LP2068682
- Dqlite HA: too many colons in address LP2069168
- juju wait-for` panic: runtime error: invalid memory address or nil pointer dereference LP2040554
- Juju cannot add machines from ‘daily’ image stream on Azure LP2067717
- running-in-container is no longer on $PATH LP2056200
See the full list in the milestone page.
Juju 3.4.3 - 5 June 2024
Fixes:
- Missing dependency for Juju agent installation on Ubuntu minimal LP2031590
See the full list in the milestone page.
Juju 3.4.2 - 6 April 2024
Fixes:
- Fix pebble CVE-2024-3250
- Fix Consume secrets via CMR fails LP2060222
See the full list in the milestone page.
Juju 3.4.0 - 15 Feb 2024
Features:
- Pebble notices (JU048: Add support for Pebble Notices by benhoyt · Pull Request #16428 · juju/juju · GitHub)
- Internal enhancements, performance improvements and bug fixes
Fixes:
- Homogenise VM naming in aws & azure LP2046546
- Juju can’t bootstrap controller on top of k8s/mk8s LP2051865
- chown: invalid user: ‘syslog:adm’ on Oracle LP1895407
Juju 3.3
Juju 3.3 series is EOL
Juju 3.3.7 - 10 September 2024
Fixes:
- Fix CVE-2024-7558
- Fix CVE-2024-8037
- Fix CVE-2024-8038
NOTE: This is the last release of 3.3. There will be no more releases.
See the full list in the milestone page.
Juju 3.3.6 - 25 July 2024
Fixes:
- Fix CVE-2024-6984
Juju 3.3.5 - 28 May 2024
Final bug fix release of Juju 3.3 series.
Fixes:
- Fix deploy regressions #17061 #17079
- Bump Pebble version to v1.4.2 (require admin access for file pull API) #17137
- Avoid panics from using a nil pointer #17188 LP2060561
- Async charm download fix backported #17229 LP2060943
- Do not render empty pod affinity info #17239 LP2062934
- Ensure peer units never have their own consumer labels for the application-owned secrets #17340 LP2064772
- Improve handling of deleted secrets #17365 LP2065284
- Fix nil pointer panic when deploying to existing container #17366 LP2064174
- Don’t print a superfluous error when determining platforms of machine scoped placement entities #17382 LP2064174
Juju 3.3.4 - 10 April 2024
Fixes:
- Fix pebble CVE-2024-3250
- Deploying an application to a specific node fails with invalid model UUID error LP2056501
- manual-machines - ERROR juju-ha-space is not set and a unique usable address was not found for machines: 0 LP1990724
- juju agent on the controller does not complete after bootstrap LP2039436
- ERROR selecting releases: charm or bundle not found for channel “stable”, base “amd64/ubuntu/22.04/stable” LP2054375
- Non-leader units cannot set a label for app secrets LP2055244
- deploy from repository nil pointer error when bindings references a space that does not exist LP2055868
- Migrating Kubeflow model from Juju-2.9.46 to Juju-3.4 fails with panic LP2057695
- Cross-model relation between 2.9 and 3.3 fails LP2058763
- migration between 3.1 and 3.4 fails LP2058860
- Offer of non-globally-scoped endpoint should not be allowed LP2032716
juju config app myconfig=<default value>
“rejects” changes if config was not changed before, but still affects refresh behaviour LP2043613- /sbin/remove-juju-services doesn’t cleanup lease table LP2046186
- juju credentials stuck as invalid for vsphere cloud LP2049917
- Manual provider subnet discovery only happens for new NICs LP2052598
- Cannot deploy ceph-proxy charm to LXD container LP2052667
- Missing a “dot-minikube” personal-files interface to bootstrap a minikube cloud LP2051154
See the full list in the milestone page.
Juju 3.3.3 - 6 Mar 2024
Note: Juju version 3.3.2 was burnt since we discover a showstopper issue during QA, therefore this version will include fixes from 3.3.2.
Fixes:
- Bug in controller superuser permission check LP2053102
- [3.3.2 candidate] fail to bootstrap controller on microk8s LP2054930
- Interrupting machine with running juju-exec tasks causes task to be stuck in running state LP2012861
- Juju secret doesn’t exist in cross-cloud relation LP2046484
See the full list in the milestone page.
Juju 3.3.1 - 25 Jan 2024
Fixes:
- Deployed units using Oracle Cloud / OCI provider in wrong region (LP1864154)
- user created secrets should be migrated after we changed the model’s secret backend. (LP2015967)
- [k8s] topology-key is never set (LP2040136)
- Machine lock log in multiple places. (LP2046089)
Juju 3.3.0 - 10 Nov 2023
Features:
- User Secrets
- Ignore status when processing controller changes in peergrouper Ignore status when processing controller changes in peergrouper by manadart · Pull Request #16377 · juju/juju · GitHub
- Allow building with podman using
make OCI_BUILDER=podman ...
Allow building with podman using `make OCI_BUILDER=podman ...` by hpidcock · Pull Request #16380 · juju/juju · GitHub - Add support for ARM shapes on Oracle OCI Add support for ARM shapes on Oracle OCI by nvinuesa · Pull Request #16277 · juju/juju · GitHub
- Remove the last occurences of ComputedSeries [JUJU-4710] Remove the last occurences of ComputedSeries by jack-w-shaw · Pull Request #16296 · juju/juju · GitHub
- Bump critical packages + add mantic Bump critical packages + add mantic by hpidcock · Pull Request #16426 · juju/juju · GitHub
- Add system identity public key to authorized_keys on new model configs Add system identity public key to authorized_keys on new model configs by nvinuesa · Pull Request #16394 · juju/juju · GitHub
- Export Oracle cloud models with region set from credentials Export Oracle cloud models with region set from credentials by manadart · Pull Request #16467 · juju/juju · GitHub
- Missing oracle cloud regions [JUJU-4619] Missing oracle cloud regions and list not being updated by anvial · Pull Request #16287 · juju/juju · GitHub
Fixes:
- Enable upgrade action. Fix --build-agent juju root finding. Enable upgrade action. Fix --build-agent juju root finding. by hpidcock · Pull Request #16354 · juju/juju · GitHub
- Try and ensure secret access role bindings are created before serving the config to the agent Try and ensure secret access role bindings are created before serving the config to the agent by wallyworld · Pull Request #16391 · juju/juju · GitHub
- Fix dqlite binding to ipv6 address. Fix dqlite binding to ipv6 address. by hpidcock · Pull Request #16392 · juju/juju · GitHub
- Filter out icmpv6 when reading back ec2 security groups. Filter out icmpv6 when reading back ec2 security groups. by hpidcock · Pull Request #16383 · juju/juju · GitHub
- Prevent CAAS Image Path docker request every controller config validation Prevent CAAS Image Path docker request every controller config validation by SimonRichardson · Pull Request #16365 · juju/juju · GitHub
- Fix controller config key finding in md-gen tool. Fix controller config key finding in md-gen tool. by hpidcock · Pull Request #16411 · juju/juju · GitHub
- Fix jwt auth4jaas Fix jwt auth4jaas by ycliuhw · Pull Request #16431 · juju/juju · GitHub
See the full list in the milestone page, github full changelog
Juju 3.2
Juju 3.2 series is EOL
Juju 3.2.4 - 23 Nov 2023
Fixes:
- Juju storage mounting itself over itself (LP1830228)
- Updated controller api addresses lost when k8s unit process restarts (LP2037478)
- JWT token auth does not check for everyone@external (LP2033261)
See the full list in the milestone page, github full changelog
Juju 3.2.3 - 13 Sep 2023
Fixes:
- Juju 3.2.2 contains pebble with regression (LP2033094)
- Juju 3.2 doesn’t accept token login (LP2030943)
See the full list in the milestone page.
Juju 3.2.2 - 21 Aug 2023
Fixes several major bugs in 3.2.2 – 2 Critical / 4 High / 2 Medium
Fixes:
- juju 3.2 proxy settings not set for lxd/lxc (LP2025138)
- juju 3.2 admin can’t modify model permissions unless it is an admin of the model (LP2028939)
- Unit is stuck in unknown/lost status when scaling down (LP1977582)
- Oracle (oci) cloud shapes are hardcoded (LP1980006)
See the full list in the milestone page.
Juju 3.2.0 - 26 May 2023
Now secrets can be shared accross models. New support for Lunar Lobster. This new version contains the first piece of code targetting the replacement of Mongo by dqlite. Additional bug fixes and quality of life improvements.
Fixes:
- All watcher missing model data (LP1939341)
- Panic when deploying bundle from file (LP2017681)
add-model
for existing k8s namespace returns strange error message (LP1994454)- In AWS, description in security group rules are always empty (LP2017000)
See the full list in the milestone page.
Juju 3.1
30 Nov 2024: expected end of security fix support
30 July 2023: end of bug fix support
Juju 3.1.10 - 24 September 2024
Fixes:
- Fix CVE-2024-7558
- Fix CVE-2024-8037
- Fix CVE-2024-8038
See the full list in the milestone page.
Juju 3.1.9 - 26 July 2024
Fixes:
- Fix CVE-2024-6984
See the full list in the milestone page.
Juju 3.1.8 - 12 April 2024
Fixes:
- Fix pebble CVE-2024-3250
- Growth of file descriptors on the juju controller LP2052634
- juju agent on the controller does not complete after bootstrap LP2039436
- Juju secret doesn’t exist in cross-cloud relation LP2046484
- Wrong cloud address used in cross model secret on k8s LP2051109
juju download
doesn’t accept --revision althoughjuju deploy
does LP1959764
See the full list in the milestone page.
Juju 3.1.7 - 3 Jan 2024
Fixes 3 Critical / 15 High and more :
- panic: malformed yaml of manual-cloud causes bootstrap failure (LP2039322)
- panic: bootstrap failure on vsphere (not repeatable) (LP2040656)
- Fix panic in wait-for when not using strict equality (LP2044405)
See the full list in the milestone page.
Juju 3.1.6 - 5 Oct 2023
Fixes 1 Critical / 14 High and more :
- Juju refresh from ch → local charm fails with: unknown option “trust” (LP2034707)
- juju storage mounting itself over itself (LP1830228)
- Refreshing a local charm reset the “trust” (LP2019924)
- Juju emits secret-remove hook on tracking secret revision (LP2023364)
juju show-task ""
panics (LP2024783)
See the full list in the milestone page.
Juju 3.1.5 - 27 June 2023
Fixes several major bugs in 3.1.5 1 Critical / 6 High
Fixes:
- Migrating from 2.9 to 3.1 fails (LP2023756)
- Bootstrap on LXD panics if server is unreachable (LP2024376)
- Juju should validate the secret backend credential when we change the model-config secret-backend (LP2015965)
- Juju does not support setting owner label using secret-get (LP2017042)
- leader remove app owned secret (LP2019180)
- JUJU_SECRET_REVISION not set in secret-expired hook (LP2023120)
- Cannot apply model-defaults in isomorphic manner (LP2023296)
See the full list in the milestone page.
Juju 3.1.2 - 18 April 2023
Fixes several major bugs in 3.1.2. 4 Critical / 14 High
Fixes:
- target controller complains if a sidecar app was migrated due to statefulset apply conflicts (LP2008744)
- migrated sidecar units continue to talk to an old controller after migrate (LP2008756)
- migrated sidecar units keep restarting (LP2009566)
- Bootstrap on LXD panics for IP:port endpoint (LP2013049)
See the full list in the milestone page.
Juju 3.1.0 - 6 February 2023
Juju 3.1 includes quality of life improvements, removal of charmstore support, introduction of secret backends (Vault and Kubernetes), open-port support for Kubernetes sidecar charms, introduction of --base CLI argument, support for multi-homing on OpenStack and Bootstrap to LXD VM.
Bug fixes include:
- juju using Openstack provider does not remove security groups on remove-machine after a failed provisioning (LP1940637)
- k8s: unable to fetch OCI resources - empty id is not valid (LP1999060)
- Juju doesn’t mount storage after lxd container restart (LP1999758)
Juju 3.0
Juju 3.0 series is EOL
Juju 3.0.3 - 15 Feb 2023
This is primarily a bug fix release.
Fixes:
- Charm upgrade series hook uses base instead of series (LP2003858)
- Can’t switch from edge channel to stable channel (LP1988587)
- juju upgrade-model should upgrade to latest, not next major version (LP1915419)
- unable to retrieve a new secret in same execution hook (LP1998102)
- Juju doesn’t mount storage after lxd container restart (LP1999758)
- units should be able to use owner label to get the application owned secret (LP1997289)
See the full list in the milestone page.
Juju 3.0.2 - 1 Dec 2022
The main fixes in this release are below. Two bootstrap issues are fix: one on k8s and the other on arm64, plus an intermittent situation where container creation can fail. There’s also a dashboard fix.
Fixes (more on the milestone):
- Provisioner worker pool errors cause on-machine provisioning to cease (LP#1994488)
- charm container crashes resulting in storage-attach hook error (LP#1993309)
- not able to bootstrap juju on arm64 with juju 3.0 (LP#1994173)
See the full list in the milestone page.
Juju 3.0.0 - 22 Oct 2022
What’s Changed
CLI Changes
Commands that have been added:
juju list-operations
juju list-secrets
juju operations
juju secrets
juju show-operation
juju show-secret
juju show-task
juju wait-for
Commands that have been renamed:
juju constraints (replaces get-constraints)
juju integrate (replaces add-relation, relate)
juju model-constraints (replaces get-model-constraints)
juju set-application-base (replaces set-series)
juju upgrade-machine (replaces upgrade-series)
juju sync-agent-binary (replaces sync-tools)
juju refresh (replaces upgrade-charm)
juju exec (replaces juju run)
juju run (replaces juju run-action)
Commands that have been dropped:
juju add-subnet
juju attach
juju budget
juju cached-images
juju cancel-action
juju charm
juju create-wallet
juju gui
juju hook-tool
juju hook-tools
juju list-cached-images
juju list-plans
juju list-wallets
juju plans
juju remove-cached-images
juju run-action
juju set-plan
juju set-wallet
juju show-action-output
juju show-action-status
juju show-status
juju show-wallet
juju sla
juju upgrade-dashboard
juju upgrade-gui
juju wallets
Removal of Juju GUI
Juju GUI is no longer deployed and the --no-gui flag was dropped from juju bootstrap. The Juju Dashboard replaces the GUI and is deployed using the juju-dashboard charm.
Windows charms no longer supported
Windows charms are no longer supported.
Bionic and earlier workloads no longer supported
Only workloads on focal and later are supported.
No longer create default model on bootstrap
Running juju bootstrap no longer creates a default model. After bootstrap you can use add-model to create a new model to host your workloads.
add-k8s helpers for aks, gke, eks
The Juju add-k8s command no longer supports the options “–aks”, “–eks”, “–gke” for interactive k8s cloud registration. The strict snap cannot execute the external binaries needed to enable this functionality. The options may be added back in a future update.
Note: it’s still possible to register AKS, GKE, or EKS clusters by passing the relevant kube config to add-k8s directly.
Deprecated traditional kubernetes charms
Traditional kubernetes charms using the pod-spec charm style are deprecated in favor of newer sidecar kubernetes charms.
From juju 3.0, pod-spec charms are pinned to Ubuntu 20.04 (focal) as the base until their removal in a future major version of juju.
Rackspace and Cloudsigma providers no longer supported
Rackspace and Cloudsigma providers are no longer supported
What’s New
Juju Dashboard replaces Juju GUI
The Juju Dashboard replaces the GUI; it is deployed via the juju-dashboard charm, which needs to be integrated with the controller application in the controller model.
juju bootstrap
juju switch controller
juju deploy juju-dashboard
juju integrate controller juju-dashboard
juju expose juju-dashboard
After the juju-dashboard application shows as active, run the dashboard command:
juju dashboard
Note: the error message which appears if the dashboard is not yet ready needs to be fixed. (https://bugs.launchpad.net/juju/+bug/1994953)
Actions
The client side actions UX has been significantly revamped. See the doc here: https://juju.is/docs/olm/manage-actions
To understand the changes coming from 2.9 or earlier, see the post here: https://discourse.charmhub.io/t/juju-actions-opt-in-to-new-behaviour-from-juju-2-8/2255
Secrets
It is now possible for charms to create and share secrets across relation data. This avoids the need for sensitive content to be exposed in plain text. The feature is most relevant to charm authors rather than end users, since how charms use secrets is an internal implementation detail for how workloads are configured and managed. Nonetheless, end users can inspect secrets created by deployed charms:
https://juju.is/docs/olm/secret
https://juju.is/docs/olm/manage-secrets
Charm authors can learn how to use secrets in their charms:
https://juju.is/docs/sdk/add-a-secret-to-a-charm
https://juju.is/docs/sdk/secret-events
Juju controller application
The controller model has a Juju controller application deployed at bootstrap. This application currently provides integration endpoints for the Juju dashboard charm. Future work will support integration with the COS stack and others.
MongoDB server-side transactions now default
Since the move to mongo 4.4 in juju 2.9, juju now uses server-side transactions.
Fixes
- deploy k8s charms to juju 3.0 beta is broken (LP1947105)
- Juju bootstrap failing with various Kubernetes (LP1905320)
- bootstrapping juju installs ‘core’ but ‘juju-db’ depends on ‘core18’ (LP1920033)
- bootstrap OCI cloud fails, cannot find image. (LP1940122)
- Instance key stability in refresh requests (LP1944582)
See the full list in the milestone page.
Juju 2.9
Currently in Security Fix Only support
April 2028: expected end of security fix support
Juju 2.9.51 - 30 August 2024
Fixes:
- Fix CVE-2024-7558
- Fix CVE-2024-8037
- Fix CVE-2024-8038
See the full list in the milestone page.
Juju 2.9.50 - 25 July 2024
Fixes:
- Fix CVE-2024-6984
See the full list in the milestone page.
Juju 2.9.49 - 8 April 2024
Fixes:
- Fix pebble CVE-2024-3250
See the full list in the milestone page.
Juju 2.9.47 - 18 March 2024
Fixes:
- model config num-provision-workers can lockup a controller (LP2053216)
See the full list in the milestone page.
Juju 2.9.46 - 5 Dec 2023
Fixes:
- juju refresh to revision is ignored w/ charmhub (LP1988556)
- updated controller api addresses lost when k8s unit process restarts (LP2037478)
- Juju client is trying to reach index.docker.io when using custom caas-image-repo (LP2037744)
- juju deploy jammy when focal requested (LP2039179)
See the full list in the milestone page.
Juju 2.9.45 - 27 Sep 2023
Fixes:
- panic: charm nil pointer dereference (LP2034707)
- juju storage mounting itself over itself (LP1830228)
- upgrade-series prepare puts units into failed state if a subordinate does not support the target series (LP2008509)
- data bags go missing (LP2011277)
See the full list in the milestone page.
Juju 2.9.44 - 20 July 2023
Fixes several major bugs in 2.9.44 6 High / 1 Medium
Fixes:
- Unit is stuck in unknown/lost status when scaling down (LP1977582)
- failed to migrate binaries: charm local:focal/ubuntu-8 unexpectedly assigned local:focal/ubuntu-7 (LP1983506)
- Provide way for admins of controllers to remove models from other users (LP2009648)
- Juju SSH doesn’t attempt to use ED25519 keys (LP2012208)
- Some Relations hooks not firing over CMR (LP2022855)
- Charm refresh from podspec to sidecar k8s/caas charm leaves agent lost units (LP2023117)
- python-libjuju doesn’t populate the ‘charm’ field from subordinates in get_status (LP1987332)
See the full list in the milestone page.
Juju 2.9.43 - 13 June 2023
Fixes several major bugs in 2.9.43 5 Critical / 10 High
Fixes:
- Containers are killed before any ‘on stop/remove’ handlers have a chance to run (LP1951415)
- the target controller keeps complaining if a sidecar app was migrated due to statefulset apply conflicts in provisioner worker (LP2008744)
- migrated sidecar unit agents keep restarting due to a mismatch charmModifiedVersion (LP2009566)
See the full list in the milestone page.
Juju 2.9.42 - 7 March 2023
Fixes several major bugs in 2.9.42.
Fixes:
- Juju forces specifying series on metadata.yaml (LP1992833)
- LXD unit binding to incorrect MAAS space with no subnets crashes with error (LP1994124)
- panic when getting juju full status (LP2002114)
- max-debug-log-duration: expected string or time.Duration (LP2003149)
- juju using Openstack provider does not remove security groups (LP1940637)
See the full list in the milestone page.
Juju 2.9.38 - 17 January 2023
This release fixes some critical issues ending in panic and a some problems regarding the usage of lxd 5.x.
The main fixes in this release are below.
Fixes:
- Juju panics when trying to add-k8s with no obvious storage to use (LP#1996808)
- Panic after agent-logfile-max-backups-changed (LP#2001732)
- Failing to deploy lxd containers with lxd latest/stable as lxd version 5.x is promoted to latest/stable (LP#2002309)
See the full list in the milestone page.
Juju 2.9.37 - 15 Nov 2022
The main fixes in this release are below. A startup issue on k8s is fixed, plus an intermittent situation where container creation can fail.
Fixes (more on the milestone):
- Provisioner worker pool errors cause on-machine provisioning to cease (LP#1994488)
- charm container crashes resulting in storage-attach hook error (LP#1993309)
See the full list in the milestone page.
Juju 2.9.35 - 12 Oct 2022
Fixes (more on the milestone):
- juju series inconsistency deploying by charm vs bundle (LP1983581)
- Azure provider: New region ‘qatarcentral’ (LP1988511)
- Better error message for add-model with no credential (LP1988565)
- juju ssh does not work for non admin user for a k8s model (LP1989160)
- refresh: ERROR selecting releases: unknown series for version: “22.10” (LP1990182)
See the full list in the milestone page.
Juju 2.9.34 - 7 Sep 2022
Fixes (more on the milestone):
- cloudinit-userdata doesn’t handle lists in runcmd (LP1759398)
- juju doesn’t remove KVM virtual machines on maas nodes when using
juju remove-unit
(LP1982960) - juju does not honor --channel latest/* option (LP1984061)
- cannot deploy bundle, invalid fields (LP1984133)
- juju assumes lxd always available on machine nodes (LP1986877)
See the full list in the milestone page.
Juju 2.9.33 - 9 Aug 2022
Fixes (many more on the milestone):
- lxd profiles not being applied (LP)
- remove a unit with lxd profile doesn’t update (LP)
- Instance poller reports: states changing too quickly (LP)
- juju wants to use the LXD UNIX socket when configured to use HTTP (LP)
- cannot pin charm revision without mention series in bundle (LP)
- add retry-provisioning --all (LP)
See the full list in the milestone page.
Juju 2.9.32 - 24 June 2022
Fixes:
- Juju 2.9.31 breaks yaml format accepted by
juju add-credential
(LP) - azure failed provisioning: conflict with a concurrent request(LP)
- Juju attach-resource returns ‘unsupported resource type “”’ error(LP)
- OpenStack: open-port icmp doesn’t work(LP)
- Juju bootstrap aks can’t find storage(LP)
See the full list in the milestone page.
Juju 2.9.31 - 31 May 2022
Fixes:
- juju controller doesn’t reference juju-https-proxy when deploying from charmhub (LP)
- sidecar application caasapplicationprovisioner worker restarts due to status set failed (LP)
- LXD container fails to start due to UNIQUE constraint on container.name (LP)
- k8s application stuck in an unremoveable state (LP)
- Juju keeps creating OpenStack VMs if it cannot allocate a floating IP (LP)
- Instance type constraint throws “ambiguous constraints” error on GCP (LP)
See the full list in the milestone page.
Juju 2.9.29 - 30 Apr 2022
Fixes:
- Controller bootstrap fails on local LXD with “Certificate not found”(LP)
- Juju unable to add a k8s 1.24 k8s cloud(LP)
- model migration treats “TryAgain” as a fatal error(LP)
- juju 2.9.26 unable to deploy centos7(LP)
See the full list in the milestone page.
Juju 2.9.28 - 08 Apr 2022
Fixes:
- Juju renders invalid netplan YAML for nameservers in IPv4/IPv6 dual-stack environment (LP)
- juju 2.9.27 glibc errors(LP)
- Juju controller keeps restarting when deployed with juju-ha-space and juju-mgmt-space (LP)
See the full list in the milestone page.
Juju 2.9.27 - 21 Mar 2022
Candidate release: 18 Mar 2022
Fixes:
- juju client panics during bootstrap on a k8s cloud (LP1964533)
- Controller upgrade ends up with locked upgrade (LP1942447)
- juju fails to upgrade ha controllers on for (at least) lxd controllers (LP1963924)
See the full list in the milestone page.
Juju 2.9.26 - 12 Mar 2022
This release includes a fix for broken upgrades coming from a deployment with cross model relations to multiple offers hosted on an external controller (LP1964130).
Fixes:
- 2.9.25 Upgrade Fails for Cross-Controller CMRs(LP1964130)
- Unauthorized for K8s API during charm removal(LP1941655)
- CRD creation fails in pod spec charms on juju 2.9.25(LP1962187)
- Juju prompted for a password in the middle of a bundle deploy(LP1960635)
- Unable to set snap-store-assertions on model-config (LP1961083)
- Note: This fix changes how to use log labels in model-config, extra single quotes are no longer required:
juju model-config -m controller "logging-config=#charmhub=TRACE"
- Note: This fix changes how to use log labels in model-config, extra single quotes are no longer required:
See the full list in the milestone page.
Juju 2.9.25 - 24 Feb 2022
This release is significant because it transitions to using the juju-db snap from the 4.4/stable
channel (running mongodb 4.4.11 at the time of writing) for newly bootstrapped controllers. NB the juu-db snap is not used if the default series is changed from focal
to an earlier vrsion.
Existing controllers which are upgraded to this release will not change the mongo currently in use.
Fixes:
- Juju trust not working for K8s charm(LP)
- cannot migration nor upgrade without manual intervention for a machine after a container is removed- (LP1960235 )
- On machines exhibiting the above behavior, the agents will show as lost during the upgrade, you must kill the jujud process on the machine. This allow it to be restarted and continue the upgrade.
- Also seen on machine’s having an LXD container which haven’t been removed.
- destroy model fails if there’s a relation to offered application (LP)
- Sidecar charm get stuck if PodSpec charm with same name was deployed previously (LP)
- 2.9.22 regression: local charm paths resolved wrongly in bundles (LP)
- juju migrate failing with manual machines, verifying controller instance(LP)
- Offer permissions are not migrated (LP)
- destroy model fails if there’s a relation to offered application(LP)
See the full list in the milestone page.
Juju 2.9.22 - 13 Dec 2021
Fixes:
- Juju 2.9.9 fails to bootstrap on AWS (LP)
- controller migration is very hard when dealing with large deployments (LP)
- models not logging (LP)
- ceph-osd is showing as fail (LP)
- Bootstrap with Juju 2.8.11 breaks on LXD 4.0.8 (LP)
- juju ssh --proxy not working on aws when targeting containers with FAN addresses (LP)
See the full list in the milestone page.
Juju 2.9.21 - 3 Dec 2021
Fixes:
- juju enable-ha fails to cluster on 2.9.18 manual machines (LP)
- juju storage events are missing JUJU_STORAGE_ID (LP)
- Juju failing to remove unit due to attached storage stuck dying (LP)
- Juju creates two units for sidecar CAAS application (LP)
See the full list in the milestone page.
Juju 2.9.19 - 23 Nov 2021
Fixes:
- controller models with valid credentials becoming suspended (LP)
- FIP created in incorrect AZ for instance when bootstrapped against OpenStack. (LP)
- [2.9.16 & 2.9.17] juju trust gets lost if juju config is run on application (LP)
- mongo 4.4 has a multiline --version (LP)
See the full list in the milestone page.
Juju 2.8.13 - 11 Nov 2021
This release fixes various issues with Juju 2.8
Fixes:
- Juju
2.9.9fails to bootstrap on AWS (LP) - controller migration is very hard when dealing with large deployments (LP)
- models not logging (LP)
- ceph-osd is showing as fail (LP)
- Bootstrap with Juju 2.8.11 breaks on LXD 4.0.8 (LP)
- juju ssh --proxy not working on aws when targeting containers with FAN addresses (LP)
See the full list in the milestone page.
Juju 2.9.18 - 8 Nov 2021
Fixes:
- agent cannot be up on LXD/Fan network on OpenStack OVN/geneve mtu=1442 (LP1936842)
- no way to declare a k8s charm with metadata v2 that doesn’t need a workload container (LP1928991)
- Method to run an action in a workload container in sidecar charms (LP1923822 )
See the full list in the milestone page.
Juju 2.9.17 - 27 Oct 2021
This release introduces telemetry as a configurable option per model. It also supports more OCI image registry providers for pulling images used for CAAS models.
Fixes:
- Leader role not transferred when the inital leader goes offline (LP)
- if the primary node of an HA config goes down, the controller stops responding (LP)
- Trust permissions not ready on install hook in sidecar charms (LP)
- deployed application loses trust after charm upgrade (LP)
See the full list in the milestone page.
Juju 2.9.16 - 11 Oct 2021
Fixes:
- Unable to deploy workloads to lxd cloud added to k8s controller (LP)
- memory usage leading to OOMs on controllers
- LXD bootstrap fails with “Executable /snap/bin/juju-db.mongod not found” (LP)
- Requested image’s type ‘virtual-machine’ doesn’t match instance type ‘container’ (LP)
See the full list in the milestone page.
Juju 2.9.15 - 28 Sept 2021
This release improves the robustness of repeated cross model relation setup / teardown. There’s also some improvements to how raft is used internally to manage leases.
Fixes:
- ceph mon does not render data to ceph-rados after redployment of ceph-radosgw only (LP)
- Unable to remove offers when 2 endpoints are offered with the same application (LP)
- upgrading 2.9.12 to 2.9.13 gets stuck in ‘raftlease response timeout’ (LP)
- pod-spec uniter exits on pending action op when remote caas container died (LP)
See the full list in the milestone page.
Juju 2.9.14 - 14 Sept 2021
This release fixes an upgrade issue found during testing of the 2.9.13 release. There’s also an additional fix for an earlier regression deploying LXD containers on AWS.
Fixes:
- Juju fails to provision LXD containers with LXD >= 4.18 (LP)
- Juju is unable to match machine address CIDRs to subnet CIDRs on Equinix Metal clouds (LP)
- Non POSIX-compatible script used in
/etc/profile.d/juju-introspection.sh
(LP) - In AWS using spaces and fan network for a private network does not allow LXC containers to start(LP)
See the full list in the milestone page.
Juju 2.9.13 - Release cancelled, replaced by 2.9.14
This release adds support for pulling images used for CAAS models from private OCI registries! This means you can host your own jujud-operator
, charm-base
and juju-db
images. This initial release focuses on private registries on Dockerhub, with other public cloud registry support coming in a future release. More details in this post.
Fixes:
- Juju fails to provision LXD containers with LXD >= 4.18 (LP)
- Juju is unable to match machine address CIDRs to subnet CIDRs on Equinix Metal clouds (LP)
- Non POSIX-compatible script used in
/etc/profile.d/juju-introspection.sh
(LP)
Juju 2.9.12 - 30 Aug 2021
Fixes:
- Cross-model relations broken for CAAS (LP)
- Boot failure when
model-config
setssnap-proxy
(LP) - The
juju export-bundle
command gives error after upgrade (LP) - Several updates for the Raft engine that handles leases. These are steps to address (LP), though that issue is not completely resolved.
See the full list in the milestone page.
Juju 2.9.11 - 17 Aug 2021
Fixes:
- Resource downloads are very slow in some cases (LP)
- Upgrading the mongodb snap causes controller to hang without restarting mongod (LP)
- OpenStack provider: retry-provisioning doesn’t work for
Quota exceeded for ...
(LP)
See the full list in the milestone page.
Juju 2.9.10 - 03 Aug 2021
A new logging label: charmhub
. To enable debugging information about Charmhub, you can now use the following:
juju model-config -m controller "logging-config='#charmhub=TRACE'"
Fixes:
- Unable to
upgrade-charm
a pod_spec charm to sidecar charm (LP) - OOM and high load upgrading to 2.9.7 (LP)
- Controller not caching agent binaries across models (LP)
- Bundle with local metadata v2 k8s sidecar charm fails for “metadata v1” (LP)
- The
network-get
hook returns the vip as ingress address (LP)
See the full list in the milestone page.
Juju 2.9.9 - 19 Jul 2021
Fixes:
- Juju 2.9.8 tries to use an empty UID when deleting Kubernetes objects, and cannot remove applications (LP)
- The
juju-log
output going to machine log file instead of unit log file in Juju 2.9.5 (LP) - Deployment of private charms is broken in 2.9 (was working in 2.8) (LP)
- [Windows] Juju.exe and MicroK8s.exe bootstrap error (LP)
See the full list in the milestone page.
Juju 2.9.8 - 13 Jul 2021
This release introduces support for bootstrapping and deploying workloads to Equinix cloud. To try out the new provider:
- Run
juju update-public-clouds --client
to ensure that provider API endpoint list is up to date. - Add a credential for the equinix cloud (
juju add-credential equinix
). You will need to specify your equinix project ID and provide an API key. You can use the equinix console to look up your project ID and generate API tokens. - Select a metro area and bootstrap a new controller. For example to bootstrap to the Amsterdam data-center you may run the following command:
juju bootstrap equinix/am
.
Caveats:
- Due to substrate limitations, the equinix provider does not implement support for firewalls. As a result, workloads deployed to machines under the same project ID can reach each other even across Juju models.
- Deployed machines are always assigned both a public and a private IP address. This means that any deployed charms are implicitly exposed and proper access control mechanisms need to be implemented to prevent unauthorized access to the deployed workloads.
This release also introduces logging labels which will help with the aggregation of logs via a label rather than a namespace.
juju model-config "logging-config='#http=TRACE'"
The above will turn on HTTP loggers to trace. This is a new UX feature to help with debugging, it’s not been full worked through Juju yet and might be subject to change.
Fixes:
- Juju fails to deploy mysql-k8s charm with its image resource (LP)
- Juju 2.9 failing to create ClusterRoleBinding (LP)
- Juju interprets
caas-image-repo
containing port number incorrectly (LP)
See the full list in the milestone page.
Juju 2.9.7 - 06 Jul 2021
Fixes:
- Juju upgrade 2.9 controller from local branch fails with wrong namespace. (LP)
- Unit network data not populated on peer relations in sidecar charms (LP)
- A
juju refresh --switch ./local
fails for metadata v1 charm (LP) - A migrated CaaS model will be left in the cluster after model destroyed (LP)
- Unable to deploy postgresql-k8s charm from charmhub (LP)
- Unable to deploy bundle with sidecar and pod_spec charms (LP)
- IP address sometimes not set or incorrect on pebble_ready event (LP)
- Improve
juju ssh
on k8s poor ux (LP) - Support encrypted EBS volumes for bootstrapping controllers on AWS (LP)
- Document and support
charmcraft
’s bundle.yaml fields (LP) - install hook run after juju upgrade-model 2.7.8 to 2.9.4 (LP)
- controller fails to bring up
jujud
machine (LP) - The
juju ssh --proxy
command is not working on aws when targeting containers with FAN addresses (LP) - The
juju resources
revision date format uses year-date-month format instead of year-month-date (LP) - Using
juju config
with empty values erroneously resets since 2.9 (LP)
See the full list in the milestone page.
Juju 2.9.5
Release notes here.
Juju 2.9.4
Release notes here.
Juju 2.9.3
Release notes here.
Juju 2.9.2
Release notes here.
Juju 2.9.0
Release notes here.
Before Juju 2.9 (all EOL)
Juju 2.8
Juju 2.8 series is EOL
Juju 2.7
Juju 2.7 series is EOL
Juju 2.6
Juju 2.6 series is EOL
Juju 2.5
Juju 2.5 series is EOL
Juju 2.4
Juju 2.4 series is EOL