From a3578fdb7496e7f1234eef4ac73086ba1d57fcf2 Mon Sep 17 00:00:00 2001 From: ahothan Date: Fri, 31 May 2019 11:40:31 -0700 Subject: Build and publish 0.8 VM image to google storage buildvm Change-Id: I3bb9b02c76f39ecc4cd2689438656edce99795db Signed-off-by: ahothan --- docker/Dockerfile | 2 +- docs/development/building/build.rst | 71 +++++++++++++++++++++++++++++++++++++ docs/development/building/index.rst | 14 ++++++++ docs/development/index.rst | 1 + 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 docs/development/building/build.rst create mode 100644 docs/development/building/index.rst diff --git a/docker/Dockerfile b/docker/Dockerfile index 2c4055e..0e8603e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:16.04 ENV TREX_VER "v2.56" -ENV VM_IMAGE_VER "0.6" +ENV VM_IMAGE_VER "0.8" # Note: do not clone with --depth 1 as it will cause pbr to fail extracting the nfvbench version # from the git tag diff --git a/docs/development/building/build.rst b/docs/development/building/build.rst new file mode 100644 index 0000000..52a8a0e --- /dev/null +++ b/docs/development/building/build.rst @@ -0,0 +1,71 @@ + +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) Cisco Systems, Inc + +Building containers and VM images +================================= + +NFVbench is delivered as Docker container which is built using the Dockerfile under the docker directory. +This container includes the following parts: + +- TRex traffic generator +- NFVbench orchestration +- NFVbench test VM (qcow2) + +Versioning +---------- +These 3 parts are versioned independently and the Dockerfile will determine the combination of versions that +are packaged in the container for the version associated to the Dockerfile. + +The NFVbench version is controlled by the git tag that conforms to the semver version (e.g. "3.3.0"). +This tag controls the version of the Dockerfile used for building the container. + +The TRex version is controlled by the TREX_VER variable in Dockerfile (e.g. ENV TREX_VER "v2.56"). +TRex is installed in container from https://trex-tgn.cisco.com/trex/release/ + +The Test VM version is controlled by the VM_IMAGE_VER variable in Dockerfile (e.g. ENV VM_IMAGE_VER "0.8"). +The VM is extracted from google storage (http://artifacts.opnfv.org) + +Updating the VM image +--------------------- + +When the VM image is changed, its version must be increased in order to distinguish from previous image versions. +The version strings to change are located in 2 files: + +- docker/Dockerfile +- nfvbench/nfvbenchvm/dib/build-image.sh + +Building and uploading the VM image +----------------------------------- +The VM image is built and uploaded to Google storage from the CI/CD whenever the +commit text of a gerrit review contains the word "buildvm". + +For details on how this is done, refer to ./jjb/nfvbench/nfvbench.yaml in the opnfv releng repository. + +Building a new NFVbench container image +--------------------------------------- +A new container image can be built and published to Dockerhub by CI/CD by applying a new semver tag to the +nfvbench repository. + + +Workflow summary +---------------- + +NFVbench code has changed: + +- commit with gerrit +- apply a new semver tag to trigger the container image build/publication + +VM code has changed: + +- update VM version in the 2 locations +- commit VM changes with gerrit and add "buildvm" in your commit message to trigger VM build and publish to google storage +- apply a new semver tag to trigger the container image build/publication + +To increase the TRex version: + +- change the Trex version in Dockerfile +- commit with gerrit +- apply a new semver tag to trigger the container image build/publication diff --git a/docs/development/building/index.rst b/docs/development/building/index.rst new file mode 100644 index 0000000..8b9d786 --- /dev/null +++ b/docs/development/building/index.rst @@ -0,0 +1,14 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International +.. License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) Cisco Systems, Inc + +=============================== +OPNFV NFVbench Euphrates Design +=============================== + +.. toctree:: + :maxdepth: 2 + + build + diff --git a/docs/development/index.rst b/docs/development/index.rst index 1db91e7..0477154 100644 --- a/docs/development/index.rst +++ b/docs/development/index.rst @@ -8,3 +8,4 @@ overview/index design/index + building/index -- cgit 1.2.3-korg