holodeck

module
v0.2.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2024 License: Apache-2.0

README ยถ

Holodeck

  • Tech preview, under heavy development *

A tool for creating and managing GPU ready Cloud test environments.

Installation

make build
mv ./bin/holodeck /usr/local/bin/holodeck
Prerequisites

If utilizing the AWS provider, a valid AWS credentials must be available in the environment.

apiVersion: holodeck.nvidia.com/v1alpha1
kind: Environment
metadata:
  name: holodeck
  description: "Devel infra environment"
spec:
  provider: aws

If utilizing the SSH provider, a valid SSH key must and reachable host must be available in the environment file.

apiVersion: holodeck.nvidia.com/v1alpha1
kind: Environment
metadata:
  name: holodeck
  description: "Devel infra environment"
spec:
  provider: aws
  auth:
    keyName: user
    privateKey: "/Users/user/.ssh/user.pem"
  instance:
    hostUrl: "<some-reachable-host-ip>"

Usage

holodeck --help
The Environment CRD
apiVersion: holodeck.nvidia.com/v1alpha1
kind: Environment
metadata:
  name: holodeck
  description: "Devel infra environment"
spec:
  provider: aws # or ssh currently supported
  auth:
    keyName: user
    privateKey: "/Users/user/.ssh/user.pem"
  instance: # if provider is ssh you need to define here the hostUrl
    type: g4dn.xlarge
    region: eu-north-1
    ingressIpRanges:
      - 192.168.1.0/26
    image:
      architecture: amd64
      imageId: ami-0fe8bec493a81c7da # Ubuntu 22.04 image
  containerRuntime:
    install: true
    name: containerd
    version: 1.6.24
  kubernetes:
    install: true
    installer: kubeadm # supported installers: kubeadm, kind, microk8s
    version: v1.28.5

The dependencies are resolved automatically, from top to bottom. Following the pattern:

Kubernetes -> Container Runtime -> Container Toolkit -> NVDriver

If Kubernetes is requested, and no container runtime is requested, a default container runtime will be added to the environment..

If Container Toolkit is requested, and no container runtime is requested, a default container runtime will be added to the environment.

Create an environment
$ holodeck create -f ./examples/v1alpha1_environment.yaml
...
Delete an environment
$ holodeck delete -f ./examples/v1alpha1_environment.yaml
...
Dry Run
$ holodeck dryrun -f ./examples/v1alpha1_environment.yaml
Dryrun environment holodeck ๐Ÿ”
โœ”       Checking if instance type g4dn.xlarge is supported in region eu-north-1
โœ”       Checking if image ami-0fe8bec493a81c7da is supported in region eu-north-1
โœ”      Resolving dependencies ๐Ÿ“ฆ
Dryrun succeeded ๐ŸŽ‰

Directories ยถ

Path Synopsis
api
holodeck/v1alpha1
Package v1alpha1 contains API Schema definitions for the holodeck v1alpha1 API group +kubebuilder:object:generate=true +groupName=holodeck.nvidia.com
Package v1alpha1 contains API Schema definitions for the holodeck v1alpha1 API group +kubebuilder:object:generate=true +groupName=holodeck.nvidia.com
cmd
cli
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL