System overview
Background
Using the local:docker runner of Testground enables you to test distributed/p2p systems on your local machine with precisely the same build artifacts as the cluster:k8s runner. The use of Docker images as a build target ensures plans are built the same way with the same build environment even when built on a different machine or a different OS.
The overall performance of the local:docker runner depends highly on the machine running the tests, though we are frequently able to run tests with 100+ instances without issue using commonly-available laptops or desktop computers.
Dependencies
Aside from the sidecar, which is built separately, any auxiliary Docker images are downloaded if needed. This is what you need to get started:
A laptop or desktop with reasonable hardware specs. To be able run simulations of a reasonable size, we recommend at least the following:
8GB memory
50GB available storage
The following software setup is required:
Docker daemon
a non-root account with write access to the Docker socket.
Sidecar container installation. See installation instructions in Getting Started
Testground-supplied containers
When Testground runs its first plan, several additional containers will be downloaded and started. Here is an overview of everything Testground adds to your system
Docker networks:
testground-buildThis network is used only during the build phase.
Test plan containers are not attached to this network.
testground-controlThis network is used by test plan containers to communicate with the sync service and the host.
Though this is a public-facing network, plan containers cannot access the internet through this network because routes are removed.
testground-dataPlan containers communicate with each other over this network.
This is the network used for testing.
The sidecar modifies the link quality and performance to simulate real-world conditions.
Docker containers:
goproxyThis container is attached to the
buildnetwork.It speeds up Go builds.
It is optional.
redisThis is the backend database of the Testground sync service.
grafanaVisualisation software that Testground uses for its dashboards.
influxdbTime-series database that Testground uses for various diagnostics and events.
Last updated