Monitor Worker

Purpose

The Monitor worker provides a mechanism to trigger TUF signing without requiring any credentials (or the CLI) to be present in the packaging environment.

The Monitor Worker acts as a bridge between the Packaging Pipeline and the rest of the Rugged workers. It mounts two remote filesystems: the incoming-targets directory on a network filesystem shared with the rest of the Rugged components, and a second “post-to-TUF” directory. The latter is where the packaging pipeline will write specially named sub-directories containing the targets to be signed.

Also, see the Workflow diagram that illustrates the Monitor worker’s functionality withing the Rugged system.

Operation

The Monitor worker performs the following tasks:

Requirements

As with the other Rugger workers, the Monitor Worker is implemented using the Celery distributed task queue.

However, unlike the TUF workers (timestamp-worker, etc.), the monitor-worker is not responsible for generating or signing any metadata itself. As such, it does not have any keypairs associated with it.

To operate effectively, this worker requires:

  • A rugged system user
  • Read-write access to the incoming targets directory (defaults to /var/rugged/incoming_targets)
  • Read-write access to the post-to-TUF directory (defaults to /var/rugged/post_to_tuf)
  • Credentials to RabbitMQ (to dispatch tasks to TUF workers and listen for its tasks), provided in a config file (/etc/rugged/config.yaml)

Deployment

Docker image: registry.gitlab.com/rugged/rugged/monitor-worker

Unlike the TUF workers and Admin environment, the Monitor worker does not require access to any keys, nor the TUF repository. Instead, it needs to mount the ‘post-to-TUF’ and inbound targets directories.

Build

All worker environments will need a PID directory provisioned and a worker script deployed. See build/ansible/roles/rugged.workers/default/main.yml for the definition of these directories, and see build/ansible/roles/rugged.workers/tasks/worker.yml for details on configuring ownership and permissions on the PID directory, and placing the worker.py script in the rugged bin directory.

See build/ansible/roles/rugged.workers/tasks/monitor-worker.yml for setup of the ‘post-to-TUF’ and inbound targets directories.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Rugged TUF Server is a trademark of Consensus Enterprises.