Documentation
¶
Overview ¶
Command sluis is the whole product in one binary, one image and one chart (docs/decisions/0032).
sluis serve --config <file> the issuer, the hub and the console sluis controller github --config <file> the GitHub controller's loop sluis controller slack --config <file> the Slack controller's loop sluis tick github <target> --config <file> one GitHub target's tick, once sluis tick slack <target> --config <file> one Slack workspace's tick, once sluis migrate --from <config> --to <config> copy the State between storages (docs/decisions/0031)
Each subcommand is configured by one file and reads nothing else (see internal/config). Everything a subcommand decides is assembled in its own package, internal/rosterapp and internal/{github,slack}roster/app; this file only chooses which one to start and stops it.
`controller <kind>` is a long-running loop, one Deployment per kind: the Kubernetes runner. `tick <kind> <target>` is the unit of work the loop is made of (docs/decisions/0029), run once under the target's lease and then exit: an operator's command now, and the shape of a function that lives for one invocation later. A target is an organisation's login or `github:links` for GitHub, and a workspace's key for Slack.