-
Silvio Ankermann authored
This commit replaces the update_inventory.py script with a Nix module based on Flake Parts [1] which defines all configuration options including types and default values. Only values that are exposed by the module can be set in the configuration. Exposed values have been removed from the default/ main.yaml in order to have only a single source of truth. As a result, all variables (set or not) are rendered into the inventory. The cluster initialization is now backed by Nix Flake templates. Template files for new clusters can be found at ./nix/templates/ cluster-repo. The cluster repository layout is changed in such a way that the ./config directory is completely handled by the user and the ./inventory directory is completely generated and may be ignored from the VCS. A ./state directory is added which is both input and output of the inventory generation and which has to be added to VCS. +---------+ | ./state | +--+---^--+ | | +------v---+---------+ +----------+ | | +-------------+ | ./config +---> Nix module +---> ./inventory | +----------+ | | +-------------+ +--------------------+ Resource request and limit handling has been changed such that unflattened arrays are used instead of individual options for each value. [1] https://flake.parts
Silvio Ankermann authoredThis commit replaces the update_inventory.py script with a Nix module based on Flake Parts [1] which defines all configuration options including types and default values. Only values that are exposed by the module can be set in the configuration. Exposed values have been removed from the default/ main.yaml in order to have only a single source of truth. As a result, all variables (set or not) are rendered into the inventory. The cluster initialization is now backed by Nix Flake templates. Template files for new clusters can be found at ./nix/templates/ cluster-repo. The cluster repository layout is changed in such a way that the ./config directory is completely handled by the user and the ./inventory directory is completely generated and may be ignored from the VCS. A ./state directory is added which is both input and output of the inventory generation and which has to be added to VCS. +---------+ | ./state | +--+---^--+ | | +------v---+---------+ +----------+ | | +-------------+ | ./config +---> Nix module +---> ./inventory | +----------+ | | +-------------+ +--------------------+ Resource request and limit handling has been changed such that unflattened arrays are used instead of individual options for each value. [1] https://flake.parts
To learn more about this project, read the wiki.
Loading