The Juju Insider: Mongoless Beta

:zap: TL;DR

  • Juju 4.0-beta6 was shipped on August 11, 2025.
  • MongoDB is fully removed from the codebase and state layer.
  • Beta proves an end-to-end Kubernetes path: bootstrap → model → deploy PostgreSQL-k8s → deploy PostgreSQL-test-app → integrate.
  • Not in this beta: CMRs, Actions, Migrations, non-k8s storage, charm updates.
  • We are currently collecting feedback and aim to release 4.0 soon.

We cut 4.0-beta6 on August 11, 2025. It focuses on a single, clear journey with Kubernetes. You bootstrap a controller, create a workload model, deploy the PostgreSQL-k8s charm with Kubernetes storage, deploy the PostgreSQL-test-app charm, and integrate them. The scope is narrow by design, allowing us to exercise the new state layer without interference.

Over the last two years, we removed all MongoDB dependencies and rewrote Juju’s state. That shrinks operational overhead and makes the system easier to understand. It also sets us up for performance work and a safer return of advanced features. This beta marks the moment when the new foundation begins to carry real workloads.

The beta covers Kubernetes bootstrap and model ops, the two PostgreSQL charms, and their integration. The scenario to test:

#1 Bootstrap a controller on the Kubernetes cluster
#2 Create a workload model. 
#3 Deploy the PostgreSQL-k8s charm with Kubernetes storage 
#4 Deploy the PostgreSQL-test-app charm 
#5 Integrate them

:construction: What doesn’t work or isn’t tested?

Features like cross-model relations, actions, migrations, non-Kubernetes storage, and charm updates are pending for now. They will be back in Juju 4.

:raised_hands: On the record: team highlights

Early feedback matters. A huge shout-out to @taurus as he helped as an alpha tester and prepared the PostgreSQL charms so they are ready for 4.0-beta6. That work lets us test real integrations instead of toy examples.

Many thanks to everyone across the Juju team for the precise planning, the steady crunching, and the fantastic engineering that brought us here. This isn’t the end; we’re very close. Let’s keep the pace and land 4.0!

:soon: What’s next

Please run the beta on your Kubernetes clusters and let us know what breaks and what works well. File bugs, and include performance notes. We’ll prioritise fixes that block the 4.0 path and make clear calls on scope if high-cost edge cases appear. In parallel, we’re tightening documentation, upgrading guidance, and conducting a comprehensive CI of the full Juju feature set for Juju 4.0 launch.

Questions or blockers? Ping us in chat!

PS: sudo snap refresh juju --channel=4.0/beta

12 Likes

Congrats on an excellent milestone, its great to see the progress.

1 Like

We, at Charm Tech, had added Juju 4/beta into our CI for the most basic, bare-bones test before this beta release, and when that rolled in, our tests began to time out.

Somehow, destroying the model gets stuck in K8s.

We’re working around this by a timeout on the specific step, as job-wide timeout is only applicable to custom/self-hosted runners and not GitHub’s own runners :rofl:

Charmers may want to adopt something similar.

Workflow code

CI runs

1 Like

Thx for the feedback! That is the known issue during beta preparation, as the “model removal” and “application removal” code is in the process of migration.

One of the last PRs (before the beta release) addressed some aspects of this issue, but perhaps not all of them.

P.S.: For some tests, the workaround may be to kill the controller.