about summary refs log tree commit diff
path: root/nixos/maintainers/scripts/lxd/lxd-container-image.nix
diff options
context:
space:
mode:
authorAdam Stephens <adam@valkor.net>2023-08-24 23:00:42 -0400
committerAdam Stephens <adam@valkor.net>2023-09-03 20:06:44 -0400
commitefd1605be6a14d0c169d20b6cbea191b0aa7eb99 (patch)
tree1e1a4c9ef878b08f819fe5a0863770d56f20a592 /nixos/maintainers/scripts/lxd/lxd-container-image.nix
parent73982ef92af4add85a2f7d90cc235c3d985ad49d (diff)
nixos/lxd: add virtual-machine support, image and module
Diffstat (limited to 'nixos/maintainers/scripts/lxd/lxd-container-image.nix')
-rw-r--r--nixos/maintainers/scripts/lxd/lxd-container-image.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/nixos/maintainers/scripts/lxd/lxd-container-image.nix b/nixos/maintainers/scripts/lxd/lxd-container-image.nix
new file mode 100644
index 0000000000000..3bd1320b2b680
--- /dev/null
+++ b/nixos/maintainers/scripts/lxd/lxd-container-image.nix
@@ -0,0 +1,27 @@
+{ lib, pkgs, ... }:
+
+{
+  imports = [
+    ../../../modules/virtualisation/lxc-container.nix
+  ];
+
+  virtualisation.lxc.templates.nix = {
+    enable = true;
+    target = "/etc/nixos/lxd.nix";
+    template = ./nix.tpl;
+    when = [ "create" "copy" ];
+  };
+
+  # copy the config for nixos-rebuild
+  system.activationScripts.config = ''
+    if [ ! -e /etc/nixos/configuration.nix ]; then
+      mkdir -p /etc/nixos
+      cat ${./lxd-container-image-inner.nix} > /etc/nixos/configuration.nix
+      ${lib.getExe pkgs.gnused} 's|../../../modules/virtualisation/lxc-container.nix|<nixpkgs/nixos/modules/virtualisation/lxc-container.nix>|g' -i /etc/nixos/configuration.nix
+    fi
+  '';
+
+  # Network
+  networking.useDHCP = false;
+  networking.interfaces.eth0.useDHCP = true;
+}