On Sun, Jun 22, 2014 at 2:27 PM, Dennis Gilmore <dennis@xxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On Sun, 22 Jun 2014 05:05:36 -0700 > Colin Walters <walters@xxxxxxxxxx> wrote: > >> On Wed, Jun 18, 2014, at 01:49 PM, Dennis Gilmore wrote: >> > >> > The issue is we are trying to build one image to run in all clouds, >> > so cloud provider specific tools are out. >> >> I faced a similar problem with the images I am generating with ostree, >> and what I ended up doing was producing a base image, and then >> "postprocessing" it via libguestfs to enable/disable services. >> >> So if we did decide to ship the GCE agent software, it would be >> possible to produce one cloud image with both cloud-init and GCE >> agent, with *both disabled by default* (note requires changing >> cloud-init package to stop auto-enabling itself) >> >> Then the script boils down to: >> >> $ cp fedora-cloud.qcow2 fedora-cloud-standard.qcow2 >> $ guestmount /path/to/fedora-cloud-standard.qcow2 /mnt >> $ systemctl --root=/mnt/ enable cloud-init.service >> $ fusermount -u /mnt >> >> $ cp fedora-cloud.qcow2 fedora-cloud-google.qcow2 >> $ guestmount /path/to/fedora-cloud-google.qcow2 /mnt >> $ systemctl --root=/mnt/ enable google-daemon.service >> $ fusermount -u /mnt >> >> Each takes literally just a second or two to execute and can be easily >> scripted on a rel-eng server (though I guess you'd want to wrap mock >> around it). > It may not take long but its not an option. for a few reasons. > > 1) the image is intended to be just ran without tweaks > 2) we publish the image on the mirrors and anyone using them will have > to tweak it before using. which breaks at least openstack. you can > point it at a mirror and it will pull in the cloud image and it just > works. > 3) it means having two systems installed in the image along with any > unique deps. We are trying to make the base as small and unbloated as > possible. > > >> > extend the functionality of >> > cloud-init if you feel its useful. Ideally its something that can >> > work in all providers. >> >> All of the above said, I agree and would prefer investing in >> cloud-init, even at the cost of the image deviating a bit from the >> "GCE standard". Any other opinions? > > I strongly believe we need one way to do it. now having a hook to say > start an extra service when it detects its being run in GCE i wouldn't > object to. assuming that service is not huge. > This is very possible and should not be much work. cloud-init already is smart enough to determine it's on GCE and use the GCE data source to grab data from the metadata service. It's been a while since I've dug into the cloud-init code, but it should be trivial write some special metadata if the GCE datasource is active, and then have a config module that starts services if those special metadata bits are present (might mean writing to dbus or something to do it the "right" way from systemd's perspective.) Andy _______________________________________________ cloud mailing list cloud@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/cloud Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct