As mentioned in terminology, it is an isolated testing environment with virtual networks and virtual machines (VMs) in them. Thanks to the infrastructure created using the OpenStack cloud service, and everything is running without affecting the external infrastructure.
Creating the sandbox requires the definition of the sandbox structure and configuration of the individual virtual machines. The definition in the context of KYPO is the directory structure named after sandbox definition, which contains:
- Topology Definition: The file with the sandbox structure definition (hosts, routers, networks, etc.). For more detailed information about the topology definition, check the page Toplogy Definition. Created sandbox inside the cloud is called KYPO Topology Instance.
- Sandbox Provisioning: It is used to customize Topology Instances, e.g., set up an environment, create users, install packages, etc. Sandbox Provisioning must specify how to connect to instances, e.g., user name and SSH key. The Ansible tool is used to perform these actions. For more detailed information about the topology definition, check the page Sandbox Provisioning.
Created sandbox definition must be stored as a Git repository to be used inside the KYPO portal. Git repository must also be accessible by the KYPO platform. For more detailed information, check the page Sandbox Definition.
Before creating sandboxes, it is essential to create in system so-called pools. Pools are groups of sandboxes created based on the same sandbox definition. A definition is specified before creating the pool. After creating the pool, it is possible to start with the allocation of the sandboxes, which is divided into three phases:
- Sandbox Allocation: Creating sandbox (virtual machines) inside the cloud.
- Sandbox Networking: Networking of the virtual machines and user keys distribution to machines. The phase is executed automatically and is not the responsibility of the user.
- Sandbox Provisioning: Customization of virtual machines already above-mentioned.