Getting started.
pip install ai-jobdeploy- Create some deployment templates (see below)
- Get experimenting!
Templates must implement 5 fields: params, meta, config, values and builds.
params is a list of parameters specified on creation up of the resource.
meta is a list and subset of "subdir", "id", "project".
config is a dictionary of configured values (e.g. security group ids, etc..)
values are a dictionary of formatted values (on the basis of parameters) which are
and may be referred to in the builds.
The builds section must implement up and down. There are 3 types of builds:
sequencescriptfile
sequence: sequence of scripts or files.
script: an executable script (usually bash).
file: a file saved to the path given by the build name.
local.yaml
params:
- name
- run
meta:
- id
- subdir
- project
config:
python: /usr/bin/python3
builds:
install:
type: script
content: |
#!/bin/bash
{{ params['python'] }} -m pip install -r requirements.txt
deploy_script:
type: file
content: |
#!/bin/bash
mkdir -p checkpoints/{{ params.name }}
{{ params['run'] }} | tee checkpoints/{{ params.name }}/log
start:
type: script
content: |
#!/bin/bash
chmod +x .jd/{{ params['subdir'] }}/tasks/deploy_script
tmux new-session -d -s {{ params['project'] }}-{{ params['id'] }} ".jd/{{ params['subdir'] }}/tasks/deploy_script"
watch:
type: script
content: |
#!/bin/bash
tmux a -t {{ params['project'] }}-{{ params['id'] }}
down:
type: script
whitelist: [256]
content: |
#!/bin/bash
tmux kill-session -t {{ params['project'] }}-{{ params['id'] }}
purge:
type: script
content: |
#!/bin/bash
rm -rf checkpoints/{{ params['name'] }}
up:
type: sequence
content:
- install
- deploy_script
- startList resources:
jd lsHere is how to create the my_model.yaml resource:
jd build local up --params run='python3 -u test.py',name=testDo something with the resource (anything apart from up). Get id from jd ls.
jd build watch --id <id>Stop resource:
jd build down <id>Delete record of resource:
jd rm <id>