vte.md 1.59 KB
Newer Older
Ryan Goodfellow's avatar
Ryan Goodfellow committed
1
---
Ryan Goodfellow's avatar
Ryan Goodfellow committed
2
id: vte
Ryan Goodfellow's avatar
Ryan Goodfellow committed
3
4
5
6
7
8
title: Virtual Testbed Environment
---

The virtual testbed environment (VTE) is a self contained Merge system that's
deployable as a set of interconnected virtual machines with a single command.

Phil Chandler's avatar
Phil Chandler committed
9
10
The home GitLab repository for the VTE is [mergetb/vte](https://gitlab.com/mergetb/vte).
Currently the bulk of the "code" lives under the `integrated` directory.
Ryan Goodfellow's avatar
Ryan Goodfellow committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

The primary components of the VTE are:

- A fully functional Kubernetes based Merge portal deployment.
- A small test site consisting of
    - 8 testbed nodes
    - A fully functional switching and routing mesh based on CumulusVX
    - A site automation node that runs the Cogs system
    - A set of storage servers that serve OS images to nodes and provide network
      mass storage to experiments.
    - A pair of network emulation nodes

When the VTE starts up, all of the MergeTB components are installed on the VTE
virtual machines based on the latest packages that have been produced from the 
continuous integration (CI) process of each project. The VTE serves two primary 
purposes:

- A testing and evaluation environment for testbed developers.
- A fully integrated environment for end to end CI testing.

## System Requirements

At the time of writing the VTE is made up of 28 virtual machines and requires a
fairly significant amount of resources to run.

### Minimum

- A processor with hardware virtualization support.
- 6 Cores
- 64GB RAM
- 450G SSD disk (HDDs are too slow, don't try)

### Recommended

- AMD Threadripper or Epyc processor.
- 16+ Cores
- 128+ GB RAM >= 3000MHz, quad channel+
- 1TB+ NVMe dedicated (read: not running OS) disk