X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=docker%2FREADME.rst;h=34e76414aafa0838a965a6b7e891a02cb6a607a0;hb=6b937d0dc0f36596c9bc1ef8766ba7363451458d;hp=8182b737f7ee15f0e2c1201db273a5dccaa70bd6;hpb=9e3249539861ecb37bb83aea9a9a8d9830e353da;p=validation.git diff --git a/docker/README.rst b/docker/README.rst index 8182b73..34e7641 100644 --- a/docker/README.rst +++ b/docker/README.rst @@ -19,19 +19,203 @@ Overview ======== The Makefile in this directory is used to build and push all -the validation containers. The command to do that is: - make all REGISTRY= +the validation containers. The default registry is **akraino** on +dockerhub, but only CI jenkins slaves are authorized to push +images to that registry. If you want to push to your own test registry, set +the REGISTRY variables as in the commands below. + +To build and push the images: + +.. code-block:: console + + make all [ REGISTRY= ] + To just build the containers, use the command: - make build-all REGISTRY= + +.. code-block:: console + + make build-all [ REGISTRY= ] The k8s container ================= +Building and pushing the container +---------------------------------- + To build just the k8s container, use the command: - make k8s-build REGISTRY= + +.. code-block:: console + + make k8s-build [ REGISTRY= ] + +To both build and push the container, use the command: + +.. code-block:: console + + make k8s [ REGISTRY= ] + +Using the container +------------------- + +The k8s image is meant to be ran from a server that has access to the +kubernetes cluster (jenkins slave, jumpserver, etc). + +Before running the image, copy the folder ~/.kube from your kubernetes +master node to a local folder (e.g. /home/jenkins/k8s_access). + +Container needs to be started with the kubernetes access folder mounted. +Optionally, 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/k8s_access:/root/.kube/ \ + -v /home/jenkins/k8s_results:/opt/akraino/validation/results/ \ + akraino/validation:k8s-latest + +By default, the container will run the k8s conformance test. If you want to +enter the container, add */bin/sh* at the end of the command above + + +The postgresql container +======================== + +Building and pushing the container +---------------------------------- + +To build just the postgresql container, use the command: + +.. code-block:: console + + make postgresql-build [ REGISTRY= NAME=] + +To both build and push the container, use the command: + +.. code-block:: console + + make postgresql [ REGISTRY= NAME=] + +Using the container +------------------- + +If you want to deploy the container, you can run the corresponding deploy.sh script with the appropriate parameters. + +Example: + +.. code-block:: console + + ./deploy.sh POSTGRES_PASSWORD=password + + +The ui container +================ + +Building and pushing the container +---------------------------------- + +To build just the ui container, you must first compile the ui project. +Then use the command: + +.. code-block:: console + + make ui-build [ REGISTRY= NAME=] + To both build and push the container, use the command: - make k8s REGISTRY= -Container should be started with the admin.conf file mounted: -docker run -ti -v /home/jenkins/admin.conf:/root/.kube/config \ -/akraino_validation:k8s-latest /bin/sh +.. code-block:: console + + make ui [ REGISTRY= NAME=] + +Using the container +------------------- + +If you want to deploy the container, you can run the corresponding deploy.sh script with the appropriate parameters. +Note, that you must also build and run the postgresql container for a functional UI. + +Example: + +.. code-block:: console + + ./deploy.sh postgres_db_user_pwd=password jenkins_url=http://192.168.2.2:8080 jenkins_user_name=name jenkins_user_pwd=jenkins_pwd jenkins_job_name=job1 nexus_results_url=https://nexus.akraino.org/content/sites/logs proxy_ip=172.28.40.9 proxy_port=3128 + +The kube-conformance container +============================== + +Building and pushing the container +---------------------------------- + +To build just the kube-conformance container, use the command: + +.. code-block:: console + + make kube-conformance-build [ REGISTRY= NAME=] + +To both build and push the container, use the command: + +.. code-block:: console + + make kube-conformance [ REGISTRY= NAME=] + +Using the container +------------------- + +This is a standalone container able to launch Kubernetes end-to-end tests, +for the purposes of conformance testing. + +It is a thin wrapper around the `e2e.test` binary in the upstream Kubernetes +distribution, which drops results in a predetermined location for use as a +[Heptio Sonobuoy](https://github.com/heptio/sonobuoy) plugin. + +To learn more about conformance testing and its Sonobuoy integration, read the +[conformance guide](https://github.com/heptio/sonobuoy/blob/master/docs/conformance-testing.md). + +Example: + +.. code-block:: console + + docker run -ti akraino/validation:kube-conformance-v1.11 + +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 + +Normally, this conainer is not used directly, but instead leveraged via +sonobuoy. + +The sonobuoy-plugin-systemd-logs container +========================================== + +Building and pushing the container +---------------------------------- + +To build just the sonobuoy-plugin-systemd-logs container, use the command: + +.. code-block:: console + + make sonobuoy-plugin-systemd-logs-build [ REGISTRY= NAME=] + +To both build and push the container, use the command: + +.. code-block:: console + + make sonobuoy-plugin-systemd-logs [ REGISTRY= NAME=] + +Using the container +------------------- + +This is a simple standalone container that gathers log information from +systemd, by chrooting into the node's filesystem and running `journalctl`. + +This container is used by [Heptio Sonobuoy](https://github.com/heptio/sonobuoy) +for gathering host logs in a Kubernetes cluster. + +Example: + +.. code-block:: console + + docker run -ti akraino/validation:sonobuoy-plugin-systemd-logs-latest + +By default, the container will run the `get_systemd_logs.sh` script. If you +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.