Merge "Add Robot test for running Tempest test suite"
[validation.git] / docker / README.rst
index 5da7288..2c51af0 100644 (file)
@@ -82,7 +82,7 @@ The mariadb container
 Building and pushing the container
 ----------------------------------
 
-To build just the postgresql container, use the command:
+To build just the mariadb container, use the command:
 
 .. code-block:: console
 
@@ -100,6 +100,7 @@ In order for the container to be easily created, the deploy.sh script has been d
 
 CONTAINER_NAME, name of the container, default value is akraino-validation-mariadb
 MARIADB_ROOT_PASSWORD, the desired mariadb root user password, this variable is required
+MARIADB_AKRAINO_PASSWORD, the desired mariadb akraino user password, this variable is required
 UI_ADMIN_PASSWORD, the desired Blueprint Validation UI password for the admin user, this variable is required
 UI_AKRAINO_PASSWORD, the desired Blueprint Validation UI password for the akraino user, this variable is required
 REGISTRY, registry of the mariadb image, default value is akraino
@@ -108,13 +109,36 @@ TAG_PRE, first part of the image version, default value is mariadb
 TAG_VER, last part of the image version, default value is latest
 MARIADB_HOST_PORT, port on which mariadb is exposed on host, default value is 3307
 
-If you want to deploy the container, you can run this script with the appropriate parameters.
+In order to deploy the container, this script can be executed with the appropriate parameters.
 
-Example (assuming you have used the default variables for building the image using the make command):
+Example (assuming the default variables have been utilized for building the image using the make command):
 
 .. code-block:: console
 
-    ./deploy.sh MARIADB_ROOT_PASSWORD=password UI_ADMIN_PASSWORD=admin UI_AKRAINO_PASSWORD=akraino
+    cd validation/docker/mariadb
+    ./deploy.sh MARIADB_ROOT_PASSWORD=root_password MARIADB_AKRAINO_PASSWORD=akraino_password UI_ADMIN_PASSWORD=admin UI_AKRAINO_PASSWORD=akraino
+
+Also, in order to re-deploy the database (it is assumed that the corresponding mariadb container has been stopped and deleted) while the persistent storage already exists (currently, the directory /var/lib/mariadb of the host is used), a different approach should be used after the image build process.
+
+To this end, another script has been developed, namely deploy_with_existing_storage.sh which easily deploys the container. This script accepts the following items as input parameters:
+
+CONTAINER_NAME, the name of the container, default value is akraino-validation-mariadb
+REGISTRY, the registry of the mariadb image, default value is akraino
+NAME, the name of the mariadb image, default value is validation
+TAG_PRE, the first part of the image version, default value is mariadb
+TAG_VER, the last part of the image version, default value is latest
+MARIADB_HOST_PORT, the port on which mariadb is exposed on host, default value is 3307
+
+In order to deploy the container, this script can be executed with the appropriate parameters.
+
+Example (assuming the default variables have been utilized for building the image using the make command):
+
+.. code-block:: console
+
+    cd validation/docker/mariadb
+    ./deploy_with_existing_persistent_storage.sh
+
+More info can be found at the UI README file.
 
 The ui container
 ================
@@ -138,19 +162,19 @@ Using the container
 -------------------
 In order for the container to be easily created, the deploy.sh script has been developed. This script accepts the following as input parameters:
 
-CONTAINER_NAME, name of the contaner, default value is akraino-validation-ui
-DB_CONNECTION_URL, the URL connection with the akraino database of the maridb instance, this variable is required
-MARIADB_ROOT_PASSWORD, mariadb root user password, this variable is required
-REGISTRY, registry of the mariadb image, default value is akraino
-NAME, name of the mariadb image, default value is validation
-TAG_PRE, first part of the image version, default value is ui
-TAG_VER, last part of the image version, default value is latest
-JENKINS_URL, the URL of the Jenkins instance, this variable is required
+CONTAINER_NAME, the name of the contaner, default value is akraino-validation-ui
+DB_IP_PORT, the IP and port of the maridb instance, this variable is required
+MARIADB_AKRAINO_PASSWORD, the mariadb akraino user password, this variable is required
+REGISTRY, the registry of the mariadb image, default value is akraino
+NAME, the name of the mariadb image, default value is validation
+TAG_PRE, the first part of the image version, default value is ui
+TAG_VER, the last part of the image version, default value is latest
+JENKINS_URL, the URL of the Jenkins instance (http or https must be defined), this variable is required
 JENKINS_USERNAME, the Jenkins user name, this variable is required
 JENKINS_USER_PASSWORD, the Jenkins user password, this variable is required
 JENKINS_JOB_NAME, the name of Jenkins job capable of executing the blueprint validation tests, this variable is required
