List of Operating Systems to `juju deploy`?

Where can I see what operating systems i can deploy with Juju?

I know I can juju deploy ubuntu, but what are the other OSes that I can do that as well?

If I create my own OS, what do I need to do to make it deployable with Juju?

1 Like

‘juju deploy ubuntu’ is an unfortunate deployment name as the charm-name Ubuntu is not a OS. The charm ubuntu is a empty charm which just happens to deploy on-top-of a Ubuntu series (os).

Juju deploys charms on machine flavours referred to series. This is likely what you need to know.

A charm declares what series they support in metadata.yaml

Typically juju supports Ubuntu (all versions) primarily. Kubernetes, centos6, centos7 & centos8. But anything but Ubuntu would require some special maneuvers to work.

I can possibly point you to the right way if you have some special needs here.

Hello, @heitor. Thank you for the question!

juju deploy ubuntu is actually just a reference to the ‘ubuntu’ charm, which is a very basic charm that is mainly useful for testing purposes.

The ‘proper’ way to deploy a machine for a given os is juju add-machine --series focal. Replace ‘focal’ with ‘centos’, or ‘bionic’, or the name of some other cloud image.

Getting to the list of images available for your cloud is trickier, as juju is doing some abstraction to translate the cloud’s list of flavors/images/etc into something that you can use across clouds, and that abstraction isn’t exposed to a Juju operator at present. You usually have to go into the cloud provider’s tools, and take a look at images available for that cloud. Not all images are automatically available in Juju, however.


Thanks for the answers!

I’m still a bit confused. I tried to add a centos machine with juju add-machine lxd --series centos and got a machine in state. The only series that worked for me (in my local lxd cloud) is focal. I did not try the other Ubuntu variants though.

I thought the list of LXC images would work, but apparently only the Ubuntu flavors work?

Here’s the result after juju add-machine lxd --series <foo>:

$ juju status
Model        Controller  Cloud/Region         Version  SLA          Timestamp
centos-test  cthulhu     localhost/localhost  2.8.8    unsupported  11:01:08-03:00

Machine  State    DNS            Inst id              Series           AZ  Message
0        down                    pending              centos8-stream       no matching agent binaries available
0/lxd/0  pending                 pending              centos8-stream
1        down                    pending              centos8-stream       no matching agent binaries available
2        down                    pending              centos/8-stream      no matching agent binaries available
3        down                    pending              centos/8             no matching agent binaries available
4        down                    pending              centos               no matching agent binaries available
5        down                    pending              centos               no matching agent binaries available
5/lxd/0  pending                 pending              centos
6        started  juju-30fdeb-6        focal                Running
6/lxd/0  pending                 juju-30fdeb-6-lxd-0  focal                Container started
7        down                    pending              ubuntu/focal         no matching agent binaries available
7/lxd/0  pending                 pending              ubuntu/focal
8        down                    pending              alpine               no matching agent binaries available
1 Like

Deploying centos series (or any other distro other than Ubuntu) is (and has always been) requiering some additional fix-and-trix.

I deploy alot to centos and use maas & lxd as clouds.

Which cloud are you on?

I’m testing on a localhost lxd cloud

In this case you need to equip your lxd cloud with a centos cloud image (need to support cloud-unit) and give it an image alias which conforms with what juju expects:



There are centos lxd images which you can first deploy to your lxd, then give them the alias above. Or you can roll your own…

Hope it helps. Here are a few images…

1 Like