Runs collector plugins and sends the result to fixcore.
Project description
fixworker
Fix worker daemon
Table of contents
Overview
fixworker
does all the collection and cleanup work in Fix. It is connected to fixcore
over a websocket connection and waits for instructions. By default it subscribes to the collect
and cleanup
actions as well as tag
tasks.
fixworker
loads collector plugins
like AWS, GCP, Slack, Onelogin, etc.
Only those plugins have knowledge about how to communicate with each cloud. How to collect resources and how to clean them up.
There can be one or more instances of fixworker
in a Fix deployment. A single fixworker
can collect many clouds or you could have multiple fixworker
collecting one cloud or even one account in one cloud each.
More information can be found below and in the docs.
Usage
fixworker
uses the following commandline arguments:
--subscriber-id SUBSCRIBER_ID
Unique subscriber ID (default: fix.worker)
--psk PSK Pre-shared key
--verbose, -v Verbose logging
--quiet Only log errors
--fixcore-uri FIXCORE_URI
fixcore URI (default: https://localhost:8900)
--override CONFIG_OVERRIDE [CONFIG_OVERRIDE ...]
Override config attribute(s)
--ca-cert CA_CERT Path to custom CA certificate file
--cert CERT Path to custom certificate file
--cert-key CERT_KEY Path to custom certificate key file
--cert-key-pass CERT_KEY_PASS
Passphrase for certificate key file
--no-verify-certs Turn off certificate verification
ENV Prefix: FIXWORKER_
Every CLI arg can also be specified using ENV variables.
For instance the boolean --fork
would become FIXWORKER_FORK=true
.
Details
Once fixworker
is started you do not have to interact with it at all. It will just sit there, wait for work and do its job. The following are details on how fixworker
works internally and how it integrates with fixcore
.
Actions and Tasks
Think of actions and tasks like topics and queues in a messaging system. Actions are broadcast to everyone subscribed for that action. A task is always given to exactly one worker that knows how to handle it.
Actions
When the collect
workflow within fixcore
is triggered (by either an event or a schedule or because the user manually triggered it), fixcore
will broadcast a "start collecting all the cloud accounts you know about" message to all the subscribed workers.
Once all the workers finish collecting and sent their graph to the core, the workflow will proceed to the next step which would be plan_cleanup
. This one tells anyone interested to start planing their cleanup based on the just collected graph data. Once everyone has planed their cleanup and flagged resources that should get cleaned up with the desired.clean = true
flag, the workflow proceeds to the cleanup
step which again notifies anyone subscribed to now perform cleanup of those flagged resources. Because the cleaner within fixworker
has knowledge of all dependencies in the graph, it will ensure that resources are cleaned up in the right order.
Tasks
When a plugin or a user decides that a resource tag should be added, changed or removed, e.g. by running
search id = i-039e06bb2539e5484 | tag update owner lukas
fixcore
will put this tagging task onto a task queue. This task is then consumed by a fixworker
that knows how to perform tagging for that particular resource and its particular cloud and account. In our example above where we are setting the tag owner: lukas
for an AWS EC2 instance with ID i-039e06bb2539e5484
the task would be given to a fixworker
that knows how to update AWS EC2 instance tags in that resources account.
Contact
If you have any questions feel free to join our Discord or open a GitHub issue.
License
See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fixinventoryworker-4.0.0a2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f1de8f2f948fcbb3903e74f1e8726241ee732789fffe1ffaecfc0fd56160e55 |
|
MD5 | 4fb4d908fcae5c5d3070316a36e9e63c |
|
BLAKE2b-256 | 8494c3a40a5172538b5b0281da97cbb1093912091ba1bab9525d315af1dbac53 |
Hashes for fixinventoryworker-4.0.0a2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0be58bcb8023c55fd9edb9c4e99d4f4e6ca085b33044fb7bc06f6dab5702bbc5 |
|
MD5 | ae0d794d425e7f9d92e73443a288f25e |
|
BLAKE2b-256 | ca6a3df012e73f6c8599a47fa0e92f50da6fefff3e3ef9347969fd831bb5d19f |