Skip to main content

Core Driver for the Virtual Test Development System (vTDS) suite

Project description

vtds-core

The core implementation of the vTDS virtual cluster tool.

Description

The vTDS core is the top-level driving mechanism that uses vTDS layer implementations and system configuration overlays to construct a virtual Test and Development System (vTDS) cluster and deploy an application on that cluster. The vTDS architecture defines a provider and application independent way to deploy and manage vTDS instances to support a variety of site and application development activities. The architecture achieves this by defining a layered model of both implementation and configuration and allowing layer implementations to be mixed and matched (with appropriate configuration) as needed by the user based on the user suplied configuration overlays.

Getting started with vTDS

vtds-core

To use vTDS you will need to have installed an up-to-date Python3 and you will want to have set up a Python virtual environment using

python3 -m venv <path to your venv>

and activated that virtual environment using

source <path to your venv>/bin/activate

Once you have that in place, you will need to install vtds-base and vtds-core as Python modules in your virtual environment. You can clone vtds-base and install it using

pip install .

from within the clone directory.

Assuming you have this (vtds-core) repository cloned already, the easiest way to install vtds-core is to run

pip install .

in the clone directory.

Other Layers

Your core configuration file will determine which layer implementations you are using to build your vTDS systems. Different layer implementations will have different setup needs on the system where vTDS is run. Those are spelled out in the README.md files in the repositories for each layer implementation.

The following is a list of some available vTDS Layer Implementations. It is not comprehensive, but these can be used to construct a vTDS stack and deploy a vTDS Cluster. They can also be examined to find the installation requirements for these layer implementations.

Brief vTDS Architecture Overview

The layers of the vTDS architecture are:

  • Provider
  • Platform
  • Cluster
  • Application

The Provider layer defines the resources that are available from a given hosting provider (for example, Google Cloud Platform or GreenLake(r)) on which the vTDS cluster is to be deployed. This includes things like customer billing information, project information, including naming within the provider's name space, and network and provider level network and host information, including network and node classes, used to by higher layers to build the final cluster. The provider layer also contains the code and to set up Virtual Blades and Blade Interconnect networks on the specific provider. This creates the topology of the platform on which the vTDS system will be built.

The Platform layer configures and populates the environment on the virtual blades to support the cluster and applicaiton layers. It is primarily concerned with Virtual Blade OS specific installation of supporting services and packages and configuration of the Virtual Blade OS.

The Cluster layer defines the vTDS cluster. It instantiates Virtual Nodes on their respective Virtual Blades and builds Virtual Networks to interconnect the Virtual Nodes according to the cluster network topology.

The Application layer defines operations and configuration needed to set up an environment specifically tailored to the application to be installed on the cluster. The Application layer also installs and starts the application.

Layers higher in the architecture can reference and manipulate resources defined lower in the architecture through layer APIs, one for each layer, which are invariant across layer implementations. Each layer defines abstract names for Layer API objects that permit lower layer configuration objects to be referenced within that layer's API by a higher layer. This permits a complete system configuration to be constructed layer by layer to meet the specific needs of a given application and then ported to, for example, a different provider, simply by replacing the provider layer configuration and leaving the other layer configurations unchanged.

The vTDS Core

The vTDS Core has two functions. First, it constructs the stack of layer implementaitons used to manage a particular vTDS and a vTDS Configuration that matches the vTDS to be managed. These two activities are driven by the Core Configuration which specifies the set of Layer implementations to assemble and the list of configuration overlay sources (in the order they are to be applied) used to compose the final vTDS Configuration.

An example core configuration can be found here.

Once the stack and the configuration have been constructed, the vTDS Core drives all actions into the stack. The available actions are:

  • validate
  • deploy
  • remove
  • show_config
  • base_config

The validate action runs a validation pass over the final vTDS Configuration. The deploy action causes the vTDS cluster to be deployed. The remove action tears down the vTDS cluster, releasing all provider resources used by the cluster. The show_config action collates the final vTDS Configuration an prints it on standard output. This allows the user to see exactly what configuration is being used for the vTDS cluster. The base_config action displays the base configuration for all of the selected layer configurations, along with annotations to help designers of new vTDS clusters develop their configurations.

The Public Canned Configurations Repository

The configuration mechanism for vTDS lends itself to using canned vTDS Configuration overlays to construct a vTDS Configuration. The vTDS Configuration Repository is a public repository containing potentially useful canned vTDS Core Configurations and Configuration Overlays. These can be used to form the basis of vTDS Configurations that are then tweaked using private overlays to construct a final vTDS Configuration for a particular purpose.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vtds_core-0.0.13.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vtds_core-0.0.13-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file vtds_core-0.0.13.tar.gz.

File metadata

  • Download URL: vtds_core-0.0.13.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vtds_core-0.0.13.tar.gz
Algorithm Hash digest
SHA256 5924a5e0b92e1e7b372ed22331ca2615f9ee62175aebf9166e906bc2f95eaf18
MD5 50fcb98ee8acce501e78cfec14de2ad1
BLAKE2b-256 9e61944587fb7d2b789a4415c725f2a0961e3cbb8be8e155436ff77aad5d831e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtds_core-0.0.13.tar.gz:

Publisher: build.yml on Cray-HPE/vtds-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtds_core-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: vtds_core-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vtds_core-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 20058c158d1a5d64141c76909b41943e6cc724c5ab10a1ae56e3860171e2caf1
MD5 db6f362a98a62ed29c4f7e19f5e36ac9
BLAKE2b-256 f562d59520cbaa7e27ca9e1fd822dc851b278a64d896b1718831a3d3e55028e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtds_core-0.0.13-py3-none-any.whl:

Publisher: build.yml on Cray-HPE/vtds-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page