Run multinode test inside Docker containers

Note

This procedure was tested with Docker 1.12

Pre-requisites

Note

All pre-requisites below can be handled automatically by using a Cloud-Computing infrastructure. We provide Openstack support in pre-alpha version, please contact us for additional information.

  • A user account on a handful of Linux machines, for example: account myuser on a workstation named myhost.domain.org, and on cluster nodes named qserv00.domain.org to qserv03.domain.org

  • ssh access from myhost.domain.org to all qservXX.domain.org for myuser account, with no password prompt, for example using ssh keys authentication mechanism.

  • A parallel ssh client installed on myhost.domain.org, for example shmux (http://web.taranis.org/shmux/)

  • Internet access available for all qservXX.domain.org

  • Docker running on all qservXX.domain.org

  • myuser belonging to docker group on all qservXX.domain.org

    sudo usermod -a -G docker myuser
    

Note

It is possible to run a development version of Qserv by generating Qserv master and a worker images from a given github branch/tag, see Build Qserv image from a Github branch

Run multinode test

On the workstation myhost.domain.org, clone Qserv code and go to directory containing example for deployment scripts.

git clone git@github.com:lsst/qserv.git
cd ${SRC_DIR}/qserv/admin/tools/docker/deployment/parallel

create and adapt next example scripts to prepare multinode test execution:

In env.sh, prepare your host list and set the name of your images:

Then, install Qserv and launch multinodes integration tests.

# download latest docker image on each node:
./pull.sh
# Start Qserv and run multinode test:
./run-multinode-tests.sh
# Check Qserv status
./status.sh
# Stop Qserv
./stop.sh