offline-packaging: Package offline deployment dependencies for k8s

This change implements functionality to package the dependencies
needed to provision nodes and install kubernetes on them in an
offline/air gapped environment. Only bifrost and kubespray are
supported and the work to introduce support for heat based deployments
is pending. Support for OpenStack/Kolla will be introduced
depending on need. ONAP offline packaging will be developed
based on this packaging as well.

A new script named package.sh is introduced to be able to run
packaging process separately from the deployment so one can run
the packaging and then take the produced archive file to use
for offline deployment.

The packaged dependencies are
- operating system packages (only apt supported for the timebeing)
- python packages
- git repositories
- images to provision target nodes
- kubernetes and related binaries and container images

In order to package the correct versions of the open source artifacts,
versions of them are pinned in engine/inventory/group_vars/all/versions.yaml
file.

Some other cosmetic changes are also done as well.
- move conditionals to functions themselves to clean main deployment
  script
- stop using ansible with_items for package installations since it
  will be removed in future releases
- align Info and Error messages

Change-Id: Idd153e1d8032aa07b2ccc94ea074ff1b0ff0fa8c
1 file changed