aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/Dockerfile2
-rw-r--r--docs/development/building/build.rst71
-rw-r--r--docs/development/building/index.rst14
-rw-r--r--docs/development/index.rst1
4 files changed, 87 insertions, 1 deletions
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