diff --git a/deployment/data-model.nix b/deployment/data-model.nix index acc06617..b4ac2211 100644 --- a/deployment/data-model.nix +++ b/deployment/data-model.nix @@ -466,6 +466,7 @@ let inherit sources system; configuration = tf-host.config.nixos-configuration; }; + inherit (machine.config.boot.uki) name; environment = { key_file = key-file; @@ -478,7 +479,7 @@ let proxmox_password = proxmox-password; ssh_user = username; node_name = node-name; - image = "${machine.config.system.build.image}/${machine.config.boot.uki.name}.raw"; + # image = "${machine.config.system.build.image}/${name}.raw"; }; tf-env = pkgs.callPackage ./run/tf-proxmox/tf-env.nix { }; proxmox-host = "192.168.51.81"; # root@fediversity-proxmox @@ -511,7 +512,11 @@ let # cp $tmpdir/${vm_name}_host_key.pub /mnt/etc/ssh/ssh_host_ed25519_key.pub # chmod 644 /mnt/etc/ssh/ssh_host_ed25519_key.pub + # .qcow2 is around half the size of .raw, on top of supporting backups - be it apparently at the cost of performance + qemu-img convert -f raw -O qcow2 -C "${machine.config.system.build.image}/${name}.raw" /tmp/${name}.qcow2 + env ${toString (lib.mapAttrsToList (k: v: "TF_VAR_${k}=\"${toBash v}\"") environment)} \ + TF_VAR_image=/tmp/${name}.qcow2 \ tf_env=${tf-env} bash ./deployment/run/tf-proxmox/run.sh ''; }; diff --git a/deployment/run/tf-proxmox/main.tf b/deployment/run/tf-proxmox/main.tf index 3c16bb6b..da2b8318 100644 --- a/deployment/run/tf-proxmox/main.tf +++ b/deployment/run/tf-proxmox/main.tf @@ -8,7 +8,7 @@ terraform { } locals { - dump_name = "qemu-nixos-fediversity-${var.category}.raw" + dump_name = "qemu-nixos-fediversity-${var.category}.qcow2" } # https://registry.terraform.io/providers/bpg/proxmox/latest/docs @@ -124,7 +124,7 @@ resource "proxmox_virtual_environment_vm" "nix_vm" { disk { # datastore_id = "linstor_storage" datastore_id = "local" - file_format = "raw" + file_format = "qcow2" interface = "scsi0" discard = "on" iothread = true @@ -142,7 +142,7 @@ resource "proxmox_virtual_environment_vm" "nix_vm" { efi_disk { # datastore_id = "linstor_storage" datastore_id = "local" - file_format = "raw" + file_format = "qcow2" type = "4m" }