maas-devel team mailing list archive
-
maas-devel team
-
Mailing list archive
-
Message #00593
Re: DHCP packaging
On Friday 21 September 2012 09:36:46 Andres Rodriguez wrote:
> > 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.
Ok fair enough.
>
> 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.
I'm not sure I understand, let's chat on IRC so I can work it out.
>
> > 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.
Right, that's pretty much what I was thinking too, but I suspect I got my
proposal wrong :)
>
> 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.
It sounds like a Suggests is more appropriate based on the documentation I've
seen for Suggests vs Recommends (the latter being more of a strong dependency
that is used except in unusual cirumstances).
(Especially since I think the default is to install Recommends: unless
explicitly disabled?)
> 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.
Right! Given that, here's the new proposal:
=======
maas
Depends: python-django-maas, maas-region-controller
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
Installs: maas-pserv, maas-celery upstart job (enlistment wrapper)
Suggests: maas-dns, maas-dhcp
maas-dhcp
Depends: isc-dhcp-server
(Virtual package, configures DHCP in postinst)
maas-dns
Depends: bind9, maas-dhcp
(Virtual package, sets up /etc/bind/maas etc)
maas-cli
Installs: src/apiclient
========
My only remaining packaging question, as an incompetent packager, is how to
split the existing file installation up between -region and -cluster packages.
Cheers.
Follow ups
References