[Maas-devel] DHCP packaging

Andres Rodriguez andres.rodriguez at canonical.com
Fri Sep 21 13:36:46 UTC 2012


> One thing that's really bothering me is our special-cased "master" DHCP which 
> only exists to deal with the previous case of everything being installed a-la 
> Cobbler on a single machine.  This causes some friction at installation time 
> because at the moment maas-dhcp will call "maas config_master_dhcp" which we 
> don't want to happen for clusters.
> 
> I am thinking that we change this around a little when we start the upstream 
> work on task routing so that we have a celery worker for maas-dns and a 
> separate one for maas-dhcp.
> 
> This would remove the concept of a "master" DHCP entirely and let us have a 
> totally generic cluster-controller that you can install on the master or 
> anywhere else.  This would obviate the need for the maas-dhcp package and 
> require the user to set up DHCP details in the UI or API.
> 
> The only fly in this ointment is how to migrate from 12.04 installations.
> 
> Thoughts?

The question is, are we always going to use DHCP server in the cluster
controller? If we are considering the scenario that we would not, as we
will use external DNS/DHCP, then I think is important to keep a
maas-dhcp package.

I, however, think there should not be any difference in configuring the
DHCP server in the cluster controller, or in the all-in-one server.

Upgrades from 12.04 should be simply enough. See at the end.

> I don't think another branch is a good idea, it will be a lot more work to 
> maintain it.  Stacking is just a storage optimisation, not a magic way to 
> propagate changes to dependent branches.

I mentioned having a different packaging branch momentarily, as doing
the packaging split in "packaging trunk" will mean that we wont be able
to easily apply and release fixes to pre-split packages. Other idea
might be to simply create something like packaging.presplit branch to
handle the above if the need to use it arises.

> 
> maas
>  Depends: python-django-maas, maas-region-controller
>  Recommends: maas-dns
>  Suggests: maas-cluster-controller

Now, in order to handle upgrades correctly, we need to consider the fact
that 12.04 is an all-in-one installation. This means that the upgrade
should also be to an all-in-one installation. We cannot leave
maas-cluster-controller aside (a Suggests) because we will end up with a
'broken' MAAS forcing the administrator to install a new machine with
maas-cluster-controller, or forcing him to manually install it
(something that he probably doesn't want to do). This means that 'maas'
will become a meta-package that will install:

Depends: python-django-maas, maas-region-controller,
maas-cluster-controller
Recommends: maas-dns, maas-dhcp (Maybe even become a suggests)

So basically, if someone installs 'maas' from now own, is because he
wants an all-in-one, single server MAAS.

Now, 'maas-region-controller' should install the WebUI, wsgi, etc, etc.

Furthermore, I think it is important to separate 'maas-dhcp', given that
if the administrator doesn't want to manage DNS/DHCP with maas, then he
shouldn't need to have isc-dhcp-server as a Depends of
maas-cluster-controller. Note that Depends is required in order for the
package/software to work. A Recommends enhances the functionality of it.
In this case, maas-cluster-controller should not Depend on
isc-dhcp-server if we have an all-in-one installation and we don't want
to manage DHCP.

Cheers.





More information about the Maas-devel mailing list