Skip to content

juju

v4.0.12 Feature

This release adds 5 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

containers devops go juju kubernetes operations

Affected surfaces

deps

Summary

AI summary

Broad release touches fix, chore, feat, and deps.

Full changelog

The Juju team is proud to release Juju 4.0.12!

This is a point release to the stable 4.0 series of Juju.

Checkout the Juju 4.0.12 Release Notes

What's Changed

  • docs: set up multi-version sitemaps by @tmihoc in https://github.com/juju/juju/pull/22298
  • chore: increment juju to 2.9.59 by @jujubot in https://github.com/juju/juju/pull/22328
  • docs: add 2.9.58 release notes by @wallyworld in https://github.com/juju/juju/pull/22338
  • chore: increment juju to 2.9.60 by @jujubot in https://github.com/juju/juju/pull/22370
  • docs: add 2.9.59 release notes by @wallyworld in https://github.com/juju/juju/pull/22379
  • docs: update binary download links from Launchpad to GitHub releases by @tmihoc in https://github.com/juju/juju/pull/22443
  • build(docs): align 2.9 doc infrastructure with 3.6 by @tmihoc in https://github.com/juju/juju/pull/22448
  • chore(deps): bump golang.org/x/crypto from 0.50.0 to 0.51.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22420
  • chore(deps): bump golang.org/x/mod from 0.35.0 to 0.36.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22421
  • chore(deps): bump golang.org/x/net from 0.53.0 to 0.54.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22422
  • docs: clarify secret uri, name, label by @tmihoc in https://github.com/juju/juju/pull/21689
  • docs: add 3.6.23 release notes by @wallyworld in https://github.com/juju/juju/pull/22462
  • chore(deps): bump golang.org/x/tools from 0.44.0 to 0.45.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22463
  • chore(deps): bump golang.org/x/sys from 0.44.0 to 0.45.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22474
  • chore(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22483
  • chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 by @dependabot[bot] in https://github.com/juju/juju/pull/22484
  • feat(maas): support explicit VM provisioning via virtual-machine virt-type by @wallyworld in https://github.com/juju/juju/pull/22285
  • fix: change how k8s unit churn is detected to avoid incorrect status by @wallyworld in https://github.com/juju/juju/pull/22498
  • fix: do not drop root disk constraints when custom networking by @skatsaounis in https://github.com/juju/juju/pull/22473
  • chore(deps-dev): bump pytest from 8.4.1 to 9.0.3 in /testcharms/charms/credential-get-k8s by @dependabot[bot] in https://github.com/juju/juju/pull/22231
  • chore(deps): bump requests from 2.32.5 to 2.33.0 in /testcharms/charms/credential-get-k8s by @dependabot[bot] in https://github.com/juju/juju/pull/22147
  • chore(deps): bump pygments from 2.19.2 to 2.20.0 in /testcharms/charms/credential-get-k8s by @dependabot[bot] in https://github.com/juju/juju/pull/22142
  • chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /testcharms/charms/credential-get-k8s by @dependabot[bot] in https://github.com/juju/juju/pull/22039
  • chore(deps): bump urllib3 from 2.5.0 to 2.6.3 in /testcharms/charms/credential-get-k8s by @dependabot[bot] in https://github.com/juju/juju/pull/21837
  • fix: properly handle legacy k8s modeloperator labels by @wallyworld in https://github.com/juju/juju/pull/22510
  • fix(apiclient proxy): fix apiclient http transport proxy by @SimoneDutto in https://github.com/juju/juju/pull/22507
  • fix(status): restore k8s application address in status by @jack-w-shaw in https://github.com/juju/juju/pull/22459
  • fix: wait for workerpool to become idle by @iyiguncevik in https://github.com/juju/juju/pull/22494
  • chore: increment juju to 4.0.12 by @jujubot in https://github.com/juju/juju/pull/22508
  • Fix snap configure hook in 3.6 by @TheJJ in https://github.com/juju/juju/pull/22495
  • feat(uniter): move secret deletions into CommitHookChanges transaction by @gfouillet in https://github.com/juju/juju/pull/22465
  • fix: presence status reporting for container placement by @nvinuesa in https://github.com/juju/juju/pull/22519
  • fix(credential): validate auth type against cloud on CheckCredentialModels by @iyiguncevik in https://github.com/juju/juju/pull/22512
  • fix: ensure external controller addresses are always migrated by @wallyworld in https://github.com/juju/juju/pull/22518
  • docs: update the peer relation hook doc by @wallyworld in https://github.com/juju/juju/pull/22525
  • feat: httpclient metrics by @SimonRichardson in https://github.com/juju/juju/pull/22535
  • feat: migration export/import ddl by @nvinuesa in https://github.com/juju/juju/pull/22391
  • feat: consistently show offer connections by @kian99 in https://github.com/juju/juju/pull/22541
  • feat: add missing indexes and PKs by @manadart in https://github.com/juju/juju/pull/22502
  • chore: merge 2.9 by @wallyworld in https://github.com/juju/juju/pull/22536
  • fix: include trailing / in oci repo paths when needed by @wallyworld in https://github.com/juju/juju/pull/22554
  • docs: add UUID generation rule to AGENTS.md by @nvinuesa in https://github.com/juju/juju/pull/22446
  • chore: remove some LXD profile funcitonality by @manadart in https://github.com/juju/juju/pull/22548
  • fix: handle slow upload of k8s oci image metadata by @wallyworld in https://github.com/juju/juju/pull/22553
  • docs(releasenotes): add juju 4.0.11 release notes by @anvial in https://github.com/juju/juju/pull/22542
  • test: avoid introspection shutdown log race by @iyiguncevik in https://github.com/juju/juju/pull/22528
  • fix(deps): bump Go 1.26.4 to resolve govulncheck failures by @gfouillet in https://github.com/juju/juju/pull/22561
  • fix: transaction retry issues by @SimonRichardson in https://github.com/juju/juju/pull/22562
  • fix(unmanaged): implement Schema() to satisfy ModelConfigProvider interface by @gfouillet in https://github.com/juju/juju/pull/22514
  • fix: token transport for bearer token auth had a typo by @wallyworld in https://github.com/juju/juju/pull/22569
  • chore: merge 2.9 by @wallyworld in https://github.com/juju/juju/pull/22556
  • fix(cmr): offerer relations watcher initial query by @nvinuesa in https://github.com/juju/juju/pull/22566
  • fix(unitstate): prevent panic when charm state is empty at commit time by @gfouillet in https://github.com/juju/juju/pull/22531
  • fix(deployer): gate deployer on controlleragentconfig socket readiness by @gfouillet in https://github.com/juju/juju/pull/22515
  • fix: flakey client test by @jack-w-shaw in https://github.com/juju/juju/pull/22506
  • JUJU-9033: Move secret grant/revoke into CommitHookChanges txn by @gfouillet in https://github.com/juju/juju/pull/22544
  • feat(modelmigration): implement source-side domain service and state by @nvinuesa in https://github.com/juju/juju/pull/22555
  • feat(static-analysis): add check to guard against dodgy txn retries by @jack-w-shaw in https://github.com/juju/juju/pull/22564
  • feat(modelmigration): implement model migration domain watchers by @nvinuesa in https://github.com/juju/juju/pull/22559
  • feat: re-enable migrate check by @jack-w-shaw in https://github.com/juju/juju/pull/22581
  • feat: compatibility shim for ModelUpgrader facade by @manadart in https://github.com/juju/juju/pull/22488
  • fix: add model tag to JWT AuthInfo by @kian99 in https://github.com/juju/juju/pull/22598
  • fix: use the model's project when checking LXD version on upgrade by @nvinuesa in https://github.com/juju/juju/pull/22591
  • feat: handle logsink 503 failure by @SimonRichardson in https://github.com/juju/juju/pull/22590
  • chore: remove unused types by @jack-w-shaw in https://github.com/juju/juju/pull/22603
  • refactor: smoke matrix tests by @SimonRichardson in https://github.com/juju/juju/pull/22608
  • fix(externalcontrollerupdater): close watcher client on shutdown race by @nvinuesa in https://github.com/juju/juju/pull/22607
  • chore: merge 2.9 by @wallyworld in https://github.com/juju/juju/pull/22609
  • feat(migration): add serialized model v2 export contract by @nvinuesa in https://github.com/juju/juju/pull/22601
  • feat(uniter): move track-latest-secret into CommitHookChanges transaction by @gfouillet in https://github.com/juju/juju/pull/22580
  • fix(migration): import application storage directives by @jack-w-shaw in https://github.com/juju/juju/pull/22615
  • fix: when upgrading, allow for the controller app to be missing by @wallyworld in https://github.com/juju/juju/pull/22622
  • chore: update premerge workflows by @wallyworld in https://github.com/juju/juju/pull/22623
  • test!: refactor juju to use canonical/gomock by @hpidcock in https://github.com/juju/juju/pull/22449
  • feat: support adding manual clouds to a controller by @wallyworld in https://github.com/juju/juju/pull/22570
  • feat(resource): add model migration export listing by @nvinuesa in https://github.com/juju/juju/pull/22613
  • feat: add ModelConfigSchema method to Cloud by @SimoneDutto in https://github.com/juju/juju/pull/22600
  • refactor: drop custom pprof handlers by @SimonRichardson in https://github.com/juju/juju/pull/22619
  • docs: expand the documentation for the implicit juju-info relation by @tonyandrewmeyer in https://github.com/juju/juju/pull/22373
  • fix: guard against cloud init overwriting agent.conf on reboot by @wallyworld in https://github.com/juju/juju/pull/22632
  • fix(deps): eliminate github.com/juju/utils/v3 indirect dependency (GO-2025-3798) by @gfouillet in https://github.com/juju/juju/pull/22582
  • fix: 3.6 → 4.0 migration fails due to missing subnet (JUJU-9647) by @gfouillet in https://github.com/juju/juju/pull/22605
  • feat(modelmigration): add controller export helpers by @nvinuesa in https://github.com/juju/juju/pull/22614
  • fix: db repl by @SimonRichardson in https://github.com/juju/juju/pull/22635
  • feat: include workload version in history logging by @manadart in https://github.com/juju/juju/pull/22648
  • fix(ci): use branch-built operator image in upgrade smoke by @iyiguncevik in https://github.com/juju/juju/pull/22640
  • refactor: wire the migration master worker with the modelmigration domain by @nvinuesa in https://github.com/juju/juju/pull/22636
  • test: goroutine leak profile by @SimonRichardson in https://github.com/juju/juju/pull/22618
  • Docs migrate 36 by @tmihoc in https://github.com/juju/juju/pull/22644
  • feat: tla+ spec for object store state machine by @SimonRichardson in https://github.com/juju/juju/pull/22530
  • fix: correct JOIN condition in secret content deletion queries by @gfouillet in https://github.com/juju/juju/pull/22656
  • Docs migrate 40 by @tmihoc in https://github.com/juju/juju/pull/22645
  • chore: increment juju to 3.6.25 by @jujubot in https://github.com/juju/juju/pull/22633
  • chore: pin github actions to specific shas by @wallyworld in https://github.com/juju/juju/pull/22631
  • feat(modelmigration): wire SourceControllerInfo through domain service by @nvinuesa in https://github.com/juju/juju/pull/22653
  • feat: prevent 4.0 -> 4.0 migrations by @nvinuesa in https://github.com/juju/juju/pull/22659
  • feat: limit size of charm config and relation settings by @manadart in https://github.com/juju/juju/pull/22664
  • fix: ensure Dqlite clients are closed by @manadart in https://github.com/juju/juju/pull/22672
  • feat: move secret updates into CommitHookChanges transaction by @gfouillet in https://github.com/juju/juju/pull/22651
  • feat(migration): exchange admin password for macaroon during prechecks by @nvinuesa in https://github.com/juju/juju/pull/22675
  • docs: add SQL query rules for agents by @nvinuesa in https://github.com/juju/juju/pull/22677
  • perf(add-model): add-model in lxd by @SimoneDutto in https://github.com/juju/juju/pull/22657
  • chore: merge 3.6 by @wallyworld in https://github.com/juju/juju/pull/22646
  • fix: upgrade-controller with --build-agent by @manadart in https://github.com/juju/juju/pull/22689
  • fix(snap): add FIDO/U2F security key support for juju ssh by @iyiguncevik in https://github.com/juju/juju/pull/22676
  • fix: flaky cmr test by @iyiguncevik in https://github.com/juju/juju/pull/22695
  • chore: remove redundant missing test coverage inventories by @manadart in https://github.com/juju/juju/pull/22654
  • fix: preserve app constraints without model defaults by @nvinuesa in https://github.com/juju/juju/pull/22703
  • refactor: CODEOWNERS to reflect org changes by @SimonRichardson in https://github.com/juju/juju/pull/22705
  • fix: use errors.Is to detect reboot/shutdown sentinels in machine agent by @iyiguncevik in https://github.com/juju/juju/pull/22708
  • fix(lxd): resolve container NIC bridges from ProviderNetworkId so space subnets are attached again by @nvinuesa in https://github.com/juju/juju/pull/22714
  • fix(ci): ci job for conflict notifications by @iyiguncevik in https://github.com/juju/juju/pull/22722
  • fix(relation): return remote-app units in ApplicationRelationsInfo for non-peer relations by @gfouillet in https://github.com/juju/juju/pull/22720
  • chore: update deps for vuln GO-2026-5224 by @iyiguncevik in https://github.com/juju/juju/pull/22739
  • ci: fix mattermost notification channel by @iyiguncevik in https://github.com/juju/juju/pull/22737
  • fix: network-get returning empty placeholder device by @jack-w-shaw in https://github.com/juju/juju/pull/22726

New Contributors

  • @skatsaounis made their first contribution in https://github.com/juju/juju/pull/22473
  • @TheJJ made their first contribution in https://github.com/juju/juju/pull/22495

Full Changelog: https://github.com/juju/juju/compare/v4.0.11...v4.0.12

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track juju

Get notified when new releases ship.

Sign up free

About juju

Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).

All releases →

Related context

Beta — feedback welcome: [email protected]