A Serf pack for Flyte which will join an existing Serf cluster and allow you to raise and respond to events from your Flyte flows.
It provides two triggers UserEvent
, MemberEvent
and one command SendEvent
.
env. variable | default | description |
---|---|---|
SERF_NODE_NAME | flyte-serf | The name of this node in the cluster. |
SERF_ADVERTISE | Address that we advertise to other nodes in the cluster. By default, the bind address is advertised. | |
SERF_JOIN_HOSTS | Address of another agent to join upon starting up. This can be comma delimited to specify multiple agents to join. | |
SERF_KEYRING_FILE | Specifies a file to load keyring data from. | |
FLYTE_API | The FLYTE API endpoint to use. | |
PACK_NAME | Serf | Specifies pack name to register with. |
This event is invoked when Serf agent receives user event. Event output is a map of strings
{
"name": "...user event name...",
"payload": "...user event payload..."
}
This event is invoked when Serf agent receives member event: join, leave or failed. This event is disabled currently. Event output is a map of strings
{
"name": "...member event name...",
"memberName": "...Serf node name...",
"memberAddr": "...Serf node address..."
}
This event is emitted on the successful invocation of the SendEvent
command. It's payload is:
{
"name": "...user event name...",
"payload": "...user event payload...",
"coalesce": "...coalesce flag..."
}
This event is emitted on the unsuccessful invocation of the SendEvent
command. It's payload is an error message.
This command sends user event to a serf cluster. Command's input is
{
"name": "...user event name...",
"payload": "...user event payload...",
"coalesce": "...coalesce flag..."
}
This command can output two event types: EventSent
and SendEventFailed
To build and run from the command line:
- Clone this repo
- Run
go build
- FLYTE_API="FLYTE_API_URL" ./flyte-serf
docker build -t flyte-serf:latest .
docker run --rm flyte-serf:latest