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
moduleSource: Git | Pypi
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.
moduleSource
(optional, defaultPypi
)Pypi
: the module will be pulled from pypi.org. The plugin name must be in the format<pypi_module_name>[@<version>]
, if version is omitted the latest version will be pulledGit
: the module will be pulled from a Git repository containing a plugin. The plugin name must be in the format<module_name>@git+<repo_url>[@git_commit_sha]
, if git commit sha is omitted, the HEAD of main will be pulled
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:
Pypi
:<pypi_module_name>[@<version>]
Git
:<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:
...
Example PyPi
source workflow
steps:
kill_pod:
plugin: [email protected]
step: kill-pods
input:
....