-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Argo backend #19
Conversation
* add: subparser for argoize * add: Nikhil's changes. * feat: generating workflow name using output file name. * feat: function to create Argo template from node. * chore: added docstring. * chore: added comments. * feat: setting the env vars before generation of the argo yaml. * feat: function to generate NFS volume specs for K8s. * feat: added support for mounting NFS volumes. * fix: using absolute path for the NFS mount paths. * fix: typo. * feat: function for generating Argo templates for PIRlib Graph objects. * chore: added comments. * feat: enabled creation of DAG tasks. * chore: added Argo specific refactoring. * chore: refactored argo task names. * fix: files cannot be mounted as volumes in Argo/K8s. * chore: removed redundant module. * chore: debugging code. * chore: optimized docker image generation. * add: dockerignore file to prevent copying of unnecessary files. * fix: missing volume mount. * chore: reverted to original formatting. * chore: removed spurious code. * chore: increased black linelength to 100.
add: `wiki_parser` example from Forte
Revert "add: `wiki_parser` example from Forte"
Can we include the requirements to run the new Argo example? Also, we can include the generated YAML files from the new example, like docker and local backends If this makes the |
example/run_argo.sh
Outdated
|
||
### Module 1: Docker_Packaging | ||
python $ROOTDIR/bin/pircli dockerize \ | ||
--auto $ROOTDIR \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TBH, —auto $ROOTDIR
is a bit confusing.
May be something like this will be better?
$ROOTDIR \
--auto
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure!
Sure, will add that.
The issue with this is that it would expose specific information about my development setup such as:
None of this is sensitive, so i have no issue exposing this if you are fine with it. |
@Nilabhra
|
Sure, just be aware that the YAML files would not work out of the box unlike the YAML file for docker-compose. |
@zhanyuanucb Up for another round of review. |
@Nilabhra Could you put all the examples together in one .md file so that reader can see the toy example running on different backends? Maybe later the same .md file can be extended by the The rest looks good to me. |
I can copy-paste some of the content of the |
@Nilabhra |
Additions:
.dockerignore
file to filter out unneeded files from copied over to the container. Currently, everything in the project root get's copied over, including inputs and outputs.Changes:
dockerize
module to support tagging + pushing a docker image to Docker Hub. For local deployments, later, support for a local docker registry needs to be added.example.py
file to not accept the transaction model file name directly. The assumption now is that the user would provide the path to the directory where the pre-trained model binary is present. This had to be done as Kubernetes doesn't allow mounting of files as volumes. This modification seemed reasonable to me since most saved models use a unique directory name with a generic name for the weights binary (such asmodel.bin
orweights.pt
).python
, which seems to work for me and @nikhil.dockerize
module avoids setting the entry point toconda run -n pircli
. While this works perfectly for docker-compose, it fails to work for Argo. I decided to just set the PATH env var to the location of the python binary for thepircli
environment. That worked both for docker and for Argo.Closes:
Comments:
I have tested out both the Argo backend the existing Docker backend and ensure they both work with the recent changes.
Commit history:
add: subparser for argoize
add: Nikhil's changes.
feat: generating workflow name using output file name.
feat: function to create Argo template from node.
chore: added docstring.
chore: added comments.
feat: setting the env vars before generation of the argo yaml.
feat: function to generate NFS volume specs for K8s.
feat: added support for mounting NFS volumes.
fix: using absolute path for the NFS mount paths.
fix: typo.
feat: function for generating Argo templates for PIRlib Graph objects.
chore: added comments.
feat: enabled creation of DAG tasks.
chore: added Argo specific refactoring.
chore: refactored argo task names.
fix: files cannot be mounted as volumes in Argo/K8s.
chore: removed redundant module.
chore: debugging code.
chore: optimized docker image generation.
add: dockerignore file to prevent copying of unnecessary files.
fix: missing volume mount.
chore: reverted to original formatting.
chore: removed spurious code.
chore: increased black linelength to 100.