From 32ce7fe25dce667082f6e6472db52b102c0087d5 Mon Sep 17 00:00:00 2001 From: oddlama Date: Sun, 17 Dec 2023 17:26:10 +0100 Subject: [PATCH] feat: finish new container backend --- hosts/ward/default.nix | 2 +- modules/config/secrets.nix | 2 +- modules/guests/common-guest-config.nix | 3 ++- modules/guests/default.nix | 15 +++++++++++---- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/hosts/ward/default.nix b/hosts/ward/default.nix index e0ea278..8104c8e 100644 --- a/hosts/ward/default.nix +++ b/hosts/ward/default.nix @@ -67,7 +67,7 @@ modules = [ ../../modules ./guests/common.nix - ({config, ...}: {node.secretsDir = ./secrets + "/${config.node.name}";}) + ({config, ...}: {node.secretsDir = ./secrets + "/${config.node.guestName}";}) mainModule ]; }; diff --git a/modules/config/secrets.nix b/modules/config/secrets.nix index 26fc11d..fbe2676 100644 --- a/modules/config/secrets.nix +++ b/modules/config/secrets.nix @@ -56,6 +56,6 @@ # TODO See https://github.com/ryantm/agenix/pull/187. system.activationScripts = lib.mkIf (config.age.secrets != {}) { removeAgenixLink.text = "[[ ! -L /run/agenix ]] && [[ -d /run/agenix ]] && rm -rf /run/agenix"; - activationScripts.agenixNewGeneration.deps = ["removeAgenixLink"]; + agenixNewGeneration.deps = ["removeAgenixLink"]; }; } diff --git a/modules/guests/common-guest-config.nix b/modules/guests/common-guest-config.nix index 82a951b..b04a3fb 100644 --- a/modules/guests/common-guest-config.nix +++ b/modules/guests/common-guest-config.nix @@ -1,6 +1,7 @@ -_guestName: guestCfg: {lib, ...}: let +guestName: guestCfg: {lib, ...}: let inherit (lib) mkForce; in { + node.guestName = guestName; node.name = guestCfg.nodeName; node.type = guestCfg.backend; diff --git a/modules/guests/default.nix b/modules/guests/default.nix index 2381154..57064ce 100644 --- a/modules/guests/default.nix +++ b/modules/guests/default.nix @@ -97,10 +97,17 @@ in { } ]; - options.node.type = mkOption { - type = types.enum ["host" "microvm" "container"]; - description = "The type of this machine."; - default = "host"; + options.node = { + type = mkOption { + type = types.enum ["host" "microvm" "container"]; + description = "The type of this machine."; + default = "host"; + }; + + guestName = mkOption { + type = types.str; + description = "The base name of this machine without the parent's name. Only defined if this is a guest."; + }; }; options.containers = mkOption {