Expand description
The configuration renderers whose output an infrastructure file embeds or builds from (design
plan/phase4/design.md §2, §3, §6.1): each renders a machine’s resolved recipe
(Recipe, on the plan) and nothing else.
shell: the POSIX library and a recipe’s calls, for a Linux VM’s set-up and every generated Dockerfile (cloud-init carries the VM’s script).cloud_init: the same shell script, delivered in a cloud-configwrite_filesentry (gzip then base64) and run fromruncmd, for the targets that hand a VM its user data.powershell: the PowerShell library and a recipe’s calls, for a Windows VM’s set-up.dockerfile: the image a container builds from its recipe, its process Isoloom’srunnerwhen it runs services.files: the files they add to a target’s: the Dockerfiles, the libraries, the runners and the templates filled in for a container’s build.
Every step is rendered in recipe order, behind its guard, so a second apply changes nothing.
Modules§
- cloud_
init - The cloud-init carrier for a machine’s recipe (design
plan/phase4/design.md§2.1, §2.3, §5b): the shell library and a recipe’s calls, as oneshscript, delivered in awrite_filesentry (gzip then base64,encoding: gz+b64) and run fromruncmdat the step’s place in the machine’s set-up. - dockerfile
- The Dockerfile Isoloom generates from a container’s recipe (design §2.2–§2.3):
FROMits OS’s official image (pinned by digest), the project folder (/opt/isoloom, the same path a VM has) as its working folder, then each step in order. Scripts and copies are the Dockerfile’s ownCOPYandRUN, a template aCOPYof the file Isoloom filled in, and every other step oneRUNof the shell library’s call. A service doesn’t run at build: Isoloom’s runner (super::runner) is the image’s entrypoint, and starts it. The project folder is the build context. - powershell
- The PowerShell rendering of a Windows recipe (design §2.1–§2.2): the library
(
configure.ps1, one function per step kind) and one call per step. A Windows VM’s set-up runs the calls after the library. Every argument is a single-quoted literal. - runner
- Isoloom’s runner (design §3): the process of a container whose recipe runs services, generated
per machine in POSIX
shand installed as the image’s entrypoint. The engine’s init (Compose’sinit: true, a pod sharing its process namespace) is PID 1 and reaps what the runner leaves. - shell
- The shell rendering of a recipe (design §2.1–§2.2): the POSIX library (
configure.sh, one function per step kind, for apt, dnf and apk, systemd and OpenRC), and one library call per step. A Linux VM’s set-up runs the calls after the library; a generated DockerfileRUNs each call after sourcing it; cloud-init carries the VM’s script. Every argument is quoted.
Structs§
- Configured
- One machine’s recipe as its renderers read it: the environment the machine is planned in (its addresses on the target, which its templates name) and its name.
Constants§
- DIR
- Where the configuration renderers’ own files go, from the project folder.
Functions§
- files
- The files the configuration renderers add to
env’s: each container’s Dockerfile, with its runner and its filled templates, and the libraries, once, when a recipe uses them (a VM’s set-up embeds its library; the file is the same text, which the validators check). - linux_
unit - A Linux service unit’s file for
family: the same text the shell renderer writes and the Ansible backend copies, so a defined service runs the same under either carrier. An OpenRC script on Alpine, else a systemd unit. - rendered_
path - Where template
fromof machinemachine, filled in, is generated for its image’s build. - systemd_
word - One word of a systemd command line, quoted: systemd unescapes C-style in double quotes and
expands
%specifiers and$variables, each doubled to stay literal. - uses_
library - Whether a recipe has a step its library runs (not only scripts, reboots and playbooks).