Distribute dependencies

This change prepares engine core to move stack dependencies to stack
themselves, leaving only the core dependencies in requirements.txt and
bindep.txt.

Apart from moving dependencies from the referred files, stack setup-stack.sh
scripts are also taken into use to install such dependencies once engine
clones the corresponding stack repository.

The benefits of this approach
- ability to control dependencies directly within the stack without
impacting other stacks and engine core
- package dependencies required for the stack itself and not everything
- allow identifying engine core dependencies so they can be made part of
stack packaging, enabling stacks to stop using leftovers of an earlier
deployment done for a different stack
- pave the way for multi distro support since some stacks may support
more than one distro and that support can be introduced and maintained
within corresponding stack
- deferred processing of dependencies allow to engine become functioning
faster than how it is know. also, the overall deployment time will be
shortened a bit with the help of this due to dealing with dependencies
based on stack

Depends-On: I9508275fe581cea15af3c9e7dfa0b3342370460b
Change-Id: I713d0e333bc4a01c92e6aa6ae1a4e6f3d9efe2ad
4 files changed
tree: c1a2e42ede0af80e20d35263cd89bfb63406dde2
  1. docs/
  2. engine/
  3. releasenotes/
  4. .gitignore
  5. .gitreview
  6. .yamllint
  7. ansible.cfg
  8. bindep.txt
  9. README.md
  10. requirements.txt
  11. setup.cfg
  12. setup.py
  13. test-requirements.txt
  14. tox.ini
README.md

Cloud Infra Engine

The Cloud Infra Engine is created based on OPNFV Cross Community CI (XCI) project in order to automate the deployment and testing of various cloud infra scenarios. [1]

The supported scenarios are based on

  • Kubernetes
  • OpenStack
  • ONAP

technologies and they can be deployed and tested using different types of resources such as

  • baremetal nodes
  • instances created on an OpenStack Cloud
  • VMs created using libvirt

The possibility of using one of the resources listed above highly depends on the scenario the users want to deploy, test, and use. More information is available in corresponding sections.

Kubernetes Scenarios

Prerequisites

Cloud Infra Engine lets users to deploy the scenario of their choosing on to their workstations. Minimum requirements for the host where the Cloud Infra Engine is executed are

  • 8 CPUs
  • 16 GB of RAM
  • 200 GB of disk space
  • nested virtualization support
  • internet connection

Recommended requirements are

  • 10 CPUs
  • 20 GB RAM

The engine currently only supports Ubuntu16.04.

Apart from having sufficient performance and capacity on the host, few packages need to be installed on the host before executing the engine

  • git
  • python
  • libvirt

The user that is executing the engine should also have passwordless sudo enabled.

Usage Instructions

Cloud Infra Engine is version controlled on Nordix Gerrit so its repository needs to be cloned.

git clone https://gerrit.nordix.org/infra/engine.git

Cloud Infra Engine expects the ssh keys to be created in advance. If you don't have ssh keypair already, you can do that by executing below command.

ssh-keygen -t rsa

Once the keypair is generated, the main script deploy.sh can be executed in order to start deployment of the default scenario on virtual machines that are created by the engine.

cd engine/engine
./deploy.sh -h # get help
./deploy.sh -c

Once the script execution starts, it will prepare the environment, create libvirt resources, provision libvirt vms and install the selected scenario on them. The overall process takes about 40 minutes to complete if ramdisk and deployment images are created in advance.

Please note, in the default / embeded pdf / idf files, we have specified two disks for each vms we are going to create. If you are going to provide pdf / idf files yourself with mulitple disks, please note the current deployment script will not work when the disks have the same size as we specify the bootable disk based on size.

OpenStack Scenarios

Prerequisites

TBD

Usage Instructions

TBD

ONAP Scenarios

Prerequisites

TBD

Usage Instructions

TBD

References

[1] https://opnfv-releng-xci.readthedocs.io/en/latest/