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 ๐