Juju Roadmap & Releasesยถ
See also: Upgrade your Juju deployment
This document is about our releases of Juju, that is, the juju
CLI client and the Juju agents.
We release new minor version (the โxโ of m.x.p) approximately every 3 months.
Patch releases for supported series are released every month
Once we release a new major version, the latest minor version of the previous release will become an LTS (Long Term Support) release.
Minor releases are supported with bug fixes for a period of 4 months from their release date, and a further 2 months of security fixes. LTS releases will receive security fixes for 12 years.
4.0 is an exception to the rule, as it is still under development. We plan on releasing beta versions that are content driven and not time.
The rest of this document gives detailed information about each release.
โญ Juju 3.6ยถ
April 2036: expected end of security fix support
1 May 2026: expected end of bug fix support
Note
Juju 3.6 series is LTS
๐ธ Juju 3.6.10ยถ
๐๏ธ 23 Sep 2025
For a detailed list of every commit in this release, refer to the Github Release Notes .
โ๏ธ Features:
New Google Cloud provider functionalityยถ
The Google Cloud provider gains support for various features already available on other clouds like AWS or Azure.
Specifically, the following features are now available:
VPC selection
Use the vpc-id
model config value to select the name of the VPC to use for that model.
This is supplied when the model is added:
juju add-model mymodel --config vpc-id=myvpc
or at bootstrap for the controller model:
juju bootstrap google mycontroller --config vpc-id=myvpc
For a VPC to be used when bootstrapping, there must be a firewall ruling allowing SSH traffic.
Spaces support and subnet placement
Compute instances can now be provisioned such that space constraints and subnet placement can be used.
Subnet placement can use either the subnet name or subnet CIDR.
eg
juju deploy mycharm --constraints="spaces=aspace"
juju deploy mycharm --constraints="subnet=asubnet"
juju deploy mycharm --constraints="subnet=10.142.0.0/16"
ssh-allow model config
The ssh-allow
model config value is now supported. When specified, a firewall rule
is created to control ingress to the ssh port.
eg
juju model-config ssh-allow="192.168.0.0/24"
Service account credentials
Similar to using instance roles on AWS or managed identities on Azure, itโs now possible to use
service accounts to confer permissions to Juju controllers such that a credential secret is not required.
The service account to be used must have the following scopes:
https://www.googleapis.com/auth/compute
https://www.googleapis.com/auth/devstorage.full_control
If you are not on a jump host, you must bootstrap using a standard credential and specify the service account like so:
juju bootstrap google mycontroller --bootstrap-constraints="instance-role=mydevname@2@developer.gserviceaccount.com"
If you are on a jump host, you can set up a credential using juju add-credential google
. Select credential type
service-account
and enter the service account email. Then bootstrap as normal:
juju bootstrap google mycontroller
Constrains with image-id
The use of the image-id
constraint value is now supported.
eg
juju deploy mycharm --constraints="image-id=someimageid"
feat: add vpc support to the google provider by @wallyworld in https://github.com/juju/juju/pull/20518
feat: add support for ssh-allow model config for gce by @adglkh in https://github.com/juju/juju/pull/20511
feat: add support for gce service account credentials by @wallyworld in https://github.com/juju/juju/pull/20585
feat: add spaces and subnet placement for gce by @wallyworld in https://github.com/juju/juju/pull/20568
fix: support image-id constraint for charm deployment on gce by @adglkh in https://github.com/juju/juju/pull/20591
Preview: support for --attach-storage
on Kubernetes modelsยถ
For this release, a feature flag needs to be used as the feature is in preview.
On the client machine used to run the Juju CLI, simply:
export JUJU_DEV_FEATURE_FLAGS=k8s-attach-storage
The primary use case this feature is designed to solve is to provide the ability to re-use volumes that have been restored from a backup and attach them to units when deploying or scaling. The basic steps follow the usual import and attach workflow supported already on other clouds:
Import the PV into the Juju model to create a detached storage instance.
Use the imported storage with the
--attach-storage
option fordeploy
oradd-unit
.
eg
juju import-filesystem kubernetes <mypvname>
# See the resulting detached storage instance.
juju status --storage
juju deploy postgresql-k8s --trust --attach-storage <storagename>
Note that if the PV to be imported still has a reference to a PVC, the --force
option is needed when importing since the
existing claim reference will be removed.
feat: import filesystem force option by @jneo8 in https://github.com/juju/juju/pull/20247
feat: caas scale unit attach storage by @jneo8 in https://github.com/juju/juju/pull/20434
Removal of charm metricsยถ
Charm metrics are no longer supported. This means that the collect-metrics
and meter-status-changed
hooks
will no longer fire and the add-metrics
hook command becomes a no-op. In addition, the Juju CLI commands
metrics
, collect=metrics
, and set-meter-status
are removed.
feat: remove metrics and meterstatus functionality by @adisazhar123 in https://github.com/juju/juju/pull/20520
Documentation improvementsยถ
Many documentation improvements have been done for this release. Highlights include:
better support for diagrams in dark mode
visual enhancements to tips and notes
removal of command aliases from CLI doc to reduce clutter
hook and storage reference doc improvements
fix: update secret-set hook tool help by @dimaqq in https://github.com/juju/juju/pull/20567
docs: update starter pack by @tmihoc in https://github.com/juju/juju/pull/20419
docs: break up manage your deployment by @tmihoc in https://github.com/juju/juju/pull/20403
docs: update tutorial cf user testing by @tmihoc in https://github.com/juju/juju/pull/20384
docs: adds to charms best practices concerning respecting model-config settings by @addyess in https://github.com/juju/juju/pull/20268
docs: fix cli docs โ links and formatting by @tmihoc in https://github.com/juju/juju/pull/20451
docs: clean up storage ref doc by @tmihoc in https://github.com/juju/juju/pull/20501
docs: 3.6+ update see note style by @tmihoc in https://github.com/juju/juju/pull/20523
docs: 3.6+ fix relation images in dark mode by @tmihoc in https://github.com/juju/juju/pull/20539
docs: 3.6+ improve structure and look of our hook doc by @tmihoc in https://github.com/juju/juju/pull/20553
docs: 3.6+ revisit information foregrounding notes by @tmihoc in https://github.com/juju/juju/pull/20551
docs: add caution banner for 3.5 EOL by @nvinuesa in https://github.com/juju/juju/pull/20570
doc: remove command aliases from cli reference doc by @wallyworld in https://github.com/juju/juju/pull/20584
feat(docs): export dark-mode SVGs in Excalidraw converter by @anvial in https://github.com/juju/juju/pull/20420
๐ ๏ธ Fixes:
Openstackยถ
The 3.6.9 release introduced a regression when running on Openstack clouds where security groups are disabled.
fix: gracefully handle error when security group is disabled in openstack by @adisazhar123 in https://github.com/juju/juju/pull/20548
Google cloudยถ
Specifying non-default disk storage using storage pools is fixed. Using images configured for pro support is fixed.
fix: ensure gce images are correctly configured for pro support by @wallyworld in https://github.com/juju/juju/pull/20417
fix: set maintenance policy upon instance creation on GCE by @adglkh in https://github.com/juju/juju/pull/20509
fix: use
disk-type
instead oftype
when querying disk type on gce by @adglkh in https://github.com/juju/juju/pull/20557
Kubernetesยถ
Deletion of applications deployed using sidecar charms now also deletes any Kubernetes resources created directly by the charm and not managed by Juju. These include:
custom resource definitions
config maps
deployments, daemonsets
etc
Adding multiple secrets simultaneously could result in an error and this has been fixed. Fixes for issues scaling applications:
fix logic to only consider units >= target scale for removal, preventing inappropriate scaling during scale-up scenarios.
only initiate scaling when all excess units (>= target) are dead. The
credential-get
hook command now works on Kubernetes models for trusted applications the same way as for VM models.
fix: crd resource cleanup on app removal by @CodingCookieRookie in https://github.com/juju/juju/pull/20385
fix: caas reconcile scale up prevention by @jneo8 in https://github.com/juju/juju/pull/20479
fix: adding multiple secrets simultaneously error by @CodingCookieRookie in https://github.com/juju/juju/pull/20401
fix: crd cleanup on app removal for all other resouces by @CodingCookieRookie in https://github.com/juju/juju/pull/20489
fix: allow โcredential-getโ to work on a K8s model by @benhoyt in https://github.com/juju/juju/pull/20428
fix(k8s): call broker.Destroy when NewModel fails for CAAS models by @SimoneDutto in https://github.com/juju/juju/pull/20639
LXDยถ
When a model is deleted, any LXD profiles created for the model and its applications are now removed. The profile naming scheme has been updated to include a reference to the model UUID as well as name to ensure profiles are fully disambiguated. Upon upgrade to this Juju version, existing profiles are renamed as needed.
The new profile names are of the form:
juju-<model>-<shortid>
or juju-<model>-<shortid>-<app>-<rev>
fix: cleanup LXD profile when a model is deleted by @adisazhar123 in https://github.com/juju/juju/pull/20357
๐ฅณ New Contributors:
@addyess made their first contribution in https://github.com/juju/juju/pull/20268
@iasthc made their first contribution in https://github.com/juju/juju/pull/19765
@claudiubelu made their first contribution in https://github.com/juju/juju/pull/19794
@adglkh made their first contribution in https://github.com/juju/juju/pull/20509
@dimaqq made their first contribution in https://github.com/juju/juju/pull/20567
๐ธ Juju 3.6.9ยถ
๐๏ธ 20 Aug 2025
โ๏ธ Features:
New cloud regionsยถ
feat: add aws and azure regions by @adisazhar123 in https://github.com/juju/juju/pull/20087
Increased secret content sizeยถ
The secret content size limit has been increased from 8KiB to 1MiB.
feat(secrets): increase the allowed size for secret content to 1MiB by @wallyworld in https://github.com/juju/juju/pull/20287
Other featuresยถ
feat: support import-filesystem for k8s by @jneo8 in https://github.com/juju/juju/pull/19904
feat: allow migration minion worker to follow redirects by @kian99 in https://github.com/juju/juju/pull/20133
feat: add tags to Openstack security groups by @adisazhar123 in https://github.com/juju/juju/pull/20169
feat: allow edge snaps to be used as official builds by @wallyworld in https://github.com/juju/juju/pull/20202
๐ ๏ธ Fixes:
Openstackยถ
The Openstack Neutron API endpoint was incurring excessive calls due to an inefficient query strategy.
SEV flavors are deprioritised when using constraints to choose a flavor as they are not yet modelled.
fix: inefficient security group client side filtering by @adisazhar123 in https://github.com/juju/juju/pull/19954
fix: choose non SEV flavor for Openstack by @adisazhar123 in https://github.com/juju/juju/pull/20299
Azureยถ
fix: azure prem storage pending indefinitely by @CodingCookieRookie in https://github.com/juju/juju/pull/20122
LXDยถ
The LXD provider now supports zone constraints.
There are also storage fixes for deploying a charm with multiple storage requirements.
fix: ensure zone constraints are used with lxd by @wallyworld in https://github.com/juju/juju/pull/20271
fix: missing availability zones for lxd machines by @adisazhar123 in https://github.com/juju/juju/pull/20339
fix: sort lxd storage by path before attaching by @wallyworld in https://github.com/juju/juju/pull/20320
fix: make adding a disk to a lxd container idempotent by @wallyworld in https://github.com/juju/juju/pull/20269
Kubernetesยถ
The memory request and limit has been reduced for the charm container and no longer uses the same (possibly large) value
that may have been required for the workload.
The default image repository is now ghcr rather than docker.
fix: reduce charm memory constraints and fill workload container requests by @CodingCookieRookie in https://github.com/juju/juju/pull/20014
Storageยถ
A long occurring intermittent storage bug was fixed where sometimes storage would not be registred as attached and charms would hang and not run the storage attached hook.
fix: ensure filesystem attachment watcher sends all events by @wallyworld in https://github.com/juju/juju/pull/20338
FAN networkingยถ
If the container networking method is set to โlocalโ or โproviderโ, do not set up FAN networking.
fix: do not detect fan for local or provider container networking by @wallyworld in https://github.com/juju/juju/pull/20353
Mitigate possible connection leakยถ
The worker to monitor and update external controller API addreses for cross model relations could needlessly and constantly bounce due to incorrect detection of address changes. This would cause HTTP connections to churn, possibly contributing to observed connection / file handle leaks.
fix: handle script runner errors and donโt ignore them by @wallyworld in https://github.com/juju/juju/pull/20352
fix: do not update external controller info unless needed by @wallyworld in https://github.com/juju/juju/pull/20398
Other fixesยถ
fix: donโt flush model when we have no machines by @adisazhar123 in https://github.com/juju/juju/pull/20029
fix: machine loopback addresses not being accounted by @sombrafam in https://github.com/juju/juju/pull/19998
fix: use correct version when bootstrapping from edge snap by @wallyworld in https://github.com/juju/juju/pull/20254
fix: only include resource ID in error message when applying changes by @wallyworld in https://github.com/juju/juju/pull/20295
fix: k8s model and workload container image updated to repository of target controller during model migration and upgrade by @CodingCookieRookie in https://github.com/juju/juju/pull/20267
fix: add k8s do not follow path priority for k8s config file by @CodingCookieRookie in https://github.com/juju/juju/pull/20307
fix: fallback to lexicographical sort if natural sort fails by @adisazhar123 in https://github.com/juju/juju/pull/20313
fix: life worker reports wrong value by @SimonRichardson in https://github.com/juju/juju/pull/20335
๐ฅณ New Contributors:
@st3v3nmw made their first contribution in https://github.com/juju/juju/pull/19898
@jneo8 made their first contribution in https://github.com/juju/juju/pull/19904
@MattiaSarti made their first contribution in https://github.com/juju/juju/pull/20324
๐ธ Juju 3.6.8ยถ
๐๏ธ 7 Jul 2025
๐ ๏ธ Fixes:
Fix CVE-2025-0928
Fix CVE-2025-53512
Fix CVE-2025-53513
fix: static-analysis by @jack-w-shaw in https://github.com/juju/juju/pull/19353
fix: associate DNS config with interfaces as appropriate by @manadart in https://github.com/juju/juju/pull/19890
fix: solve a model destroy issue on k8s by @wallyworld in https://github.com/juju/juju/pull/19923
fix: include architecture and base in machine/unit metrics by @jameinel in https://github.com/juju/juju/pull/19930
fix: 2.9 pki for go 1.24.4 by @jameinel in https://github.com/juju/juju/pull/19972
fix: speed up status with lots of subordinates by @jameinel in https://github.com/juju/juju/pull/19964
fix: avoid rereading controller config for every Charm by @jameinel in https://github.com/juju/juju/pull/19963
fix: add status caching from 2.9 into 3.6 by @jameinel in https://github.com/juju/juju/pull/20012
fix: set controller UUID in environ by @adisazhar123 in https://github.com/juju/juju/pull/19973
โ๏ธ Features:
feat: token auth for migrations by @kian99 in https://github.com/juju/juju/pull/19935
๐๏ธ Docs:
docs: remove bundle phase out caveat by @tmihoc in https://github.com/juju/juju/pull/19838
docs: combine manage deployment docs into a single doc by @tmihoc in https://github.com/juju/juju/pull/19608
๐ธ Juju 3.6.7ยถ
๐๏ธ 9 Jun 2025
๐ ๏ธ Fixes:
fix: use pebble v1.19.1 by @jameinel in https://github.com/juju/juju/pull/19791
fix: data race in state pool by @SimonRichardson in https://github.com/juju/juju/pull/19816
fix: charm-user path in docs by @nsklikas in https://github.com/juju/juju/pull/19821
fix: slice access without guard causes panic by @SimonRichardson in https://github.com/juju/juju/pull/19820
fix: associate DNS config with interfaces as appropriate by @manadart in https://github.com/juju/juju/pull/19890
๐ฅณ New Contributors:
@nsklikas made their first contribution in https://github.com/juju/juju/pull/19821
๐ธ Juju 3.6.6ยถ
๐๏ธ 29 May 2025 โ๏ธ Features:
feat(secrets): handle NotFound errors in secret backend during
RemoveUserSecrets
by @ca-scribner in #19169feat: open firewall ports for SSH server proxy by @kian99 in #19180
feat(ssh): public key authentication for ssh server by @SimoneDutto in #18974
feat: sshtunneler package by @kian99 in #19285
feat: transaction op logging by @manadart in #19762
๐ ๏ธ Fixes:
fix: always create K8s unit virtual host key by @kian99 in #19503
fix: model defaults validation by @manadart in #19462
fix: detailed health errors for probe by @jameinel in #19670
fix: broken enable-ha on azure due to a panic caused by a nil pointer by @wallyworld in #19695
fix: ssh-tunneler worker failure on k8s provider by @kian99 in #19729
fix: warn on dropped error by @MggMuggins in #19532
๐ฅณ New Contributors:
๐ธ Juju 3.6.5ยถ
๐๏ธ 14 Apr 2025 โ๏ธ Features:
feat(ssh-server-worker): add feature flag for ssh jump server by @SimoneDutto in #19364
feat: add facade to resolve virtual hostname by @SimoneDutto in #18995
feat: retrieve unit host keys by @ale8k in #18973
feat(state): add state method for ssh connection requests by @SimoneDutto in #19212
feat(state): add cleanup for expired ssh connection requests by @SimoneDutto in #19239
feat(sshworker): add max concurrent connections to ssh server by @SimoneDutto in #19236
feat(ssh-conn-req-facades): add controller and client facade to interact with ssh conn requests by @SimoneDutto in #19301
feat(ssh-server-worker): set unit hostkey for target host by @SimoneDutto in #19299
๐ ๏ธ Fixes:
fix(apiserver): avoid splitting untrusted data by @jub0bs in #18971
fix(charmhub): resolve misleading output for info by @leyao-daily in #19084
fix: login to jaas controller by @kian99 in #19136
fix: avoid restart loop of ssh server worker by @kian99 in #19152
fix(bootstrap): support instance-role when bootstrapping by @xtrusia in #19204
fix: facade restriction for โsshserverโ facade by @ale8k in #19220
fix(applicationoffer): fix authorization check for list/show offers by @alesstimec in #19287
fix: split model migration status message by @SimonRichardson in #19255
fix: update to use ctrl state & return public key in ssh wire format base64 std encoded by @ale8k in #19324
fix: prevent retry of a successful phase by @SimonRichardson in #19257
fix: close possible leak in ext controller worker by @wallyworld in #19311
fix: revert pull request #19287 by @SimoneDutto in #19395
fix: k8s cloud reuse across controllers by @hpidcock in #19298
๐ฅณ New Contributors:
๐ธ Juju 3.6.4ยถ
๐๏ธ 11 Mar 2025 โ๏ธ Features:
feat(security): add SECURITY.md for reporting security issues by @anvial in #18245
feat(charmhub): add revision support for info command by @leyao-daily in #18676
feat: add virtual host keys to state by @kian99 in #18829
feat: add support for trust token based authentication on remote LXD by @nvinuesa in #18626
feat: virtual host keys upgrade step by @kian99 in #18941
feat: ssh server facade and plug in by @ale8k in #19019
๐ ๏ธ Fixes:
fix: replicaset update after removing a primary controller in HA by @nvinuesa in #18965
fix: container resource export by @Aflynn50 in #18898
fix(state/charm.go): fix for AddCharmMetadata buildTxn by @alesstimec in #18990
fix(apiserver): avoid splitting untrusted data by @jub0bs in #18970
fix(shallow-copy-addrs): fix shallow copy before shuffle by @SimoneDutto in #19017
fix: avoid error when change for a Pebble notice has been pruned by @benhoyt in #18981
fix: get model info authorization by @alesstimec in #18959
fix: change jaas snap mount path by @kian99 in #19062
fix: install aws cli and creds for tests needing aws ec2 cli by @wallyworld in #19072
fix: login after logout with OIDC by @kian99 in #19079
fix: worker leaking in TestManfioldStart of the SSH server worker by @ale8k in #19102
๐ฅณ New Contributors:
๐ธ Juju 3.6.3ยถ
๐๏ธ 27 Feb 2025 โ๏ธ Features:
feat(secrets): add support for using besoke k8s secret backends by @wallyworld in #18599
feat(secrets): add token refresh support to k8s secret backend by @wallyworld in #18639
chore: bump Pebble version to v1.18.0 by @james-garner-canonical in #18752
feat: log MAAS device removals by @manadart in #18705
feat: debug log when we can not find an image by @SimonRichardson in #18666
feat(config): ssh server configuration options by @ale8k in #18701
feat: add hostname parsing by @kian99 in #18821
feat(sshserver worker): adds a base skeleton ssh server worker by @ale8k in #18627
๐ ๏ธ Fixes:
fix: juju debug-log โreplay and โno-tail by @CodingCookieRookie in #18601
fix: dangling state trackers by @SimonRichardson in #18611
fix: close state pool item on release by @SimonRichardson in #18614
fix(bootstrap): fix bootstrap mirror bug on noble by @jack-w-shaw in #18659
fix: remove server side constraints by @CodingCookieRookie in #18674
fix: support older agents with new k8s secet backend config by @wallyworld in #18623
fix: google model destruction when missing model firewall by @hpidcock in #18536
fix: change String method of intValue to display value not pointer by @CodingCookieRookie in #18683
fix: panic in debug-log by @jack-w-shaw in #18688
fix(jaasbakery): fix RefreshDischargeURL by @ale8k in #18563
fix(ci): fix relation departing unit test on aws by @nvinuesa in #18715
fix(tests): add workaround for checking output of discourse-k8s charm action by @anvial in #18718
fix(simpleconnector): fix connect() method of simple connector to handle DialOptions by @ale8k in #18358
fix: allow setting provisioning info for dying machine by @manadart in #18500
fix: disambiguate k8s artefacts used for juju secrets by @wallyworld in #18675
fix: backport azure image lookup fix by @anvial in #18745
fix: cleanup k8s secret artefacts on model deletion by @wallyworld in #18673
fix: find azure address prefix from new api result; by @ycliuhw in #18776
fix: add recent introduced aws regions to update public clouds by @CodingCookieRookie in #18774
fix: reflecting watcher in error handling by @hpidcock in #18791
fix: upgrade go version to 1.23.6 to address GO-2025-3447 vuln by @nvinuesa in #18832
fix: correctly handle path segments in controller URL by @kian99 in #18703
fix: allow authorized external users to add clouds by @alesstimec in #18858
fix: use after release by @SimonRichardson in #18868
fix: parse corrected spelling of gratuitous-arp in Netplan by @manadart in #18918
fix: correct case of JSON/YAML field name for FilesystemInfo.Attachments by @benhoyt in #18931
fix(applicationoffers): handle permission validation correctly by @gfouillet in #18928
fix: ensure โapp.kubernetes.io/name โ label is set for user secrets by @wallyworld in #18950
fix: GetModelInfo method by @alesstimec in #18922
fix: copy mgo session when bulk deleting secrets by @wallyworld in #18953
๐ฅณ New Contributors:
๐ธ Juju 3.6.2ยถ
๐๏ธ 21 Jan 2025 โ๏ธ Features:
feat: add relation-model-get hook command by @wallyworld in #18444
๐ ๏ธ Fixes:
fix: poor error message validating constraints by @CodingCookieRookie in #18447
fix: do not set provider addresses for manually provisioned machines by @manadart in #18535
fix: juju ssh enforcing port 22 by @CodingCookieRookie in #18520
fix: improve error messages for register โreplace by @wallyworld in #18513
fix: cater for leadership change during secret drain by @wallyworld in #18556
๐ธ Juju 3.6.1ยถ
๐๏ธ 11 Dec 2024 โ๏ธ Features:
feat: bump pebble version to v1.17.0 by @benhoyt in #18462
feat(cmd-register): prevent replacing existing controller if logged in by @ca-scribner in #18079
feat: remove upgradesteps API client by @manadart in #18374
feat: do not require upgradesteps API for migrations by @manadart in #18387
๐ ๏ธ Fixes:
fix: do not fail probes during controller outage by @hpidcock in #18468
fix: allow
refresh --base
to pivot a charm by @jameinel in #18215fix: fix bootstrap issue on k8s snap by @wallyworld in #18366
fix: qualify azure role definition with subscription by @wallyworld in #18438
fix(ha): ignore virtual IP CIDR/32 by @gfouillet in #18297
fix(logforwarder): add Close method to LogStream interface by @gfouillet in #18278
fix(state): add assertion on the number of relations when adding relations by @alesstimec in #18288
fix: fallback to env config when no base set by @SimonRichardson in #18355
fix(login): use nil instead of empty user tag for NewLegacyLoginProvider by @gfouillet in #18290
fix(ec2): remove auto assigned public IP when constraint is false by @nvinuesa in #18432
๐ธ Juju 3.6.0ยถ
๐๏ธ 26 Nov 2024 โ๏ธ Features:
Rootless charms on k8s
Azure managed identities
Idempotent Secrets
The default base was bumped up to noble 24.04
๐ ๏ธ Fixes: See the full list in these milestone pages:
โญ Juju 3.5ยถ
30 Apr 2025: end of security fix support
28 Feb 2025: end of bug fix support
Caution
Juju 3.5 series is EOL
๐ธ Juju 3.5.7ยถ
๐๏ธ 11 Mar 2025
๐ ๏ธ Fixes:
feat(security): add SECURITY.md for reporting security issues by @anvial in #18245
fix: find azure address prefix from new api result; by @ycliuhw in #18776
fix: add recent introduced aws regions to update public clouds by @CodingCookieRookie in #18774
fix: reflecting watcher in error handling by @hpidcock in #18791
fix: upgrade go version to 1.23.6 to address GO-2025-3447 vuln by @nvinuesa in #18832
fix: use after release by @SimonRichardson in #18868
fix(applicationoffers): handle permission validation correctly by @gfouillet in #18928
fix: replicaset update after removing a primary controller in HA by @nvinuesa in #18965
fix(apiserver): avoid splitting untrusted data by @jub0bs in #18970
fix(shallow-copy-addrs): fix shallow copy before shuffle by @SimoneDutto in #19017
fix: install aws cli and creds for tests needing aws ec2 cli by @wallyworld in #19072
๐ธ Juju 3.5.6ยถ
๐๏ธ 11 Jan 2025
๐ ๏ธ Fixes:
Fix controller restart meant sidecar charm k8s workloads restarts
Fix Potential race in provisioner while destroying model with machine-with-placemen
Fix google vpc firewall rule left around after model/controller destroy
See the full list in the milestone page .
๐ธ Juju 3.5.5ยถ
๐๏ธ 2 Dec 2024
๐ ๏ธ Fixes:
Fix Peer relation disappears too early on application removal
Fix microk8s juju: cloud skip-tls-verify for MAAS cloud does not work
Fix relation-ids does not include peer relations on app removal
Fix Migrating a model with an external offer breaks the consumer
See the full list in the milestone page .
๐ธ Juju 3.5.4ยถ
๐๏ธ 11 Sep 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 Jul 2024
๐ ๏ธ Fixes:
Fix CVE-2024-6984
See the full list in the milestone page .
๐ธ Juju 3.5.2ยถ
๐๏ธ 10 Jul 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:
๐ธ 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ยถ
Caution
Juju 3.4 series is EOL
๐ธ Juju 3.4.6ยถ
๐๏ธ 11 Sep 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 Jul 2024
๐ ๏ธ Fixes:
Fix CVE-2024-6984
See the full list in the milestone page .
๐ธ Juju 3.4.4ยถ
๐๏ธ 1 Jul 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 Jun 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 Apr 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 (https://github.com/juju/juju/pull/16428 )
Internal enhancements, performance improvements and bug fixes
๐ ๏ธ Fixes:
โญ Juju 3.3ยถ
Caution
Juju 3.3 series is EOL
๐ธ Juju 3.3.7ยถ
๐๏ธ 10 Sep 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 Jul 2024
๐ ๏ธ Fixes:
Fix CVE-2024-6984
๐ธ Juju 3.3.5ยถ
๐๏ธ 20 May 2024
Final bug fix release of Juju 3.3 series.
๐ ๏ธ Fixes:
Bump Pebble version to v1.4.2 (require admin access for file pull API) #17137
Ensure peer units never have their own consumer labels for the application-owned secrets #17340 LP2064772
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 Apr 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:
๐ธ Juju 3.3.0ยถ
๐๏ธ 10 Nov 2023
โ๏ธ Features:
User Secrets
Ignore status when processing controller changes in peergrouper https://github.com/juju/juju/pull/16377
Allow building with podman using
make OCI_BUILDER=podman ...
https://github.com/juju/juju/pull/16380Add support for ARM shapes on Oracle OCI https://github.com/juju/juju/pull/16277
Remove the last occurences of ComputedSeries https://github.com/juju/juju/pull/16296
Bump critical packages + add mantic https://github.com/juju/juju/pull/16426
Add system identity public key to authorized_keys on new model configs https://github.com/juju/juju/pull/16394
Export Oracle cloud models with region set from credentials https://github.com/juju/juju/pull/16467
Missing oracle cloud regions https://github.com/juju/juju/pull/16287
๐ ๏ธ Fixes:
Enable upgrade action. Fix โbuild-agent juju root finding. https://github.com/juju/juju/pull/16354
Try and ensure secret access role bindings are created before serving the config to the agent https://github.com/juju/juju/pull/16391
Fix dqlite binding to ipv6 address. https://github.com/juju/juju/pull/16392
Filter out icmpv6 when reading back ec2 security groups. https://github.com/juju/juju/pull/16383
Prevent CAAS Image Path docker request every controller config validation https://github.com/juju/juju/pull/16365
Fix controller config key finding in md-gen tool. https://github.com/juju/juju/pull/16411
Fix jwt auth4jaas https://github.com/juju/juju/pull/16431
See the full list in the milestone page , github full changelog
โญ Juju 3.2ยถ
Caution
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ยถ
Caution
Juju 3.1 series is EOL
๐ธ 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 Jul 2024
๐ ๏ธ Fixes:
Fix CVE-2024-6984
See the full list in the milestone page .
๐ธ Juju 3.1.8ยถ
๐๏ธ 12 Apr 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ยถ
๐๏ธ 10 Apr 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 3.0ยถ
Caution
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:
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 2032: expected end of security fix support
๐ธ Juju 2.9.52 - 07 July 2025ยถ
๐ ๏ธ Fixes:
Fix CVE-2025-0928
Fix CVE-2025-53512
Fix CVE-2025-53513
fix: 2.9 pki for go 1.24.4 by @jameinel in https://github.com/juju/juju/pull/19972
fix(apiserver): avoid splitting untrusted data by @jub0bs in https://github.com/juju/juju/pull/18970
fix: static-analysis by @jack-w-shaw in https://github.com/juju/juju/pull/19353
See the full list in the milestone page .
๐ธ 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 Jul 2024
๐ ๏ธ Fixes:
Fix CVE-2024-6984
See the full list in the milestone page .
๐ธ Juju 2.9.49ยถ
๐๏ธ 8 Apr 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 Jul 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 Mar 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 Jan 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"
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.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.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 Sep 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 Sep 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 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ยถ
๐๏ธ 3 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ยถ
๐๏ธ 6 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ยถ
Caution
Juju 2.8 series is EOL
๐ธ Juju 2.7ยถ
Caution
Juju 2.7 series is EOL
๐ธ Juju 2.6ยถ
Caution
Juju 2.6 series is EOL
๐ธ Juju 2.5ยถ
Caution
Juju 2.5 series is EOL
๐ธ Juju 2.4ยถ
Caution
Juju 2.4 series is EOL