[OpenStack][Foreman][MAAS][Juju][Kubernetes][Docker] OpenStack deployment on Bare Metal

Alex Kavanagh alex.kavanagh at canonical.com
Fri May 24 10:35:37 UTC 2019

Hi Jayachander

I thought I'd have a go at answering your questions, but (please note) that
I'm doing so from the perspective of only having worked on the "Canonical"
stack, so I can't answer with respect to other deployment stacks, so
obviously read the replies with respect to that.

So the Canonical OpenStack is called "CDO" meaning "Canonical Distribution
of OpenStack": you can get a fully supported installation at
https://www.ubuntu.com/openstack, but also DIY with all the bits of
software is very, very, possible, as everything is Free Software/Open

So the Stack is MaaS running the servers, using Juju to deploy and manage
the lifecycle of OpenStack:

On Tue, May 21, 2019 at 4:42 PM Jay See <jayachander.it at gmail.com> wrote:

> Hi,
> I am trying to deploy OpenStack cloud , before proceeding with deployment
> I wanted to take suggestion from people using some of these technologies.
> *Setup / plan:* I will be deploying OpenStack cloud using 3 nodes
> (servers), later on I will be adding more nodes. I want automatically
> install and provision the OS on the new nodes. I want scale up my cloud
> with new nodes in near future. If there are any issues in existing
> OpenStack, I would like to fix them or patch the fixes without much
> trouble. (I might be using wrong terminology - sorry for that)

3 nodes for a full, production, deployment might be a bit tight.  However,
if this is just exploration, then it would be an acceptable starting
point.  Most of the CDO OpenStack Juju bundles start at 4 machines.

> 1. Which tool is better for Bare Metal OS installation?
>      I have looked around and found Foremen and MaaS. All the servers we
> are going to deploy will be running on Ubuntu (16.04 /18.04 LTS). If you
> have any other suggestions please let me know.

Well, I'd obviously say MaaS (https://maas.io/)  :)  MaaS itself needs a
small server for itself exclusive of the nodes, if you'd like the hardware
managed in that form.  This means that for a 3 node cluster, you'd need a
4th machine for MaaS itself to run on.

> 2. Do you suggest me to use Juju to deploy the OpenStack or do all the
> manual installation for the OpenStack as mentioned in OpenStack
> installation guide?

So that depends on what you are trying to achieve.  The Juju OpenStack
charms work together to install and configure OpenStack to provide an (up
to and including an HA) solution.   They take a coordinated view on how to
configure a system (including a set of defaults that the OpenStack charms
team have arrived at as provided solid solutions), and offer some higher
level config values (in the charms) to modify those systems.

The charms also deal with upgrading OpenStack systems between versions and
generally deal with most of the lifecycle stuff.  MaaS, Juju and the charms
are very much "managing" the system with you; you are not configuring
individual config files on nova, neutron, ceph, rabbitmq-server, vault,
barbican, swift, etc.

It could feel constraining, as you can't go in and change individual config
files, but the charms solution is designed to work as a 'set'.

> 3. I am bit confused about choosing Kubernetes. If I am going with Juju,
> can I still use Kubernetes? If yes, if there any documentation please guide
> me in right direction.

I'm not entirely sure what you mean here?  Do you mean "running Kubernetes
alongside OpenStack for other users to use docker on the same hardware", or
"running the OpenStack control plane in kubernetes/docker"?

If you mean the former:

There are a set of charms that do Kubernetes (or K8s as it's often called)
that work with Juju / MaaS.  So kubernetes can be installed/managed by Juju
on a MaaS cluster.  This model (as Juju deployments are called) can be run
alongside other models, and CDO is also a Juju model.  More info here:

If you mean the latter (i.e. running the control plane in containers), then
Juju charms take a different approach.  Many of the services can be run in
LXD containers, so that multiple control plane services can be run on the
same physical server.  The Juju tool knows how to 'talk' to MaaS and LXD to
seamlessly run charms inside containers.

> 4. I was thinking of going with OpenStack installation over Kubernetes. Is
> this a right decision?
> or
> Do I need to do some research between Kubernetes and Docker, find out
> which one is better?
> or
> Just install OpenStack without any containers.

Or MaaS + Ubuntu 18.04 machines with LXD + Juju + OpenStack charms -- gives
you services in LXD containers :)

> 5. I could not find installation of OpenStack with Kubernetes or Docker.
> If you know something, could you share the link?
> I don't have bigger picture at the moment. If some tools might help in
> near future. or If you can give any other suggestions, please let me know.

Well, configuring OpenStack is pretty complicated :) And that's because
there is a lot there.  There are multiple ways of configuring it, and there
is also the Ansible installation, Docker (kolla), and TrippleO.   Please
see here for more details: https://docs.openstack.org/stein/deploy/

For further details on deploying Maas, Juju and the OpenStack charms, then

1. Welcome to the OpenStack charm guide:
2. OpenStack Charms Deployment Guide:

Also, feel free to come to #openstack-charms on Freenode where there are
always devs/support for the OpenStack charms available.

Hope this helps,
Best regards

> Thanks and Best regards,
> Jayachander.

Alex Kavanagh - Software Engineer
OpenStack Engineering - Data Centre Development - Canonical Ltd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20190524/d398ff18/attachment.html>

More information about the openstack-discuss mailing list