[Maas-devel] DHCP packaging

Julian Edwards julian.edwards at canonical.com
Fri Sep 21 03:26:12 UTC 2012


(this turned out to be a longer email than expected but please read to the end 
as I am proposing some changes based on a problem I can see right now)

On Thursday 20 September 2012 09:13:44 Andres Rodriguez wrote:
> Hi Julian,
> 
> > So, what I am proposing is to properly put DHCP-specific files into the
> > maas- dhcp package and make maas depend on maas-dhcp (rather than the
> > other way around).
> 
> maas Recommends maas-dhcp as it is not required to be installed because
> we can still use external DNS/DHCP. However, it does get installed by
> default.

Right.

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?

> Now, given that maas installs maas-provision, that's the reason why
> maas-dhcp depends on maas.

I don't understand why this relationship is done like that. :(

> > Does this sound OK?  If so, can you give me some hints please as I am not
> > a
> > seasoned packager :)
> 
> Now, in order to get the cluster-controller, region-controller etc, we
> need to make several packaging changes. After talking to Raphael, I
> think a good start would be:
> 
>  * maas
>    - Depends: python-django-maas, python-maas-provisioningserver,
> maas-region-controller, maas-cluster-controller
>  * python-django-maas
>    - Installs: src/maasserver, src/metadataserver
>  * python-maas-provisioningserver
>    - Installs: src/provisioningserver
>  * maas-region-controller:
>    - Installs: maas-txlongpoll upstart job, installs DB, installs
> apache2, etc.
>    - Depends: python-django-maas, python-maas-provisioningserver
>  * maas-cluster-controller
>    - Installs: maas-pserv, maas-celery upstart job
>    - Depends: python-maas-provisioningserver
> 
> Now, I think it would be a good idea to create a different packaging
> branch, such as: lp:~maas-maintainers/maas/packaging.cluster, which is
> stacked on top of lp:~maas-maintainers/maas/packaging, so others can
> work on it and we can also benefit from fixes that hit the packaging
> branch.

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.

So, given my comments above, here's my proposed packaging setup:

=========
Remove maas-dhcp.

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

python-django-maas
 Installs: src/maasserver, src/metadataserver

python-maas-provisioningserver
 Installs: src/provisioningserver

maas-region-controller
 Depends: python-django-maas, python-maas-provisioningserver
 Installs: maas-txlongpoll upstart job, installs DB, apache2, etc.

maas-cluster-controller
 Depends: python-maas-provisioningserver, isc-dhcp-server
 Installs: maas-pserv, maas-celery upstart job (enlistment wrapper)

maas-cli
 Installs: src/apiclient
==========

Thoughts?

Cheers
J




More information about the Maas-devel mailing list