diff options
Diffstat (limited to 'interface/README.md')
-rw-r--r-- | interface/README.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/interface/README.md b/interface/README.md new file mode 100644 index 0000000..f61a69f --- /dev/null +++ b/interface/README.md @@ -0,0 +1,39 @@ +<!-- +SPDX-FileCopyrightText: 2020 Serokell <https://serokell.io/> + +SPDX-License-Identifier: MPL-2.0 +--> + +A flake must have a `deploy` output with the following structure: + +``` +deploy +├── <generic args> +└── nodes + ├── <NODE> + │ ├── <generic args> + │ ├── hostname + │ ├── profilesOrder + │ └── profiles + │ ├── <PROFILE> + │ │ ├── <generic args> + │ │ ├── bootstrap + │ │ ├── profilePath + │ │ └── path + │ └── <PROFILE>... + └── <NODE>... +``` + +Where `<generic args>` are all optional and can be one or multiple of: + +- `sshUser` -- user to connect as +- `user` -- user to install and activate profiles with +- `sshOpts` -- options passed to `nix copy` and `ssh` +- `fastConnection` -- whether the connection from this host to the target one is fast (if it is, don't substitute on target and copy the entire closure) [default: `false`] +- `autoRollback` -- whether to roll back when the deployment fails [default: `false`] + +A formal definition for the structure can be found in [the JSON schema](./deploy.json) + +For every profile of every node, arguments are merged with `<PROFILE>` taking precedence over `<NODE>` and `<NODE>` taking precedence over top-level. + +Certain read values can be overridden by supplying flags to the deploy binary, for example `deploy --auto-rollback true .` will enable automatic rollback for all nodes being deployed to, regardless of settings.
\ No newline at end of file |