-NEXUS_PROXY, the proxy needed in order for the Nexus server to be reachable, default value is none
-JENKINS_PROXY, the proxy needed in order for the Jenkins server to be reachable, default value is none
+NEXUS_PROXY, the needed proxy in order for the Nexus server to be reachable, default value is none
+JENKINS_PROXY, the needed proxy in order for the Jenkins server to be reachable, default value is none
 
 Note that, for a functional UI, the following prerequisites are needed:
 
@@ -158,15 +182,16 @@ Note that, for a functional UI, the following prerequisites are needed:
 - A Jenkins instance capable of running the blueprint validation test
 - A Nexus repo in which all the test results are stored.
 
-Look at the UI README file for more info.
+More info can be found at the UI README file.
 
-If you want to deploy the container, you can run the aforementioned script with the appropriate parameters.
+In order to deploy the container, the aforementioned script can be executed with the appropriate parameters.
 
-Example (assuming you have used the default variables for building the image using the make command):
+Example (assuming the default variables have been utilized for building the image using the make command):
 
 .. code-block:: console
 
-    ./deploy.sh DB_CONNECTION_URL=172.17.0.3:3306/akraino MARIADB_ROOT_PASSWORD=password JENKINS_URL=http://192.168.2.2:8080 JENKINS_USERNAME=name JENKINS_USER_PASSWORD=jenkins_pwd JENKINS_JOB_NAME=job1
+    cd validation/docker/ui
+    ./deploy.sh DB_IP_PORT=172.17.0.3:3306 MARIADB_AKRAINO_PASSWORD=akraino_password JENKINS_URL=http://192.168.2.2:8080 JENKINS_USERNAME=name JENKINS_USER_PASSWORD=jenkins_pwd JENKINS_JOB_NAME=job1
 
 The kube-conformance container
 ==============================
@@ -203,7 +228,7 @@ Example:
 
 .. code-block:: console
 
-    docker run -ti akraino/validation:kube-conformance-v1.11
+    docker run -ti akraino/validation:kube-conformance-v1.15
 
 By default, the container will run the `run_e2e.sh` script. If you want to
 enter the container, add */bin/sh* at the end of the command above
@@ -249,3 +274,78 @@ want to enter the container, add */bin/sh* at the end of the command above.
 
 Normally, this conainer is not used directly, but instead leveraged via
 sonobuoy.
+
+The openstack container
+=======================
+
+Building and pushing the container
+----------------------------------
+
+To build just the openstack container, use the command:
+
+.. code-block:: console
+
+    make openstack-build [ REGISTRY=<dockerhub_registry> NAME=<image_name>]
+
+To both build and push the container, use the command:
+
+.. code-block:: console
+
+    make openstack [ REGISTRY=<dockerhub_registry> NAME=<image_name>]
+
+Using the container
+-------------------
+
+The openstack image is meant to be ran from a server that has access to the
+openstack deployment (jenkins slave, jumpserver, etc).
+
+Before running the image, copy openstack deployment environment variables
+(openrc) to a local folder (e.g. /root/openrc).
+
+Container needs to be started with the openrc file mounted. Optionally, test
+cases can be excluded from execution via a mounted blacklist file.
+
+The results folder can be mounted as well; this way the logs are
+stored on the local server.
+
+.. code-block:: console
+
+    docker run -ti -v /home/jenkins/openrc:/root/openrc \
+    -v /home/jenkins/blacklist.txt:/opt/akraino/validation/tests/openstack/tempest/blacklist.txt \
+    -v /home/jenkins/openstack_results:/opt/akraino/results/ \
+    akraino/validation:openstack-latest
+
+The helm container
+==================
+
+Building and pushing the container
+----------------------------------
+
+To build just the helm container, use the command:
+
+.. code-block:: console
+
+    make helm-build [ REGISTRY=<dockerhub_registry> NAME=<image_name>]
+
+To both build and push the container, use the command:
+
+.. code-block:: console
+
+    make helm [ REGISTRY=<dockerhub_registry> NAME=<image_name>]
+
+Using the container
+-------------------
+
+Container needs to be started with the SSH key file mounted. Users
+credentials can be provided via a mounted variables.yaml file.
+
+The results folder can be mounted as well; this way the logs are
+stored on the local server.
+
+.. code-block:: console
+
+    docker run -ti -v /home/jenkins/openrc:/root/openrc \
+    -v /home/foobar/.ssh/id_rsa:/root/.ssh/id_rsa \
+    -v /home/foobar/variables.yaml:/opt/akraino/validation/tests/variables.yaml \
+    -v /home/foobar/helm_results:/opt/akraino/results/ \
+    akraino/validation:helm-latest