Testground
GitHubGo SDKInfra
master
master
  • README
  • Table of contents
    • What is Testground?
      • Community
    • Concepts and architecture
      • Test plans and test cases
      • Daemon and client
      • Synchronization service
      • Networking
      • Sidecar
      • Builders
      • Runners
      • Runtime environment (runenv)
      • Client-Server communication
    • Getting started
    • Writing test plans
      • Quick start
      • Understanding the test plan manifest
      • Parameters and test cases
      • Keeping instances in sync
      • Communication between instances
      • Observability, assets and metrics
    • Managing test plans
    • Running test plans
    • Traffic shaping
    • Analyzing test run results
      • Capturing profiles
    • Debugging test plans
    • Docker Settings
    • Featured projects
  • Runner library
    • local:exec
    • local:docker
      • System overview
      • Runner flags
      • Troubleshooting
    • cluster:k8s
      • System overview
      • How to create a Kubernetes cluster for Testground
      • Monitoring and Observability
      • Understanding Testground performance on Kubernetes
      • Troubleshooting
  • Builder Library
    • docker:go
    • exec:go
    • docker:generic
Powered by GitBook
On this page
  • Control Network
  • Data Network
  1. Table of contents
  2. Concepts and architecture

Networking

PreviousSynchronization serviceNextSidecar

Last updated 2 years ago

All Testground runners except for the local:exec runner have two networks: a control and a data network.

  • Test plan instances communicate with each other over the datanetwork.

  • Test plan instances communicate with infrastructure services such as the and InfluxDB over the control network.

?> This separation allows test instances to simulate disconnected scenarios; intermittent, failing connectivity; or high-latency scenarios without affecting other infrastructural comms.

!> The local:exec runner will use your machine's local network interfaces. For now, this runner doesn't support traffic shaping.

Control Network

The control network is used to communicate with Testground services, such as the or InfluxDB. You don't need to do anything special to configure or use this network: the will do it for you automatically.

After the is finished initializing the network, it should be impossible to use the control network to communicate with other test plan instances.

However, a good test plan should avoid listening on and/or announcing the control network anyways to ensure that it doesn't interfere with the test. Your test plan should always communicate with other test instances via the data network.

Data Network

The data network, used for communication between test plan instances, will be assigned a B block in the IP range 16.0.0.0/4. Given the B block X.Y.0.0, X.Y.0.1 is always the gateway and shouldn't be used by the test.

The subnet used will be passed to the test instance via the runtime environment (as TestSubnet).

?> Success From the Go SDK, you can use the function to acquire your data network IP address.

sync service
sync service
sidecar
sidecar
network.GetDataNetworkIP()