Commit graph

1627 commits

Author SHA1 Message Date
Jake Schurch d780bdf308
Update nixos/modules/virtualisation/proxmox-image.nix
Co-authored-by: Pol Dellaiera <pol.dellaiera@protonmail.com>
2023-07-30 11:57:29 -04:00
Jake Schurch f2794786fd proxmox-image: add additionalDiskSpace parameter as input to make-disk-image.nix 2023-07-29 20:47:46 -04:00
Emily 49c07cd259
Merge pull request #238735 from MayNiklas/proxmox-image-settings
nixos/proxmox-image: add additionalSpace, bootSize and diskSize options
2023-07-27 22:17:42 +02:00
Pol Dellaiera d242834675
Merge pull request #230109 from vdot0x23/docker-extraPackages
nixos/docker: add extraPackages option
2023-07-26 15:14:13 +02:00
Sandro 9f4a3203eb
Merge pull request #233250 from SuperSandro2000/podman-timer-persist 2023-07-21 11:34:18 +02:00
Jon Seager 5e73f0c1c9 nixos/lxd: fix default ui package 2023-07-17 08:04:42 -03:00
Sandro 75cfb4925a
Merge pull request #242126 from kjeremy/vmware-guest-aarch64
vmware-guest module: work under aarch64
2023-07-14 19:51:14 +02:00
Ryan Lahfa 49413e25e0
Merge pull request #241314 from jnsgruk/master 2023-07-08 13:58:20 +02:00
Jeremy Kolb 1e16a937ca vmware-guest module: work under aarch64 2023-07-07 15:40:29 -04:00
Jon Seager 2fbb85e2c9
nixos/lxd: add ui.enable option to toggle ui feature 2023-07-07 18:31:03 +01:00
Michael Hoang 98d970bc37 nixos/qemu-vm: use CA certificates from host 2023-07-06 21:32:08 +10:00
Sandro Jäckel 2048a8ca02
nixos/proxmox-image: fix example rendering 2023-06-30 18:14:43 +02:00
Atemu a04b45f10e
Merge pull request #238596 from nikstur/qemu-vm-use-host-pkgs
nixos/qemu-vm: use cfg.host.pkgs
2023-06-26 09:06:31 +02:00
Felix Buehler 6672dde558 treewide: use optionalAttrs instead of 'else {}' 2023-06-25 11:01:34 -03:00
nikstur f6b37ddaf2 nixos/qemu-vm: use cfg.host.pkgs 2023-06-24 00:45:15 +02:00
Martino Fontana e1a6c85c2b nixos/sysctl: raise default vm.max_map_count to 1048576 2023-06-21 19:25:42 +02:00
MayNiklas d7f89bbfb6 nixos/proxmox-image: add additionalSpace, bootSize and diskSize options 2023-06-21 14:13:03 +02:00
nikstur 0bdba6c99b nixos/qemu-vm: use persistent block device names
This change removes the bespoke logic around identifying block devices.
Instead of trying to find the right device by iterating over
`qemu.drives` and guessing the right partition number (e.g.
/dev/vda{1,2}), devices are now identified by persistent names provided
by udev in /dev/disk/by-*.

Before this change, the root device was formatted on demand in the
initrd. However, this makes it impossible to use filesystem identifiers
to identify devices. Now, the formatting step is performed before the VM
is started. Because some tests, however, rely on this behaviour, a
utility function to replace this behaviour in added in
/nixos/tests/common/auto-format-root-device.nix.

Devices that contain neither a partition table nor a filesystem are
identified by their hardware serial number which is injecetd via QEMU
(and is thus persistent and predictable). PCI paths are not a reliably
way to identify devices because their availability and numbering depends
on the QEMU machine type.

This change makes the module more robust against changes in QEMU and the
kernel (non-persistent device naming) and by decoupling abstractions
(i.e. rootDevice, bootPartition, and bootLoaderDevice) enables further
improvement down the line.
2023-06-16 19:36:03 +02:00
Raito Bezarius 610f60231f nixos/qemu-vm: introduce virtualisation.directBoot
As with many things, we have scenarios where we don't want to boot on a
disk / bootloader and also we don't want to boot directly.

Sometimes, we want to boot through an OptionROM of our NIC, e.g. netboot
scenarios or let the firmware decide something, e.g. UEFI PXE (or even
UEFI OptionROM!).

This is composed of:

- `directBoot.enable`: whether to direct boot or not
- `directBoot.initrd`: enable overriding the
  `config.system.build.initialRamdisk` defaults, useful for
  netbootRamdisk for example.

