Skip to content

Commit 0074fa7

Browse files
authored
Runner startup script (#81)
1 parent d0638a6 commit 0074fa7

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

iterative/resource_runner.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,9 @@ func resourceRunner() *schema.Resource {
124124
},
125125
"startup_script": &schema.Schema{
126126
Type: schema.TypeString,
127-
Computed: true,
127+
ForceNew: true,
128+
Optional: true,
129+
Default: "",
128130
},
129131
"aws_security_group": &schema.Schema{
130132
Type: schema.TypeString,
@@ -222,6 +224,10 @@ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
222224
223225
sudo npm install -g git+https://github.com/iterative/cml.git
224226
227+
{{if .runner_startup_script}}
228+
{{.runner_startup_script}}
229+
{{end}}
230+
225231
sudo bash -c 'cat << EOF > /usr/bin/cml.sh
226232
#!/bin/sh
227233
@@ -323,6 +329,13 @@ func provisionerCode(d *schema.ResourceData) (string, error) {
323329
data["AZURE_TENANT_ID"] = os.Getenv("AZURE_TENANT_ID")
324330
data["ami"] = isAMIAvailable(d.Get("cloud").(string), d.Get("region").(string))
325331

332+
script, err := base64.StdEncoding.DecodeString(d.Get("startup_script").(string))
333+
if err != nil {
334+
return "", err
335+
}
336+
337+
data["runner_startup_script"] = string(script)
338+
326339
return renderScript(data)
327340
}
328341

iterative/resource_runner_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package iterative
22

33
import (
4+
"encoding/base64"
45
"strings"
56
"testing"
67

@@ -39,4 +40,13 @@ func TestScript(t *testing.T) {
3940
script, _ := renderScript(data)
4041
assert.Equal(t, strings.Contains(script, "sudo ubuntu-drivers autoinstall"), true)
4142
})
43+
44+
t.Run("Runner Startup Script", func(t *testing.T) {
45+
data := make(map[string]interface{})
46+
startupScript, _ := base64.StdEncoding.DecodeString("ZWNobyAiaGVsbG8gd29ybGQiCmVjaG8gImJ5ZSB3b3JsZCI=")
47+
data["runner_startup_script"] = string(startupScript)
48+
49+
script, _ := renderScript(data)
50+
assert.Equal(t, strings.Contains(script, "echo \"hello world\"\necho \"bye world\""), true)
51+
})
4252
}

0 commit comments

Comments
 (0)