Relevant release: 1.0.0
License: Apache License, Version 2.0
Author: Andrey Kurilin
xRally plugins for Docker engine.
What is it?!¶
Originally, it was created as a quick proof-of-concept to show ability of Rally to test platforms other than OpenStack. After the first preview, it became obvious that it should be developed as a complete package.
xrally_docker is a pack of xRally plugins for execution different workloads at the top of Docker Engine. Such workloads can be used as like for testing environments with Docker or testing behaviour of specified docker image.
How to use?!¶
xrally_docker package is configured to be auto-discovered by Rally. Since rally package is a dependency of xrally_docker , so to start using xrally_docker you need to install just one package:
pip install xrally_docker
Specify entry-point of docker engine to use¶
The next step is to specify entry-point to docker, i.e. create rally environment. There are 2 way to do it:
- Specify environment specification manually. For a simple case (no cert,
tls, etc), it looks like
- Create environment specification from system environment variables
(supported by Rally >= 0.11.2) using
rally env create --name example --from-sysenvcommand. An expected system variables are the same as native docker client supports.
Check that Rally can access the docker¶
First of all try to execute
rally env check command. It checks all
platforms of the environment to be available. If it does not show any errors
for communicating with docker, go and execute any task against docker.
If is fails, try to execute the command again with
Also, you can use
rally env info command for the same purpose. Unlike
rally env check it will not only check the platforms, but print some
information about them. In case of docker platform, it will print the similar
docker --version data.
Execute a workload against docker¶
Here is a simple workload:
--- version: 2 title: Simple task with only one workload subtasks: - title: a subtask with one workload description: This workload should run a container from "ubuntu" image and execute simple command. scenario: Docker.run_container: image_name: "ubuntu" command: "echo 'Hello world!'" runner: constant: times: 10 concurrency: 2 sla: failure_rate: max: 0
This task will download ubuntu image first, if it does not present in the system. Then, it will run 10 containers from the image with 2 concurrency and execute a simple command. The output of the command will be saved as TextArea and will be available via json and html reports.
See plugin references for the full list of available plugins for docker platform to combine workloads.
This package works fine, but you need to install the proper version of Docker client which suits your Docker API version.