Skip to main content

pulp-workflow

Warning: This is a community plugin and is not officially supported. Scheduling tasks incorrectly can cause serious issues in your Pulp instance. Always test in a development environment first before applying changes to production.

A Pulp plugin that introduces the Workflow model. Workflows build on top of tasks in Pulp allowing users to:

  • Schedule tasks to run at any given time
  • Run sequences of tasks in a specific order
  • Set up callback services to run on workflow lifecycle events (e.g. running, completed, failed, canceled, finished)

A Workflow owns one or more WorkflowTask rows. Each task records the task_name, task_args, task_kwargs, and any reserved_resources to use when dispatching it. Workflows are immutable after creation: to change a workflow, cancel it (if it has not yet started) and create a new one.

Demo

The demo walks through syncing and publishing a file repo via a Workflow, with a callback that notifies a messaging service (e.g. Discord/Slack) on completion. Watch the YouTube demo for a video walkthrough, or follow the written demo guide to run it yourself end-to-end.

CLI

If you're using the pulp-cli, be sure to check out our pulp-workflow plugin.

Endpoints

Method URL Description
GET /pulp/api/v3/workflow/workflows/ List workflows
POST /pulp/api/v3/workflow/workflows/ Create a workflow (with tasks)
GET /pulp/api/v3/workflow/workflows/<pk>/ Retrieve a workflow
PATCH /pulp/api/v3/workflow/workflows/<pk>/ Cancel a workflow (body: {"state": "canceled"}). Works whether the workflow is waiting or running; returns 409 only if the workflow is already in a terminal state. Only "canceled" is accepted as the target state.
GET /pulp/api/v3/workflow/callback-services/ List callback services
POST /pulp/api/v3/workflow/callback-services/ Register a callback service (an executable on the worker host)
GET /pulp/api/v3/workflow/callback-services/<pk>/ Retrieve a callback service
PUT, PATCH /pulp/api/v3/workflow/callback-services/<pk>/ Update a callback service
DELETE /pulp/api/v3/workflow/callback-services/<pk>/ Delete a callback service

Callbacks

A CallbackService is a registered executable on the Pulp worker host that can be attached to a workflow to run on lifecycle events (running, completed, failed, canceled, or the synthetic finished event that fires on any terminal state).

CallbackServices can be registered via the API (see Endpoints) or via management commands, which is useful for image-bootstrap scenarios where a callback needs to exist before the API serves traffic:

pulpcore-manager add-callback-service <name> <script-path>
pulpcore-manager list-callback-services
pulpcore-manager remove-callback-service <name>

add-callback-service resolves the script path, runs the same validation as the API (absolute path, file exists, executable bit set), and persists the CallbackService row. Names must be unique within a domain; re-running with the same name fails with a clear error rather than silently updating.

list-callback-services takes no arguments and prints each registered CallbackService name on its own line (empty output when none exist).

remove-callback-service deletes the row with the given name, or exits with an error if no such row exists.

Design

For details on how workflows execute, integrate with pulpcore TaskGroups, and handle cancellation, see the design doc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulp_workflow-0.2.1.tar.gz (38.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pulp_workflow-0.2.1-py3-none-any.whl (47.3 kB view details)

Uploaded Python 3

File details

Details for the file pulp_workflow-0.2.1.tar.gz.

File metadata

  • Download URL: pulp_workflow-0.2.1.tar.gz
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pulp_workflow-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f14674e6dbf772840920015dcc1933ac69f8f0575763bcdd3da34a14d7eaded0
MD5 946aa8175ea907172df97494f50ea364
BLAKE2b-256 18ad590d84ab92138bfe16fd00c39d02e8e7753aec93d2c9f143934acf790574

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulp_workflow-0.2.1.tar.gz:

Publisher: publish.yml on pulp/pulp_workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulp_workflow-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pulp_workflow-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 47.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pulp_workflow-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3deeaecdfe6e1728e3c10f08061c24e557c34efe64410d33abb6aa7d2f45a8e1
MD5 72d75c997e56fb7c0af49fee49115fde
BLAKE2b-256 2cc2f57d6cbc71a9af72cee503a1333c8077137905408f59f90f9d11afd85780

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulp_workflow-0.2.1-py3-none-any.whl:

Publisher: publish.yml on pulp/pulp_workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.0

2 files

0.3.0

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page