Optionally pack upgrade tarball with lrzip

https://blueprints.launchpad.net/fuel/+spec/upgrade-lrzip

Problem description

Our upgrade tarball is almost 5Gb in size. We can compress it with lrzip. It will save about 2Gb of space and network traffic for users.

Proposed change

Create a separate build target with uncompressed Fuel images inside of a compressed archive file called fuel-upgrade.tar.lrz. Start using LRZ archives instead of TAR for upgrade tarballs everywhere.

Alternatives

  • Do nothing. It will save time of the process of building and unpacking.
  • Decrease amount of data in tarball. This is out of scope for this small blueprint and will be done in next release.

Data model impact

None

REST API impact

None

Upgrade impact

Command line for upgrade will be changed. Size of tarball will be decreased. Tarball unpack time will be increased.

Security impact

None

Notifications impact

None

Other end user impact

New command line for unpack of upgrade tarball: lrzuntar fuel-upgrade.tar.lrz.

Performance Impact

It takes about 15 minutes on a VirtualBox environment to unpack the LRZ archive. It does not have a noticable impact on build time.

The upgrade process will be faster because there is no need to unpack fuel-images.tar.lrz file

Other deployer impact

None

Developer impact

There will be no changes in existing build scenarios. Developer can build compressed tarball with ‘make upgrade-lrzip’ command. In order to build tarball, iso and img, use ‘make iso img upgrade-lrzip’ command. ‘make all’ command includes uncompressed upgrade tarball, so ‘make all upgrade-lrzip’ will create both compressed and uncompressed tarballs, what is not needed in common case.

Our system tests need update in order to work with compressed tarballs. Existing test scenarios are not affected.

Implementation

Assignee(s)

Primary assignee:
lux-place
Other contributors:
None

Work Items

  • Update upgrade.sh should work both with compressed fuel-images.tar.lrz and uncompressed fuel-images.tar.
  • New ‘make upgrade-lrzip’ command is needed.
  • Extend method ‘untar’ in fuelweb_test/helpers/checkers.py with support for LRZ archives.
  • Use compressed tarball in community build.
  • Turn on compressed tarball for all builds on product jenkins.
  • Update upgrade instruction with new command line.

Dependencies

None

Testing

Automated test for upgrade with compressed tarball is needed.

Acceptance criteria: * User can upgrade Fuel Master using compressed tarball.

Documentation Impact

Upgrade guide must be updated with new command line for unpacking of tarball.