@jamesbeedy gives a nice answer
Straight up, the use of charms offers an advantage over Helm charts as they work at a higher level of abstraction. Instead of having to deal with volumes, volume mounts, config map and all the low level boiler plate, you use the Juju storage modelling for setting up mounted volumes; the charm provides a nice way of defining and generating user customisable workload config at specified locations etc. Plus there’s the standard Juju syntax for constraints (mapped to resource limits), placement (mapped to node affinity) and now also devices (GPU).
By modelling the OCI (docker) images as resources, you also gain the nice benefits of controlled and deterministic publication of the tuple of image and charm; repeatable deployments etc. The charm store hosts both charm and image making offline/enterprise on prem deployments easier to set up.
Syntactic sugar aside, the real power of Juju comes into play in the same way as it does for cloud based deployments. A model based approach for managing complex workloads. And cross platform integration where containerised and non-containerised workloads can be deployed and managed across substrates. Kubernetes is great, but its current state of evolution reminds us of how things looked a few years back when everyone started jumping across to the cloud - problems exist which weren’t obvious at the time as people start started piling on and getting stuff working.
The mariadb/gitlab example is just an initial “hello world” thing. We plan on publishing more compelling deployment stories, especially around ML/AI workflows etc. @carmine-rimi is working hard on that. But imagine modelling an ML/AI solution with integration to version control, CI/CD, storage or other services located on external clouds etc.
The initial public release will be with Juju 2.5 in the coming weeks. You can use all of the stuff documented to date on this forum with the 2.5 edge snap.
The next cycle roadmap is being planned this week. We are considering features such as
- bootstrap straight into Kubernetes without needing an external controller
- integration of public GKE, AKS, EKS, with JAAS
- support for actions
- bundle support
- on-prem /private charm store / image repository