Very well put in you post.
A crisp observation is this:
In my view, two fundamental strengths of ansible (which we can learn from) are:
- It’s really platform agnostic = reaches large user bases.
- It’s lightweight agent = can be used on computers with limited access to fancy software.
Juju miss out on these points I argue. Let’s look at it:
1: Juju supports Ubuntu. Even if it’s possible to get the juju agent to run on other distros,
the charm ecosystem has almost nothing to offer. If you use 'charm create - t ’ it will never create a bulk charm that deploys on centos for example. This is because both charm-helpers and layer-basic are broken with anything that does not use ‘apt’ as package manager. Also, juju rotates around the ‘ubuntu’ user which becomes awkward when running on a centos system. I have to prep my models for centos with injection of a ‘ubuntu’ user which also needs to be consistent on UID/GID.
What if juju came to run smooth on at least any Linux distro and we made an effort to get the most core charms be truly agnostic. The “snap” package system could be helpful here but more generally, a general/agnostic support of package managers would be what’s missing… Examples are opkg, npm, snap, yum, etc Yeah, and introduce the ‘juju’ user that has a user-home dir which is not at /home is probably also critical. I could even argue it’s not posix compliant (Ubuntu is not a person and should probably not be living in /home). I case where this matters is when systems have home directories mounted over nfs. juju ssh myunit/0 will stop working and you effectively lose your ability to login.
2: Lightweight juju?
I will admit I’m not sure how the juju agent is consuming resources. But I would guess it’s rough.
Even if I’m wrong (which I hope) I want to see if it can be used to deploy stuff on IOT devices. Starting with Rpi, NVIDIA Jetson, etc. I would like to be able to deploy ROS2 robots with juju. I would also want to be able to run juju on openWRT switches and LEDE which uses opkg package managers. Linux embedded systems are desperate for a orchestration tool.
Does anyone know of a juju agent that runs on Rpi?