This is an old revision of the document!
Apex is a set of scripts that execute deployment configuration according to OPNFV standards using RDO Manager. This document will describe the process to integrate with Apex. Integration involves.
To get a good overview of Apex, the terms that describe a deployment and the architecture of what is deployed please review the Installation Instructions.
There are a collection of files executed during build that are helpful to understand their purpose. Not all files used in build are listed here.
ci/build.sh | A boiler plate entry point for build. This file may become common across all builders and is most likely not necessary to be edited during integration |
ci/clean.sh | an environment clean up script that deletes libvirt resources and ovs bridges |
build/Makefile | The entry point into Apex specific processing. It's responsible for orchestrating the build process, RPM build and ISO build |
build/instack.sh | The main build script. This is where configuration files and disk images are prepared for inclusion in the RPM |
build/cache.mk | Handles buildign the cache,main take away: what is cached is defined in the top of this file |
Apex is built in a few stages:
Building Apex is as simple as cloning the git repo and executing the build. The build scripts are designed to ensure that all the software dependencies are made available to the build. There are a few requirements to consider before building.
Steps to build:
$ git clone https://gerrit.opnfv.org/gerrit/p/apex.git $ cd apex/ci $ ./build -v {build-version} -c file:///{cache-storage-location}
{build-version} is an RPM release number compatble idetifyer. This is used in both the RPM release desination and to name the ISO.
{cache-storage-location} is where the 7-10G cache file will be stored between builds
To build Apex, artifacts and packages are collected from the RDO Project build system. This includes:
The disk images are cached after build so that they don't have to be downloaded again if they haven't been refresh. Though, RDO Project can rebuild them as frequently as every 8 hours. Once these disk images are downloaded the build will process to modify them in preparation to use for Apex deployment.
Apex will also collect the artifacts needed to include support for the SDN controller options that are supported for deployment.
Next, a collection of virtual machines are constructed:
Finally the VM definitions are dumped to disk in preparation for packaging
Once instack.sh has run and has dumped all the files to disk that are needed to build git archive is run which generates the initial tarball the RPM will build from. During build files are generated that need to be included in the RPM so the tarball is then appended with the necessary files for packaging for and deployment. Rpmbuild is executed to roll an RPM that includes the configuration file, deployment scripts and disk images necessary for deployment.
Once the RPM is built the CentOS installation DVD is downloaded, exploded, the Apex RPM is added and the installation configuration files for the OS are modified and the ISO is rebuilt with the updated contents.