forked from mirrors_public/oddlama_nix-config
refactor: centralize definition of MicroVM node names
This commit is contained in:
parent
d7f69c5baa
commit
cbcd3c943b
3 changed files with 34 additions and 15 deletions
|
@ -59,14 +59,24 @@
|
|||
'';
|
||||
|
||||
microvm.vms.${vmName} = let
|
||||
# Loads configuration from a subfolder of this nodes configuration, if it exists.
|
||||
configPath =
|
||||
if nodePath == null
|
||||
then null
|
||||
else nodePath + "/microvms/${vmName}";
|
||||
|
||||
node =
|
||||
(import ../nix/generate-node.nix inputs)
|
||||
# TODO This is duplicated three times. This is microvm naming #1
|
||||
"${nodeName}-${vmName}"
|
||||
vmCfg.nodeName
|
||||
{
|
||||
inherit (vmCfg) system;
|
||||
# TODO make this configurable (or even disableable)
|
||||
config = nodePath + "/microvms/${vmName}";
|
||||
# Load configPath, if it exists.
|
||||
${
|
||||
if configPath != null && builtins.pathExists configPath
|
||||
then "config"
|
||||
else null
|
||||
} =
|
||||
configPath;
|
||||
};
|
||||
mac = net.mac.addPrivate vmCfg.id cfg.networking.baseMac;
|
||||
in {
|
||||
|
@ -292,6 +302,16 @@ in {
|
|||
...
|
||||
}: {
|
||||
options = {
|
||||
nodeName = mkOption {
|
||||
type = types.str;
|
||||
default = "${nodeName}-${name}";
|
||||
description = mdDoc ''
|
||||
The name of the resulting node. By default this will be a compound name
|
||||
of the host's name and the vm's name to avoid name clashes. Can be
|
||||
overwritten to designate special names to specific vms.
|
||||
'';
|
||||
};
|
||||
|
||||
id = mkOption {
|
||||
type =
|
||||
types.addCheck types.int (x: x > 1)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
attrNames
|
||||
literalExpression
|
||||
mapAttrs
|
||||
mdDoc
|
||||
mkIf
|
||||
mkOption
|
||||
types
|
||||
|
@ -43,7 +44,7 @@ in {
|
|||
defineNixExtraBuiltins = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
description = mdDoc ''
|
||||
Add nix-plugins and the correct extra-builtin-files definition to this host's
|
||||
nix configuration, so that it can be used to decrypt the secrets in this repository.
|
||||
'';
|
||||
|
@ -53,7 +54,7 @@ in {
|
|||
default = {};
|
||||
type = types.attrsOf types.path;
|
||||
example = literalExpression "{ local = ./secrets.nix.age; }";
|
||||
description = ''
|
||||
description = mdDoc ''
|
||||
This file manages the origin for this machine's repository-secrets. Anything that is
|
||||
technically not a secret in the classical sense (i.e. that it has to be protected
|
||||
after it has been deployed), but something you want to keep secret from the public;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue