# Configure and manage a worker

After having set up a new worker, you might want to configure its static metadata with debusine-admin worker edit_metadata to alter its behaviour in different ways, as presented in this page.

Note

The examples below always configure only one single aspect and use a non-interactive method that overwrites all worker’s metadata. In practice you will often combine different metadata: you can do that either interactively in the text editor that is spawned by `debusine-admin worker edit_metadata` or you need to provide a YAML file combining the different keys if you use the non-interactive approach shown in the examples.

## Configure the accepted tasks

### With an allow list

You can restrict the list of tasks that are allowed to run on the worker by providing a list of task names in the `tasks_allowlist` metadata:

    $ cat > /tmp/metadata <<END
    tasks_allowlist:
    - sbuild
    - lintian
    END
    $ sudo debusine-admin worker edit_metadata \
      debusine-internal --set /tmp/metadata

Note

Task names are lowercased compared to the names shown in the tasks reference list.

### With a deny list

You can allow all tasks except a few exceptions by providing the list of forbidden tasks in the `tasks_denylist` metadata.

    $ cat > /tmp/metadata <<END
    tasks_denylist:
    - sbuild
    - simplesystemimagebuild
    END
    $ sudo debusine-admin worker edit_metadata \
      debusine-internal --set /tmp/metadata

## Configure the list of compatible architectures

For tasks that have architecture requirements, by default, a worker will only run those which its kernel declares support for (as determined by `arch-test -n`).

Most typical installations will be able to execute variants of the native architecture:

- `amd64` workers will accept tasks for `amd64` and `i386`.

- `arm64` workers (with 32-bit support) will accept tasks for `arm64`, `armhf`, and `armel`.

It is possible to configure a worker to accept tasks for other architectures by providing `worker:build-arch:ARCH` tags in the worker’s static metadata, assuming the tasks can run with the help of `qemu-user-static` or similar.

    $ cat > /tmp/metadata <<END
    provided_tags:
    - worker:build-arch:loong64
    END
    $ sudo debusine-admin worker edit_metadata \
      debusine-internal --set /tmp/metadata