Sync branch magefile with main #104308

Merged
Sybren A. Stüvel merged 85 commits from abelli/flamenco:magefile into magefile 2024-05-13 16:26:32 +02:00
2 changed files with 87 additions and 0 deletions
Showing only changes of commit 041f792594 - Show all commits

View File

@ -18,10 +18,12 @@ This is an example `flamenco-manager.yaml` file:
```yaml ```yaml
_meta: _meta:
version: 3 version: 3
manager_name: Flamenco Manager manager_name: Flamenco Manager
database: flamenco-manager.sqlite database: flamenco-manager.sqlite
listen: :8080 listen: :8080
autodiscoverable: true autodiscoverable: true
local_manager_storage_path: ./flamenco-manager-storage local_manager_storage_path: ./flamenco-manager-storage
shared_storage_path: /path/to/storage shared_storage_path: /path/to/storage
shaman: shaman:
@ -30,10 +32,12 @@ shaman:
period: 24h0m0s period: 24h0m0s
maxAge: 744h0m0s maxAge: 744h0m0s
extraCheckoutPaths: [] extraCheckoutPaths: []
task_timeout: 10m0s task_timeout: 10m0s
worker_timeout: 1m0s worker_timeout: 1m0s
blocklist_threshold: 3 blocklist_threshold: 3
task_fail_after_softfail_count: 3 task_fail_after_softfail_count: 3
variables: variables:
blender: blender:
values: values:
@ -47,9 +51,26 @@ variables:
values: values:
- platform: all - platform: all
value: -b -y value: -b -y
mqtt: # See 'MQTT Configuration' below.
client:
broker: "tcp://mqttserver.local:1883"
username: "username"
password: "your-password-here"
topic_prefix: flamenco
``` ```
The usual way to create a configuration file is simply by starting Flamenco The usual way to create a configuration file is simply by starting Flamenco
Manager. If there is no config file yet, it will start the setup assistant to Manager. If there is no config file yet, it will start the setup assistant to
create one. If for any reasons the setup assistant is not usable for you, you create one. If for any reasons the setup assistant is not usable for you, you
can use the above example to create `flamenco-manager.yaml` yourself. can use the above example to create `flamenco-manager.yaml` yourself.
## MQTT Configuration
The `mqtt` section is completely optional. If you do not know what it's for, just leave it out.
For more information about the built-in MQTT client, see
[Manager Configuration: MQTT][mqtt].
[mqtt]: {{< ref "usage/manager-configuration/mqtt.md" >}}

View File

@ -0,0 +1,66 @@
---
title: "Manager Configuration: MQTT"
titleTOC: MQTT
---
Flamenco Manager can send its internal events to an [MQTT][mqtt] broker. Other
MQTT clients can listen to those events, in order to respond to what happens on
the render farm.
[mqtt]: https://en.wikipedia.org/wiki/MQTT
*MQTT support was introduced in Flamenco 3.5.*
## Configuration
To enable MQTT functionality, place a section like this in your
`flamenco-manager.yaml` file and restart Flamenco Manager:
```yaml
mqtt:
client:
broker: "tcp://mqttserver.local:1883"
username: "username"
password: "your-password-here"
topic_prefix: flamenco
```
<div>
<style>
.gdoc-markdown dl dt {
margin-top: 0.1rem;
}
</style>
`broker`
: The URL of the MQTT Broker. Supports `tcp://` and `ws://` URLs.
`username` & `password`
: The credentials used to connect to the MQTT Broker. For anonymous access, just
remove those two keys.
`topic_prefix`
: Topic prefix for the MQTT events sent to the broker. Defaults to `flamenco`.
For example, job updates are sent to the `flamenco/jobs` topic.
</div>
## MQTT Topics
The following topics will be used by Flamenco:
| Description | MQTT topic | JSON event payload |
|----------------------------------|----------------------------------|---------------------------|
| Manager startup/shutdown | `/lifecycle` | `EventLifeCycle` |
| Farm status | `/status` | `EventFarmStatus` |
| Job update | `/jobs` | `EventJobUpdate` |
| Task update | `/jobs/{job UUID}` | `EventTaskUpdate` |
| Worker update | `/workers` | `EventWorkerUpdate` |
| Worker Tag update | `/workertags` | `EventWorkerTagUpdate` |
| Last rendered image | `/last-rendered` | `EventLastRenderedUpdate` |
| Job-specific last rendered image | `/jobs/{job UUID}/last-rendered` | `EventLastRenderedUpdate` |
For the specification of the JSON sent in the MQTT events, use the above table
and then look up the type description in the [OpenAPI specification][oapi].
[oapi]: https://projects.blender.org/studio/flamenco/src/branch/main/pkg/api/flamenco-openapi.yaml