From Fedora Project Wiki

< Changes

Revision as of 10:24, 5 April 2014 by Red (talk | contribs) (Wrote an initial version of the proposal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Smaller Cloud Image Footprint

Summary

Shrink the footprint of our cloud images as far as reasonably, and within the given timeframe, possible.

Owner

  • Name: Cloud SIG / Sandro Mathys
  • Email: red@fedoraproject.org
  • Release notes owner:
  • Product: All Cloud Images (duh!)
  • Responsible WG: Cloud

Current status

  • Targeted release: Fedora 21
  • Last updated: 2014-04-05
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Space is precious in the cloud, therefore the Cloud SIG tries to keep the images' footprint as small as reasonably possible. Several approaches are ongoing in this regard and while they are hardly worth mentioning individually, the combined effort is going to be noticeable.

Benefit to Fedora

  • Official Fedora cloud images will become smaller.
  • Possibility to install Fedora with a smaller footprint.

Scope

As mentioned, there's really various changes that are quite independent of each other but share the common goal.

  • Proposal owners:
    • Replace NetworkManager, etc. with systemd-networkd.
    • Make sure only just kernel-core, not kernel and kernel-drivers, is installed (see the related change: Changes/Modular_Kernel_Packaging_for_Cloud).
    • Make sure only the packages really required are installed.
    • Use %packages --excludedocs to to skip installing docs.
    • Use %packages --instLangs= to ship only just English.
    • Tweak the locales (in %post) so that local-archive ships with only just English instead of all languages. We might skip this one if it seems too much tinkering. Work is going on to have proper support for this in the glibc package (see rhbz#156477 - also, c#30 shows the necessary tinkering).
  • Other developers:
    • Packages that are part of any cloud image (and in the long run all packages) must use %license instead of %doc for the license file(s) so we can skip shipping docs but still ship licenses.
    • cloud-init should no longer require python-cheetah and needs to be refactored (upstream) accordingly.
  • Release engineering: Nothing.
  • Policies and guidelines:
    • Packaging Guidelines need to reflect that license files must be tagged with %license instead of %docs (FPC#411).

Upgrade/compatibility impact

N/A because upgrading cloud images is not supported (as they target cattle, not pets). Still, none of the changes should affect (unsupported) upgrade attempts.

How To Test

Launching one of the Fedora Cloud Images in your favorite IaaS cloud:

  • Make sure everything still works as expected, particularly anything you've done regularly with the official F20 cloud image.
  • Verify cloud-init functionality works expected, doing anything you've ever done with any cloud-init enabled image - or anything the upstream docs say you can do.
  • Verify NetworkManager, dhclient, etc. are missing but network connectivity is up and running (i.e. was set up properly through DHCP).
  • Verify kernel and kernel-drivers are missing.
  • Verify docs are missing but license files are present.
  • Verify non-English languages are missing.

User Experience

The same as always, except less space is used on freshly launched images, and therefore less updates become necessary which also results in less ingress being used.

Dependencies

Hopefully none other than mentioned in Scope.

Contingency Plan

Every single change is independent of the others, so if doesn't make it, the others still can. Single changes that don't meet the deadline are simply dropped and changes reverted to the previous configuration if necessary.

  • Blocks release? No
  • Blocks product? No

Documentation

N/A, but the hints mentioned in Scope should suffice to get the idea.

Release Notes

TODO: add notes accordingly to implemented changes.

All Fedora cloud images have now been optimized for a smaller footprint to save resources.