Targets Worker

Purpose

The targets-worker is responsible for generating and signing Targets metadata (including for hashed bins).

Operation

The Timestamp worker performs the following tasks:

Requirements

To operate effectively, this worker requires:

  • A rugged system user
  • Read-write access to the TUF repository (defaults to /var/rugged/tuf_repo)
  • Read-write access to the incoming targets directory (defaults to /var/rugged/incoming_targets)
  • Read-only access to its own signing keys (/var/rugged/signing_keys/targets/targets)
  • Read-only access to ALL verification keys (/var/rugged/verification_keys/)
  • Credentials to RabbitMQ (to listen for its tasks), provided in a config file (/etc/rugged/config.yaml)

Deployment

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

Typically we provide access to keys and the TUF repository by mounting them as network volumes (eg. NFS) into the Worker environment. This maintains isolation between the environments, but allows them to share access to the common files required to operate the TUF repository. It also enables us to mount the volumes read-only, in cases where the workers have no reason to write files.

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/targets-worker.yml for details on provisioning the TUF repo directory, signing key directory, the Targets signing key specifically, the verification keys directory, and the inbound targets directory.

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