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.12.tar.gz (31.4 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.12-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vtds_core-0.0.12.tar.gz
  • Upload date:
  • Size: 31.4 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.12.tar.gz
Algorithm Hash digest
SHA256 4aaad37b849b108238211a037c4a0caf4fb25340daf0f06ce6678725eb51698d
MD5 f0d0950d83caf9eddd6dfb060f9db89c
BLAKE2b-256 4f3856bb5a2a0079057e0082cb52fb92f69d0699374ce368c5c2e039fdf69acc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtds_core-0.0.12.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.12-py3-none-any.whl.

File metadata

  • Download URL: vtds_core-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 40.4 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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 ed917b0dd28710db93df6643c56ed7d1c83fbcb59885fdbd385c5c1a6fae7207
MD5 accbcfbe3537d1ca5be6c77f046dd91c
BLAKE2b-256 4bd6172fccf32af3a1fb34637e279ec00ad0d3e4c0ca06b12c3000b7345dab96

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtds_core-0.0.12-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