chaudrondocs

Start here

Glossary

The words of chaudron, Guile and Guix, in a sentence each.

On this page

Infrastructure as code

Infrastructure as code: writing the servers, records and systems you want in files, and letting a tool make the real ones match, instead of clicking in consoles.

Provider: the part of chaudron that knows one service, such as Hetzner Cloud or Cloudflare: how to create, read, update and delete its resources. See Writing a provider.

Resource: one thing a provider manages: a server, an SSH key, a DNS record. Each resource call, like hetzner-server, declares one. See Resources.

Stage: an environment, like "dev" or "prod", opened with with-stage. Each stage has its own resources and its own state. See Stages.

Converge: what each resource call does: look at the real resource, and create, update or replace it until it matches the program.

Props: the arguments of a resource call, such as #:type "cx23": what the program wants.

Outputs: what the provider tells about a resource once it exists, such as its id or address, read with output.

State: what chaudron remembers about the resources it made, one small file each in .chaudron/. Without it, chaudron would create everything again. See State.

Drift: a difference between a resource and what chaudron last made, such as a server resized by hand in the console. The next run reports it, then undoes it.

Dry run: a run that reads what exists and reports what it would change, changing nothing. See Dry runs.

Replace: delete a resource and create it again, when what changed cannot change in place, such as a server's image. Each resource page says which changes replace it.

Guile and Scheme

Scheme: a small programming language of the Lisp family, where every call is written in parentheses: (f a b).

Guile: the Scheme that runs chaudron programs, the GNU project's.

Keyword argument: a named argument, written #:name value, such as #:type "cx23".

Module: a file of definitions loaded with use-modules, such as (chaudron hetzner).

Guix

Guix: a package manager in which each package is built from a precise recipe, so that the same inputs give the same result. It also pins the versions a project uses.

Guix System: an operating system configured entirely by one declaration, a Scheme file: packages, services, users. Deploying the same file gives the same system. See Guix System.

guix deploy: the Guix command that installs a system declaration on a remote machine. chaudron runs it for you.

Generation: each system deployed by Guix is kept as a generation, which you can go back to if the next one goes wrong.

Channel: a source of Guix packages, such as Guix itself or chaudron, given in a project's channels.scm.

Lock: channels.lock.scm: the exact commits of a project's channels, so that it gets the same versions everywhere. See Installation.