1.3 KiB
1.3 KiB
Architecture
A controlling host, called the head
chef, is responsible for sending commands to other hosts over SSH.
The hosts being controlled are called sous
chefs.
The head chef owns all the instructions and data needed to set up the sous chefs as desired.
Recipes are arranged in a directed acyclic graph (DAG); recipes can depend on each other so that they are ran sequentially (otherwise, recipes will be run in parallel, because time is precious).
'Resources' are also present in the DAG and are allowed to have edges between themselves and recipes. The conceptual idea is that some recipes provide resources (such as files) and others need them.
Definitions
- restaurant: Collection of head configuration, sous configuration, menus and a fridge. It is the whole repository of configuration.
- head: Host that instructs other hosts
- sous: Host that is instructed by other hosts
- recipe: A job that produces something, such as a file, or a certain configuration.
- menu: A collection of recipes
- fridge: Store of 'ingredients' — data (files, templates and variables) needed to cook recipes.
- freezer: Like a fridge, but encrypted on the host
- supermarket: Source of ingredients which can't be kept persistently in the fridge for some reason.