AI job deployment templates with YAML and Jinja2.
Project description
AI Job Deploy
Getting started.
pip install ai-jobdeploy
- In a project
mkdir .js
- Create some deployment templates (see below)
- Get experimenting!
Base Template
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:
sequence
script
file
sequence
: sequence of script
s or file
s.
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
- start
Using templates to create and manage resources
List resources:
jd ls
Here is how to create the my_model.yaml
resource:
jd build local up --params run='python3 -u test.py',name=test
Do something with the resource (anything apart from up). Get id
from jd ls
.
jd build watch --id <id>
Stop resource:
jd rm <id> [--purge/--no-purge]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ai-jobdeploy-0.0.1.dev2.tar.gz
.
File metadata
- Download URL: ai-jobdeploy-0.0.1.dev2.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 562487aec3412bdfb2b2a233b396e3a5ef38b2ce8dd1161e19fdea6e35d8338f |
|
MD5 | 8dd6f03cffbf4885630f62a3cbf83f68 |
|
BLAKE2b-256 | 40f5e31c06996701d476f3de4e80de705f9336c3f4f90f6be87daa92891c1eab |