|
2 | 2 |
|
3 | 3 | > * Tech preview, under heavy development * |
4 | 4 |
|
5 | | -A tool for creating and managing GPU ready Cloud test environments. |
| 5 | +A tool for creating and managing GPU-ready Cloud test environments. |
6 | 6 |
|
7 | | -## Installation |
| 7 | +--- |
| 8 | + |
| 9 | +## 📖 Documentation |
| 10 | + |
| 11 | +- [Quick Start](docs/quick-start.md) |
| 12 | +- [Prerequisites](docs/prerequisites.md) |
| 13 | +- [Commands Reference](docs/commands/) |
| 14 | +- [Contributing Guide](docs/contributing/) |
| 15 | +- [Examples](docs/examples/) |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +## 🚀 Quick Start |
| 20 | + |
| 21 | +See [docs/quick-start.md](docs/quick-start.md) for a full walkthrough. |
8 | 22 |
|
9 | 23 | ```bash |
10 | 24 | make build |
11 | | -mv ./bin/holodeck /usr/local/bin/holodeck |
| 25 | +sudo mv ./bin/holodeck /usr/local/bin/holodeck |
| 26 | +holodeck --help |
12 | 27 | ``` |
13 | 28 |
|
14 | | -### Prerequisites |
| 29 | +--- |
15 | 30 |
|
16 | | -If utilizing the AWS provider, a valid AWS credentials must be available in the environment. |
| 31 | +## 🛠️ Prerequisites |
17 | 32 |
|
18 | | -```yaml |
19 | | -apiVersion: holodeck.nvidia.com/v1alpha1 |
20 | | -kind: Environment |
21 | | -metadata: |
22 | | - name: holodeck |
23 | | - description: "Devel infra environment" |
24 | | -spec: |
25 | | - provider: aws |
26 | | -``` |
| 33 | +- Go 1.20+ |
| 34 | +- (For AWS) Valid AWS credentials in your environment |
| 35 | +- (For SSH) Reachable host and valid SSH key |
27 | 36 |
|
28 | | -If utilizing the SSH provider, a valid SSH key must and reachable host must be available in the environment file. |
29 | | -
|
30 | | -```yaml |
31 | | -apiVersion: holodeck.nvidia.com/v1alpha1 |
32 | | -kind: Environment |
33 | | -metadata: |
34 | | - name: holodeck |
35 | | - description: "Devel infra environment" |
36 | | -spec: |
37 | | - provider: aws |
38 | | - auth: |
39 | | - keyName: user |
40 | | - privateKey: "/Users/user/.ssh/user.pem" |
41 | | - instance: |
42 | | - hostUrl: "<some-reachable-host-ip>" |
43 | | -``` |
| 37 | +See [docs/prerequisites.md](docs/prerequisites.md) for details. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## 📝 How to Contribute |
| 42 | + |
| 43 | +See [docs/contributing/](docs/contributing/) for full details. |
| 44 | + |
| 45 | +### Main Makefile Targets |
| 46 | + |
| 47 | +- `make build` – Build the holodeck binary |
| 48 | +- `make test` – Run all tests |
| 49 | +- `make lint` – Run linters |
| 50 | +- `make clean` – Remove build artifacts |
| 51 | + |
| 52 | +--- |
44 | 53 |
|
45 | | -## Usage |
| 54 | +## 🧑💻 Usage |
| 55 | + |
| 56 | +See [docs/commands/](docs/commands/) for detailed command documentation and examples. |
46 | 57 |
|
47 | 58 | ```bash |
48 | 59 | holodeck --help |
49 | 60 | ``` |
50 | 61 |
|
51 | | -### The Environment CRD |
52 | | - |
53 | | -```yaml |
54 | | -apiVersion: holodeck.nvidia.com/v1alpha1 |
55 | | -kind: Environment |
56 | | -metadata: |
57 | | - name: holodeck |
58 | | - description: "Devel infra environment" |
59 | | -spec: |
60 | | - provider: aws # or ssh currently supported |
61 | | - auth: |
62 | | - keyName: user |
63 | | - privateKey: "/Users/user/.ssh/user.pem" |
64 | | - instance: # if provider is ssh you need to define here the hostUrl |
65 | | - type: g4dn.xlarge |
66 | | - region: eu-north-1 |
67 | | - ingressIpRanges: |
68 | | - - 192.168.1.0/26 |
69 | | - image: |
70 | | - architecture: amd64 |
71 | | - imageId: ami-0fe8bec493a81c7da # Ubuntu 22.04 image |
72 | | - containerRuntime: |
73 | | - install: true |
74 | | - name: containerd |
75 | | - version: 1.6.24 |
76 | | - kubernetes: |
77 | | - install: true |
78 | | - installer: kubeadm # supported installers: kubeadm, kind, microk8s |
79 | | - version: v1.28.5 |
80 | | -``` |
81 | | -
|
82 | | -The dependencies are resolved automatically, from top to bottom. Following the |
83 | | -pattern: |
| 62 | +### Example: Create an environment |
84 | 63 |
|
85 | | -> Kubernetes -> Container Runtime -> Container Toolkit -> NVDriver |
| 64 | +```bash |
| 65 | +holodeck create -f ./examples/v1alpha1_environment.yaml |
| 66 | +``` |
86 | 67 |
|
87 | | -If Kubernetes is requested, and no container runtime is requested, a default |
88 | | -container runtime will be added to the environment.. |
| 68 | +### Example: List environments |
89 | 69 |
|
90 | | -If Container Toolkit is requested, and no container runtime is requested, a |
91 | | -default container runtime will be added to the environment. |
| 70 | +```bash |
| 71 | +holodeck list |
| 72 | +``` |
92 | 73 |
|
93 | | -### Create an environment |
| 74 | +### Example: Delete an environment |
94 | 75 |
|
95 | 76 | ```bash |
96 | | -$ holodeck create -f ./examples/v1alpha1_environment.yaml |
97 | | -... |
| 77 | +holodeck delete <instance-id> |
98 | 78 | ``` |
99 | 79 |
|
100 | | -### Delete an environment |
| 80 | +### Example: Check status |
101 | 81 |
|
102 | 82 | ```bash |
103 | | -$ holodeck delete -f ./examples/v1alpha1_environment.yaml |
104 | | -... |
| 83 | +holodeck status <instance-id> |
105 | 84 | ``` |
106 | 85 |
|
107 | | -### Dry Run |
| 86 | +### Example: Dry Run |
108 | 87 |
|
109 | 88 | ```bash |
110 | | -$ holodeck dryrun -f ./examples/v1alpha1_environment.yaml |
111 | | -Dryrun environment holodeck 🔍 |
112 | | -✔ Checking if instance type g4dn.xlarge is supported in region eu-north-1 |
113 | | -✔ Checking if image ami-0fe8bec493a81c7da is supported in region eu-north-1 |
114 | | -✔ Resolving dependencies 📦 |
115 | | -Dryrun succeeded 🎉 |
| 89 | +holodeck dryrun -f ./examples/v1alpha1_environment.yaml |
116 | 90 | ``` |
117 | 91 |
|
118 | | -## Supported Cuda-Drivers |
| 92 | +--- |
119 | 93 |
|
120 | | -Supported Nvidia drivers are: |
| 94 | +## 📦 Supported Cuda-Drivers |
121 | 95 |
|
122 | | -```yaml |
123 | | - nvidiaDriver: |
124 | | - install: true |
125 | | - version: <version> |
126 | | -``` |
127 | | -Where `<version>` can be a prefix of any package version. The following are example package versions: |
128 | | -
|
129 | | -- 570.86.15-0ubuntu1 |
130 | | -- 570.86.10-0ubuntu1 |
131 | | -- 565.57.01-0ubuntu1 |
132 | | -- 560.35.05-0ubuntu1 |
133 | | -- 560.35.03-1 |
134 | | -- 560.28.03-1 |
135 | | -- 555.42.06-1 |
136 | | -- 555.42.02-1 |
137 | | -- 550.144.03-0ubuntu1 |
138 | | -- 550.127.08-0ubuntu1 |
139 | | -- 550.127.05-0ubuntu1 |
140 | | -- 550.90.12-0ubuntu1 |
141 | | -- 550.90.07-1 |
142 | | -- 550.54.15-1 |
143 | | -- 550.54.14-1 |
144 | | -- 545.23.08-1 |
145 | | -- 545.23.06-1 |
146 | | -- 535.230.02-0ubuntu1 |
147 | | -- 535.216.03-0ubuntu1 |
148 | | -- 535.216.01-0ubuntu1 |
149 | | -- 535.183.06-1 |
150 | | -- 535.183.01-1 |
151 | | -- 535.161.08-1 |
152 | | -- 535.161.07-1 |
153 | | -- 535.154.05-1 |
154 | | -- 535.129.03-1 |
155 | | -- 535.104.12-1 |
156 | | -- 535.104.05-1 |
157 | | -- 535.86.10-1 |
158 | | -- 535.54.03-1 |
159 | | -- 530.30.02-1 |
160 | | -- 525.147.05-1 |
161 | | -- 525.125.06-1 |
162 | | -- 525.105.17-1 |
163 | | -- 525.85.12-1 |
164 | | -- 525.60.13-1 |
165 | | -- 520.61.05-1 |
166 | | -- 515.105.01-1 |
167 | | -- 515.86.01-1 |
168 | | -- 515.65.07-1 |
169 | | -- 515.65.01-1 |
170 | | -- 515.48.07-1 |
171 | | -- 515.43.04-1 |
| 96 | +See [docs/prerequisites.md](docs/prerequisites.md#supported-cuda-drivers) for the full list and usage. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## 📂 More |
| 101 | + |
| 102 | +- [Examples](docs/examples/) |
| 103 | +- [Guides](docs/guides/) |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +For more information, see the [docs/](docs/) directory. |
0 commit comments