This deployer is in development and is intended for specific use cases only. This is only expected to work correctly with plugins that can run as entirely self-contained modules without external dependencies like system commands.
This library is an implementation of the arcaflow deployer interface that uses the podman CLI.
(full configuration example)
deployer:
type: python
# Optional Fields
pythonPath: /usr/bin/python3.9
workdir: /tmp
modulePullPolicy: Always | IfNotPresent
pythonPath
(optional, default/usr/bin/python
)- Path to the python interpreter binary
workdir
(optional, default/tmp
)- folder where the virtual environments of every single plugin are stored.
Setting
modulePullPolicy
asIfNotPresent
the workdir will work as a cache and will speed up the workflow runs.
- folder where the virtual environments of every single plugin are stored.
Setting
modulePullPolicy
(optional, defaultIfNotPresent
)IfNotPresent
: will check in theworkdir
path if the requested module At the requested version has been already pulledAlways
: will always pull the module, if already present, will delete the previous version and will pull it again.
The main difference in the workflow syntax is that instead of passing a container image
as plugin (like the podman, docker and kubernetes deployer) must be passed a python module
either in the Git
or in the Pypi
format as previously mentioned.
Module Name Format:
<module_name>@git+<repo_url>[@git_commit_sha]
Example Git
source workflow
steps:
kill_pod:
plugin: arcaflow-plugin-kill-pod@git+https://github.com/redhat-chaos/arcaflow-plugin-kill-pod.git@a34551a4aa68d822ba54f338148ca6e6a28c493b
step: kill-pods
input:
...