maas-devel team mailing list archive
-
maas-devel team
-
Mailing list archive
-
Message #00571
Re: DHCP packaging
(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
Follow ups
References