Pipelines
Pipelines orchestrate the execution of BatchX images. Their execution results in the creation of a set of jobs, that we refer to as "workflow".
In BatchX pipelines can run client-side (outside of BatchX), or as BatchX jobs.
Client-side pipelines
BatchX jobs can be orchestrated client-side by using our APIs or CLI commands, by using the workflow management system of choice of the user.
Workflow management
Client-side pipelines are responsible of managing the workflow creation and closing, according to the following life cycle:
- Call
workflow-createcommand to create a new workflow - Perform job orchestration by passing the workflow token to the
submit/run__commands - If:
- everything went well: Call
workflow-close - an error ocurred, call
workflow-closepassing the error description
- everything went well: Call
BatchX pipelines
Pipelines can run as BatchX jobs also. In order to do so, the image needs to be declared as a pipeline image (supported by manifest versions onwards 06).
Runtime considerations
The platform handles different regular images jobs than pipelines jobs. In particular, for pipeline containers:
- Input files are not downloaded to the local filesystem. Instead, they are kept as remote BatchX filesystem references in the input.json file.
- An additional set of environment variables is available, aimed at configuring the BatchX API clients or CLI, to perform the job orchestration.
BATCHX_TOKEN, BATCHX_ENDPOINT, BATCHX_SECURE_CONNECTION, BATCHX_ENV
Workflow management
BatchX pipelines are not allowed to manage the workflow by themselves, instead it is managed by the platform.