This makes it possible.
2023-06-09 14:51:18 +02:00
K900 57e1ea5a18 nixos/libvirtd: don't use cp -n 2023-06-05 19:14:01 +03:00
Victor Buttner 4f1ccb7fc5 nixos/docker: add extraPackages option
This permits easier use of some features, e.g. docker checkpoint.
2023-06-02 15:45:55 +02:00
Ryan Lahfa 0902958046
Merge pull request #235295 from nikstur/qemu-vm-improve-comments-and-docs
nixos/qemu-vm: improve comments and option descriptions
2023-06-02 15:34:49 +02:00
Amine Chikhaoui 709043ed97
add release 23.05 AWS AMIs 2023-06-01 13:46:53 -04:00
nikstur 003fec835c nixos/qemu-vm: remove grub references from useBootLoader description 2023-06-01 01:38:08 +02:00
nikstur 8ea8154a32 nixos/qemu-vm: (re-)move old/incorrect comments 2023-06-01 01:38:06 +02:00
Raito Bezarius 09d1022782 nixos/qemu-vm: fix 32-bits assert for memorySize
It should be an implication, rather than &&.
2023-05-27 17:20:08 +02:00
Ryan Lahfa 537c6ede55
Merge pull request #234266 from emilylange/qemu-vm-2047mb
nixos/qemu-vm: add `virtualisation.memorySize < 2048` assertion on 32bit
2023-05-27 15:31:00 +02:00
emilylange 5dbd4f3243
nixos/qemu-vm: add virtualisation.memorySize < 2048 assertion on 32bit 2023-05-26 19:43:58 +02:00
Ryan Lahfa 435237d641
Merge pull request #233350 from GrahamDennis/grahamdennis/testing-networks
nixos/qemu-vm: add option for named network interfaces
2023-05-26 15:57:01 +02:00
lucasew 8587646ef3 nixos/virtualisation/google-compute-config: minor refactoring
Signed-off-by: lucasew <lucas59356@gmail.com>
2023-05-26 00:56:32 +00:00
illustris 6a20c13258
nixos/proxmox-image: fix qemu build failure 2023-05-25 16:25:43 +05:30
Graham Dennis 93502aa3b1 nixos/qemu-vm: add option for named network interfaces
Adds a new option to the virtualisation modules that enables specifying explicitly named network interfaces in QEMU VMs.
The existing `virtualisation.vlans` option is still supported for cases where the name of the network interface is irrelevant.
2023-05-24 08:54:20 +10:00
Sandro Jäckel 9ad0793b40
nixos/podman: persist timer
otherwise the timer might never run on laptops which could be shutdown
during the night
2023-05-21 17:24:16 +02:00
Sandro Jäckel 64361e26b2
nixos/libvirtd: enable polkit
it is enforced by an assert anyway
2023-05-20 17:30:34 +02:00
Yoann Beaugnon 9617d41ab1 nixos/libvirtd: add support for nixos managed libvirt hooks
Libvirt support calling user defined hooks on certains events.
Documentation can be found https://libvirt.org/hooks.html.
This commit allow specifying these hooks via the
virtualisation.libvirtd.hooks.<name>.* options
2023-05-19 12:46:07 +02:00
Maciej Krüger 5bb24e21ee
Merge pull request #231097 from aanderse/lxc/nixos-rebuild-boot 2023-05-16 04:13:01 +02:00
Fabian Möller c51fe112cc
treewide: pass system argument to eval-config.nix
Calling `eval-config.nix` without a `system` from a Nix flake fails with
`error: attribute 'currentSystem' missing` since #230523. Setting
`system = null` removes the use of `currentSystem` and instead uses the
value from the `nixpkgs` module.
2023-05-12 14:56:23 +02:00
Arian van Putten 6c0935d466
Merge pull request #231140 from NixOS/rosetta-nix-build
modules/rosetta: configure nix build sandbox to use rosetta
2023-05-11 14:21:54 -04:00
ajs124 30bea8d82d nixos/*: remove boot.grub.version 2023-05-10 21:51:26 +02:00
Arian van Putten a33d032939 modules/rosetta: configure nix build sandbox to use rosetta
With this we can do x86_64 builds on aarch64
2023-05-10 14:28:50 -04:00
Aaron Andersen dd2c3b1310 nixos/lxc-container: ensure /sbin/init is updated on nixos-rebuild boot 2023-05-10 11:04:07 -04:00
Ryan Lahfa 98167d573d
Merge pull request #229313 from mped-oticon/mped_proxmox_assert
nixos/proxmox-image: Disable O_DIRECT to fix assert when writing to tmpfs
2023-05-08 16:11:40 +02:00
Mark Ruvald Pedersen 66fb2f539a nixos/proxmox-image: Disable O_DIRECT to fix assert
Context summary:
'vma create' can't otherwise write to tmpfs such as /dev/shm.
This is important when used from non-nixos machines which may
have /build as tmpfs.

VMA is Proxmox's virtual machine image format that wraps QEMU images,
augmenting these with proxmox-specific configuration file.
proxmox-image.nix uses the VMA tool to create vma image files.
The VMA tool exists as a patchset ontop of QEMU.

VMA writes its output with open() and O_DIRECT flag.
O_DIRECT does not work on Linux tmpfs [1]. Thus:
$ vma create ~/output.vma ...  # works, assuming home isn't tmpfs.
$ vma create /dev/shm/output.vma ...  # fails since /dev/shm is tmpfs
Failure results in assert(*errp == NULL).

O_DIRECT is a cache performance hint.
But it currently blocks our usage of nixos-generate -f proxmox from
Non-NixOS hosts and Docker.

The patch here simply removes O_DIRECT:
vma-writer.c later performs memalign due to O_DIRECT, but this is
safe to do with or without O_DIRECT.
Ideally, this should be fixed in upstream Proxmox: Perhaps by falling
back to open without O_DIRECT.

Another attempt to fix this SIGABRT is [2], which writes the vma file
directory to $out/ folder -- however that may still be tmpfs mounted
which it is in our case.

[1] https://lore.kernel.org/lkml/45A29EC2.8020502@tmr.com/t/
[2] https://github.com/NixOS/nixpkgs/pull/224282
2023-05-08 12:33:41 +02:00
Vladimír Čunát 5674901601
Revert "nixos/qemu-vm: fix diskless VMs" 2023-05-06 21:41:14 +02:00
Ryan Lahfa 1ab4d7d0c3
Merge pull request #228047 from RaitoBezarius/diskless-vm
nixos/qemu-vm: fix diskless VMs
2023-05-05 15:37:11 +02:00
Peter Kling 996db6d059
virtualisation/qemu-vm: escape bash variable in shell script
Fixes #229729
2023-05-04 09:52:49 +02:00
Raito Bezarius 6e8248c8b2 nixos/qemu-vm: make it possible to use UEFI without bootloaders
`useEFIBoot` is somewhat misleading, but we should make it possible to
enable UEFI environment / firmware without buying into a bootloader.

This makes it possible.
2023-05-02 23:20:03 +02:00
Raito Bezarius be4e7ef905 nixos/qemu-vm: fix diskless VMs
Previously, it was possible to run with a tmpfs / with
`virtualisation.diskImage = null;`, this was likely broken by my changes
in 4b4e4c3ef9.

It is reintroduced by disabling properly the bootloader for now, as it
is complicated to make it work with.
2023-04-25 02:12:26 +02:00
Raito Bezarius 0df5257b82 nixos/qemu-vm: introduce virtualisation.mountHostNixStore option
Now that `useBootLoader` produces a full system image, moving disk
images can be slow because they have a full Nix store in them.

It does not make sense to keep the 9p mountpoint to shadow the
/nix/store of the VM.

We disable it if we have `useBootLoader` and introduce an option for
easy overrides.
2023-04-23 23:58:46 +02:00
Florian Klink 6b27ed3229
Merge pull request #169116 from ElvishJerricco/systemd-stage-1-networkd
Systemd stage 1 networkd
2023-04-21 18:40:59 +02:00
Raito Bezarius 614b83a328 nixos/virtualisation/qemu-vm: remove persistBootDevice option
This option has been introduced in 678eed323f without realizing there was this
PR inflight, unfortunately, it collide with what this PR does and make
it irrelevant.

Therefore, I remove it here.
2023-04-21 13:00:19 +02:00
Raito Bezarius 76c7b656bf nixos/qemu-vm: refactor bootDisk generation using make-disk-image 2023-04-21 13:00:18 +02:00
Weijia Wang e2d6255e9e
Merge pull request #226882 from wegank/parallels-guests-final
systemd.services.prlshprint: fix type
2023-04-21 10:37:11 +03:00
Artturi b83db86a9e
Merge pull request #222080 from Stunkymonkey/nixos-optionalString 2023-04-20 16:07:30 +03:00
Ryan Lahfa 645bc49f34
Merge pull request #225981 from jnsgruk/multipass-wait-online
multipass: don't start until online
2023-04-19 18:04:47 +02:00
Weijia Wang 8eb15c5320 systemd.services.prlshprint: fix type 2023-04-18 18:55:47 +03:00
Sandro 893f073fe1
Merge pull request #224171 from alan-strohm/master
nixos/proxmox-image: don't assume virtio0 is using local-lvm storage
2023-04-16 03:30:46 +02:00
adisbladis 4ab1021a1b
Merge pull request #213036 from SuperSandro2000/cri-o/update_storagedrivers
nixos/cri-o: add aufs, devmapper, and zfs to storageDrivers
2023-04-15 16:27:50 +12:00
Calum MacRae 7d03f1aa9f
nixos/cri-o: add aufs, devmapper, and zfs to storageDrivers
Update the storageDrivers option to align with the supported drivers, as listed here:
https://github.com/containers/storage/blob/master/docs/containers-storage.conf.5.md#storage-table
2023-04-15 01:15:46 +02:00
Jon Seager 0dfc5c14d7
nixos/multipass: don't start until online 2023-04-14 11:27:57 +01:00
Sandro 603320b64f
Merge pull request #204534 from SuperSandro2000/boot-tmp 2023-04-12 21:37:47 +02:00
Will Fancher fef26d88e2 systemd-initrd: Support secrets when boot loader doesn't
initrd-secrets: Fix service config with systemd-stage-1
2023-04-11 15:20:47 -04:00
Felix Buehler 327b0cff7a treewide: use more lib.optionalString 2023-04-07 13:38:33 +02:00
Alan Strohm 121fddc901 nixos/proxmox-image: don't assume virtio0 is using local-lvm storage 2023-03-31 18:42:01 -07:00
David Houston 6e8c2760ac
maintainers: Update houstdav000 -> cyntheticfox 2023-03-30 18:50:29 -04:00
Sandro Jäckel 056be64f11 nixos/podman: add example to enable network dns 2023-03-27 08:42:29 +10:00
Sandro 6f558d3009
Merge pull request #212599 from SuperSandro2000/podman-cleanup 2023-03-27 00:05:30 +02:00
Sandro Jäckel a5d95ac5fc
nixos/tmp: move /tmp options under boot.tmp 2023-03-19 18:49:37 +01:00
Vladimír Čunát a86610144f
Merge #219444: staging-next 2023-03-04 2023-03-15 17:35:39 +01:00
Sandro 83dcadaf61
Merge pull request #218482 from illustris/ec2-metadata
nixos/ec2: don't populate nonexistent metadata files
2023-03-15 16:53:40 +01:00
Martin Weinelt d03d74aa67
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
- pkgs/development/python-modules/aiopulse/default.nix
- pkgs/development/python-modules/identify/default.nix
- pkgs/development/python-modules/spur/default.nix
2023-03-12 23:28:23 +01:00
Guillaume Girol db901673ea
Merge pull request #209156 from pwaller/issue-114594
nixos/grub: Name initrd-secrets by system, not by initrd
2023-03-12 18:50:33 +00:00
github-actions[bot] 98d00577f6
Merge master into staging-next 2023-03-09 06:01:01 +00:00
Will Fancher 46089f7efe
Merge pull request #217886 from lilyinstarlight/fix/qemu-vm-initrd-mkdir-0755
nixos/qemu-vm: fix minor typo
2023-03-08 19:17:28 -05:00
Martin Weinelt e93e71ce44 Merge remote-tracking branch 'origin/master' into staging-next 2023-03-04 14:58:24 +01:00
K900 e8fbf83f5e nixos/virtualbox-image: remove the raw image trick
This is slower, but the raw image thing no longer works with VirtualBox 7.0.6.
2023-03-04 13:39:50 +03:00
Frederik Rietdijk 8cf8d77121 Merge master into staging-next 2023-03-04 09:38:25 +01:00
Linus Heckemann 48269da315
Merge pull request #206839 from lheckemann/stateless-vms
nixos/qemu-vm: allow use without a disk image
2023-03-04 02:02:45 +01:00
Martin Weinelt 3686005e6e Merge remote-tracking branch 'origin/staging-next' into staging 2023-02-28 21:17:51 +00:00
maxine 7ceeb440c1
Merge pull request #213604 from mikroskeem/feature/docker-local-log-driver
nixos/docker: add "local" as valid logDriver option
2023-02-28 21:47:55 +01:00
github-actions[bot] 445e4a4069
Merge staging-next into staging 2023-02-28 12:01:54 +00:00
Jon Seager cad6488509
nixos/multipass: typo s/SyslogIdentifer/SyslogIdentifier/ 2023-02-28 10:45:38 +00:00
zowoq 48642c634e podman: remove wrapper
trying to get all of the podman functionality to work with the wrapper
 is becoming more complicated with each release, it isn't sustainable

removing the wrapper does mean that using extraPackages will need to build from source

- remove unnecessary serviceConfig overrides

- set HELPER_BINARIES_DIR to libexec/podman

- use install.bin target on linux for podman/tmpfiles
  - also installs quadlet/rootlessport in libexec

- symlink binaries from helpersBin into HELPER_BINARIES_DIR

- remove unnecessary rootlessport output

- remove unnecessary substituteInPlace
2023-02-28 18:08:29 +10:00
illustris 7e4e6e8bd7
nixos/ec2: don't populate nonexistent metadata files 2023-02-26 23:25:09 +05:30
Lily Foster e78dc938d8
nixos/qemu-vm: fix minor typo
The typo creates an empty directory 0755 in initrd rootfs rather than
create the Nix store directories with mode 0755.

I guess setting the mode is not strictly necessary if it worked before
this change, but I'll leave the `-m 0755` in just in case.
2023-02-23 13:01:53 -05:00
github-actions[bot] 539195e509
Merge staging-next into staging 2023-02-20 00:03:04 +00:00
Yureka c683aaaa1d
nixos/nixos-containers: add specialArgs option (#216677) 2023-02-19 21:25:04 +01:00
github-actions[bot] c466fa7ff4
Merge staging-next into staging 2023-02-18 00:02:56 +00:00
Artturi efd1d7ed76
Merge pull request #97677 from ryneeverett/lockkernelmodules-docker-more 2023-02-17 23:28:32 +02:00
github-actions[bot] 3b5c06282d
Merge staging-next into staging 2023-02-17 12:01:58 +00:00
zowoq 3e081095a4 Revert "podman: remove wrapper"
This reverts commit 02f9255044.

broke rootlessport port forwarding
2023-02-17 20:26:02 +10:00
Florian Klink ab566b8656
Merge pull request #208269 from ElvishJerricco/systemd-stage-1-fsck
Systemd stage 1 fsck
2023-02-17 10:06:39 +02:00
zowoq 02f9255044 podman: remove wrapper
trying to get all of the podman functionality to work with the wrapper
 is becoming more complicated with each release, it isn't sustainable

removing the wrapper does mean that using extraPackages will need to build from source

- include pkgs.zfs by default in the wrapped podman used by the module so it is cached
  - anyone using zfsUnstable will need to build from source

- remove unnecessary serviceConfig overrides

- set HELPER_BINARIES_DIR during build

- use install.bin target on linux for podman/tmpfiles
  - also installs quadlet/rootlessport in libexec

- remove unnecessary rootlessport output

- remove unnecessary substituteInPlace
2023-02-14 19:22:24 +10:00
zowoq 04b9fcca93 nixos/podman: wrap /run/wrappers for setuid shadow binaries
adding it here so it only needs to be done once
2023-02-14 19:22:24 +10:00
Vanilla 3ba3e20347
nixos/virtualisation/linode-image: Migrate to new openssh options. 2023-02-12 13:06:11 +08:00
Will Fancher a0ba973e13 qemu-vm: Simplfiy systemd-initrd /nix/store mount units 2023-02-07 22:22:39 -05:00
Will Fancher 1b39491326 systemd-stage-1: Use x-initrd.mount for better unit dependencies 2023-02-07 22:22:39 -05:00
Anderson Torres bc0944c06f
Merge pull request #214193 from jnsgruk/add-multipass-pkg
multipass: init at 1.11.0
2023-02-04 09:03:54 -03:00
Jon Seager 63e3f8da09
nixos/multipass: init 2023-02-04 07:44:03 +00:00
Robert Kovacsics 32ec41a672 nixos/virtualbox-image: Allow SCSI storage controller for vSphere
This is because vSphere version 6.7.0.51000 errors with

        Issues detected with selected template. Details: -
        78:7:VALUE_ILLEGAL: Value ''3'' of Parent element does not refer
        to a ref of type DiskControllerReference.

when using SATA.
2023-02-04 07:33:11 +01:00