Details
- Tag
- v2.7.1
This is the Flamenco Manager implementation in Go.
Author: Sybren A. Stüvel <sybren@blender.studio>
To run Flamenco Manager for the first time, follow these steps:
Note that variables and path_replacement share a namespace -- variable names have to be unique, and cannot be used in both variables and path_replacement sections. If this happens, Flamenco Manager will log the offending name, and refuse to start.
Released versions of Flamenco Manager have a version number v{major}.{minor}, like v2.4, or v{major}.{minor}.{fix}, like v2.4.1.
Development versions have v{release}-{number}-{hash}, where number indicates the number of commits since the official version v{release}. The hash is the Git hash of the last commit. If the version number ends with -dirty it means that there were uncommitted changes when Flamenco Manager was built.
Apart from the above web-based setup, you can configure advanced settings by editing flamenco-manager.yaml. For example, you can:
Intervals (like download_task_sleep) can be configured in seconds, minutes, or hours, by appending a suffix s, m, or h. Such a suffix must always be used.
To secure web traffic using HTTPS, we recommend using either Let's Encrypt or custom TLS certificates. Transport Layer Security (TLS) is the we-are-no-longer-living-in-the-90ies name for SSL.
Let's Encrypt can be used when the machine is publicly reachable and has a valid domain name. This is easy to set up, as it automatically requests & renews certificates:
If you want to manage your own TLS certificates, set the path in the tlskey and tlscert configuration options. Then set listen_https to the appropriate port number.
Flamenco Manager accepts the following CLI arguments:
Logs can be viewed with journalctl -u flamenco-manager.service.
$FM denotes the directory containing a checkout of Flamenco Manager, that is, the absolute path of this flamenco-manager directory.
To run all unit tests, run make test. To run a specific GoCheck test, run go test ./flamenco -v --run TestWithGocheck -check.f SchedulerTestSuite.TestVariableReplacement where the argument to --run determines which suite to run, and -check.f determines the exact test function of that suite. Once all tests have been moved over to use GoCheck, the --run parameter will probably not be needed any more.
Flamenco Manager is responsible for initiating all communication between Server and Manager, since Manager should be able to run behind some firewall/router, without being reachable by Server.
In the text below, some_fields can refer to configuration file settings.
0. Pushes happen as POST to "/api/flamenco/managers/{manager-id}/task-update-batch"
When a worker starts working on a task, that task moves to status "active". The worker then regularly calls /may-i-run/{task-id} to verify that it is still allowed to run that task. If this end-point is not called within active_task_timeout_interval_seconds seconds, it will go to status "failed". The default for this setting is 60 seconds, which is likely to be too short, so please configure it for your environment.
This timeout check will start running 5 minutes after the Manager has started up. This allows workers to let it know they are still alive, in case the manager was unreachable for longer than the timeout period. For now this startup delay is hard-coded.
In no particular order:
The distributable Flamenco Manager packages are built using GNU Make.
Each worker has a sleep schedule, which can be configured from the dashboard and behaves in the following way: