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?
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?
‘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 10.220.130.35 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
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:
centos/7/amd64
centos/8/amd64
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…