Commit Graph

1723 Commits

Author SHA1 Message Date
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
Félix Baylac Jacqué
b7fd022677 nixos/oci-containers: make systemd service pre-start extensible
We were setting the systemd pre-start script through the
systemd.services.<name>.preStart NixOS option. This option uses a
string containing the pre-start script as input.

In some scenarios, you want to extend this script to perform some
additional actions before launching a container.

At the moment, your only option is to mkForce the pre-start string and
rewrite a preStart script from scratch. Potentially vendoring the
Nixpkgs pre-start script in your custom pre-start script. (you can
also create a new service unit in charge of running the custom
pre-start and create a dependency link between the units, but that's
also sub-optimal).

The systemd.services.<name>.serviceConfig.ExecStartPre NixOS option
gives us a better way to extend a pre-start script. Instead of being a
simple script, this option can be a list of scripts. The NixOS module
system then merges the multiple list declarations instead of
overriding them. Meaning that if we use this ExecStartPre option, we
can trivially extend the exec-start script: just add the custom script
in the systemd service override and you're done.

ExecStartPre behaves a tiny bit differently from preStart. Instead of
expecting a string containing a script, it expects a path pointing to
a script. We take advantage of this API change to check the pre-start
script with shellCheck via the pkgs.writeShellApplication function.
2023-07-06 13:35:31 +02: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
Robert Kovacsics
4009f60d0b nixos/virtualbox-image: Allow running extra commands after OVA creation
This is useful as virtual machines can often be large files so not
having duplicates/work files in /nix/store can save a lot of space.
2023-02-04 07:33:11 +01:00
Sandro Jäckel
7a7ff877b7 nixos/podman: remove unused mkMerge 2023-02-03 12:05:39 +10:00
superherointj
5e04ad9e66
Merge pull request #210892 from sielicki/ena280-281
linuxPackages.ena: 2.8.0 -> 2.8.2
2023-02-02 22:01:10 -03:00
Nick Cao
f1a142c476
Merge pull request #213602 from SuperSandro2000/types.string
nixos/virtualisation/*: replace deprecated types.string with types.str
2023-02-01 09:59:09 +08:00
Nicholas Sielicki
33397faec9 ena: 2.8.0 -> 2.8.2
* Notably, fixes build on kernel >= 5.17

Signed-off-by: Nicholas Sielicki <git@opensource.nslick.com>
2023-01-31 03:31:05 +00:00
Mark Vainomaa
30081adcd5
nixos/docker: add "local" as valid logDriver option 2023-01-30 18:04:18 +02:00
Vladimír Čunát
23ce77d76e Revert #178290: nixos/virtualisation: add option
...for explicitly named network interfaces

This reverts commit 6ae3e7695e.
(and evaluation fixups 08d26bbb72 7aed90a969)
Some of the tests fail or time out after the merge.
2023-01-30 07:55:50 -08:00
Sandro Jäckel
ed9cb58886
nixos/virtualisation/*: replace deprecated types.string with types.str 2023-01-30 16:54:21 +01:00
Linus Heckemann
09f76e171e Merge remote-tracking branch 'upstream/nixos-unstable' into stateless-vms 2023-01-28 11:27:21 +01:00
Ryan Lahfa
8803f1da66
Merge pull request #178290 from andrew-hoff/ahh/qemu-interfaces
nixos/virtualisation: add option for explicitly named network interfaces
2023-01-25 17:32:53 +01:00
Nick Cao
b9576dd927
Merge pull request #211723 from tpwrules/fix-systemd-boot-more
nixos/systemd-boot: fix tests and upgrade issues
2023-01-23 15:55:57 +08:00
Andrew Hoff
6ae3e7695e nixos/virtualisation: add option for explicitly 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` is still supported for cases where the name of
the network interface is irrelevant.
2023-01-22 12:20:40 -05:00
Peter Waller
678eed323f nixos/grub: Name initrd-secrets by system, not by initrd
Previously, secrets were named according to the initrd they were
associated with. This created a problem: If secrets were changed whilst
the initrd remained the same, there were two versions of the secrets
with one initrd. The result was that only one version of the secrets would
by recorded into the /boot partition and get used. AFAICT this would
only be the oldest version of the secrets for the given initrd version.

This manifests as #114594, which I found frustrating while trying to use
initrd secrets for the first time. While developing the secrets I found
I could not get new versions of the secrets to take effect.
Additionally, it's a nasty issue to run into if you had cause to change
the initrd secrets for credential rotation, etc, if you change them and
discover you cannot, or alternatively that you can't roll back as you
would expect.

Additional changes in this patch.

* Add a regression test that switching to another grub configuration
  with the alternate secrets works. This test relies on the fact that it
  is not changing the initrd. I have checked that the test fails if I
  undo my change.

* Persist the useBootLoader disk state, similarly to other boot state.
  * I had to do this, otherwise I could not find a route to testing the
    alternate boot configuration. I did attempt a few different ways of
    testing this, including directly running install-grub.pl, but what
    I've settled on is most like what a user would do and avoids
    depending on lots of internal details.
  * Making tests that test the boot are a bit tricky (see hibernate.nix
    and installer.nix for inspiration), I found that in addition to
    having to copy quite a bit of code I still couldn't get things to
    work as desired since the bootloader state was being clobbered.

My change to persist the useBootLoader state could break things,
conceptually. I need some help here discovering if that is the case,
possibly by letting this run through a staging CI if there is one.

Fix #114594.

cc potential reviewers:

@lopsided98 (original implementer) @joachifm (original reviewer),
@wkennington (numerous fixes to grub-install.pl), @lheckemann (wrote
original secrets test).
2023-01-21 17:19:26 +00:00
Thomas Watson
8736edfd95 nixos/qemu-vm: fix useBootLoader builds on aarch64-linux
The aarch64-linux kernel and initrd recently eclipsed 60M, causing the
boot disk image build to run out of space and fail. Double the size of
the image to 120M to fix the issue.

The disk image is stored in expandable qcow2 format, so only the space
actually used by files in the image is consumed. Therefore, other
architectures are not unfairly penalized, and the output size does not
suddenly double.

This also fixes NixOS tests which use this option, like systemd-boot's.
2023-01-19 23:28:01 -06:00
Nick Cao
cd5c34bb18
Merge pull request #188795 from Sohalt/oci-containers-wait-for-network
nixos/oci-containers: wait for network before starting container
2023-01-20 09:11:19 +08:00
Jörg Thalheim
22a8cf0c28 nixos/lxc-container: fix compatibility with systemd-nspawn 2023-01-16 15:50:37 +01:00
Ryan Lahfa
b42ea74b96
Merge pull request #206655 from vlinkz/distroname
nixos/version: add system.nixos.distroName and system.nixos.distroId options
2023-01-15 17:39:55 +01:00
Matthieu Coudron
cf10d7aef8
services.openssh: support freeform settings (#193757)
* services.openssh: support freeform settings

Keep "extraConfig" but introduces "settings".

Also renames several options

(mkRenamedOptionModule [ "services" "openssh" "kbdInteractiveAuthentication" ] [  "services" "openssh" "settings" "KbdInteractiveAuthentication" ])
(mkRenamedOptionModule [ "services" "openssh" "passwordAuthentication" ] [  "services" "openssh" "settings" "PasswordAuthentication" ])
(mkRenamedOptionModule [ "services" "openssh" "useDns" ] [  "services" "openssh" "settings" "UseDns" ])
(mkRenamedOptionModule [ "services" "openssh" "permitRootLogin" ] [  "services" "openssh" "settings" "PermitRootLogin" ])

* updated doc
* regen doc
2023-01-15 16:32:46 +01:00
Victor Fuentes
d3528cdc3d
nixos/version: add config.system.nixos.distroName and config.system.nixos.distroId 2023-01-14 16:19:06 -05:00
Robert Hensing
e973da60cd
Merge pull request #200225 from pacien/nixos-qemu-vm-restrictnetwork
nixos/qemu-vm: add option "restrictNetwork"
2023-01-13 21:47:21 +01:00
Åsmund Østvold
ca0175017d
waagent: update to 2.8.0.11 (#206974)
The agent has not been updated for a very long time.  In addition to
updating to the newest tagged version the change creates a package for
it.

The existing version has issues with the new python2.7 package not
containing crypt.so file. And the commit
6910a4eea0 I believe introduced
regression that caused the shebang to not be updated.
2023-01-10 20:58:20 +01:00
Robert Hensing
22eb959f37 nixos/amazon-option: Tolerate harmless ec2.hvm for compatibility
Throwing an error necessitates changes in NixOps that are not safe yet.
2023-01-08 19:01:02 +01:00
R. Ryantm
2d72d4775e cri-o: 1.25.1 -> 1.26.0 2023-01-08 13:30:27 +10:00
zowoq
448dc91db4 nixos/cri-o: source cni and crictl from package 2023-01-08 13:30:27 +10:00
zowoq
5da87a8c7b nixos/containers: source policy from separate skopeo output 2023-01-08 13:30:27 +10:00
zowoq
469aec905b nixos/podman, podman: switch to netavark network stack 2023-01-04 14:25:14 +10:00
Charles Johnson
2628f0003c
waydroid: 1.3.3 -> 1.3.4 (#206833)
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2023-01-03 17:43:06 +01:00
K900
2d3cf010fe
Revert "treewide: use nativeBuildInputs with runCommand instead of inlining" 2022-12-26 21:05:35 +03:00
Alexander Bakker
89f4a5ab26 libvirtd: add parallelShutdown option
This adds a new ``parallelShutdown`` option that allows users to control
how many guests can be shut down concurrently. Allowing multiple virtual
machines to be shut down at the same time reduces the amount of time it
takes to reboot the host.

Upstream documentation: https://www.libvirt.org/manpages/libvirt-guests.html#files
2022-12-26 17:34:02 +01:00
Sandro
5af3f865e8
Merge pull request #206775 from SuperSandro2000/runCommand-nativeBuildInputs 2022-12-25 21:42:05 +01:00
Felix Buehler
6617511200 nixos/podman: add autoPrune option 2022-12-24 12:01:16 +01:00
Linus Heckemann
246d09fea2 qemu-vm: use nixos module patterns for filesystems 2022-12-20 20:35:40 +01:00
Linus Heckemann
bf41254a8a nixos/qemu-vm: allow use without a disk image 2022-12-19 12:04:13 +01:00
Sandro Jäckel
26f704b545
treewide: use nativeBuildInputs with runCommand instead of inlining 2022-12-18 23:36:40 +01:00
figsoda
6bb0dbf91f nixos: fix typos 2022-12-17 19:31:14 -05:00
Naïm Favier
6573e10dee
Merge pull request #204480 from ncfavier/hv-kvp 2022-12-14 12:03:20 +01:00
Izorkin
2b6bfed79c
nixos/lxc-container: undo some of the minimal profile stuff 2022-12-09 23:18:37 +03:00
Naïm Favier
0ff3b35356 nixos/doc: fix some options 2022-12-08 17:52:52 +01:00
Naïm Favier
f9743988ad
linuxPackages.hyperv-daemons: add path conditions for kvp and vss 2022-12-04 15:25:26 +01:00
Bjørn Forsman
c3cfa83884 nixos/lxd: add missing util-linux to $PATH
This fixes `lxd init`, which previously failed like this:

  $ yes "" | lxd init
  [...]
  Error: Failed to create storage pool "default": Failed to run: losetup --find --nooverlap --direct-io=on --show /var/lib/lxd/disks/default.img: exec: "losetup": executable file not found in $PATH
2022-12-03 16:01:05 +01:00
Valentin Gagarin
260de5901e
Merge pull request #204103 from ncfavier/doc-mkOrder
nixos/doc: document `mkOrder` and friends
2022-12-02 17:19:40 +01:00
Naïm Favier
e8927c46b8
nixos/doc: document mkOrder and friends
Add a section on ordering option definitions.

Also mention `mkDefault` in the section on `mkOverride`.

Clarify the code a bit by renaming `defaultPriority` to
`defaultOverridePriority` and introducing `defaultOrderPriority`.
2022-12-02 14:15:24 +01:00
AmineChikhaoui
2c90cb9304
ec2-amis: add release 22.11 2022-12-01 17:21:34 -05:00
Ryan Lahfa
a8a68c3427
Merge pull request #189935 from baloo/baloo/qemu-vm/fixup-efi-partitions
qemu-vm: ensure we do not overwrite the partition table when EFI is in use
2022-12-01 15:16:23 +01:00
Aaron Andersen
ecf7441d25 nixos/lxc: apply recommendations from distrobuilder 2022-11-30 10:09:59 -05:00
sandydoo
624ebdc10d
nixos/rosetta: init module
Run x86_64 binaries through Rosetta inside NixOS guests running on
Apple silicon.
2022-11-29 10:27:51 +00:00
Mario Rodas
22c4865309
Merge pull request #203484 from asbachb/lxd/check-for-lxcfs
lxd: Check if `lxcfs` is enabled before adding it as service dependency
2022-11-29 01:45:25 -05:00
Benjamin Asbach
96424ddf55 lxd: Check if lxcfs is enabled before adding it as service dependency
Without that check `lxc.service` cannot be manage manually as a manual start fails due to missing dependency to `lxcfs` when not enabled.
2022-11-28 21:48:34 +04:00
Sandro Jäckel
f4d8e64bed
nixos/modprobe: replace boot.isContainer with boot.modprobeConfig.enable 2022-11-24 14:07:46 +01:00
Sandro
f92201f461
Merge pull request #197925 from SuperSandro2000/lvm2 2022-11-24 13:58:29 +01:00
Linus Heckemann
36ca2b495f nixos/ec2: use only curl in metadata fetcher, log to console
We don't need both wget and curl, so let's use only curl (which is
part of a minimal NixOS closure, unlike wget).

Logging to the console is helpful for debugging.
2022-11-23 17:19:16 +01:00
Linus Heckemann
6fb582e030 ec2-metadata-fetcher: ignore failure when fetching metadata parts
Instances without SSH keys configured will receive a 404 from the
metadata server when attempting to fetch an SSH key. This is not an
actual problem though, and shouldn't result in the service failing.

If the metadata server cannot be reached, the script will fail at an
earlier stage when attempting to get authentication data.
2022-11-23 17:19:16 +01:00
Linus Heckemann
eddfcf8622 amazon-image: fetch metadata only in stage-2
This also removes automatic enablement/mounting of instance store swap
devices and ext3 filesystems. This behaviour is strongly opinionated
and shouldn't be enabled by default.

The unionfs behaviour never took effect anyway, because the AMI
manifest path only exists for instance store-backed AMIs, which have
not been supported by nixpkgs since
84742e2293 (2019).
2022-11-23 17:19:13 +01:00
Linus Heckemann
24e33a4d2e nixos/ec2: remove paravirtualization-specific code
Paravirtualized EC2 instances haven't been supported since 2017.
It's safe to remove this now.
2022-11-23 17:18:18 +01:00
Sandro
caf13a5bb1
Merge pull request #182759 from otopetrik/proxmox-image-uefi 2022-11-21 21:34:30 +01:00
adisbladis
841bcc7a24
Merge pull request #185129 from Munksgaard/fix-nixos-container
nixos-containers: Make sure same version of nixos-container is used
2022-11-17 22:13:44 +13:00
Franz Pletz
2274143409
Merge pull request #200611 from fpletz/libvirtd-fix-autostart 2022-11-14 09:21:00 +01:00
Sandro Jäckel
5f03b6ddfc
nixos/console: move enable option out of let in 2022-11-12 23:40:20 +01:00
Sandro
9477fa1e44
Merge pull request #197917 from SuperSandro2000/kernel-enable 2022-11-12 21:12:56 +01:00
Franz Pletz
d82f52519a
nixos/libvirtd: always start libvirtd
Previously we did socket-activation but this breaks the autostart
feature since upstream expects libvirtd to be started unconditionally on
boot.

Fixes #171623.
2022-11-11 01:10:37 +01:00
Eelco Dolstra
0a00b332cd
Merge pull request #198526 from farnoy/nixos-container-unified-cgroups
[nixos-container] Make nixos containers use unified cgroupsv2
2022-11-10 13:37:43 +01:00
Sandro Jäckel
5452a26077
nixos/lvm: replace boot.isContainer with services.lvm.enable 2022-11-09 23:47:37 +01:00
Sandro Jäckel
182575a60d
nixos/kernel: replace boot.isContainer with boot.kernel.enable 2022-11-09 23:45:33 +01:00
Oto Petřík
4729d5d7f6 nixos/proxmox-image: allow building UEFI images
Allow building other than Legacy-BIOS-only Proxmox images.
Default is unchanged.

To build UEFI proxmox image use:
  proxmox.qemuConf.bios = "ovmf";
(default is "seabios")

To build image bootable using both "seabios" and "ovmf" use:
  partitionTableType = "hybrid";
BIOS can be switched in Proxmox between "seabios" and "ovmf" and VM still boots.
(GRUB2-only, systemd-boot does not boot under "seabios")

To build systemd-boot UEFI image:
  proxmox.qemuConf.bios = "ovmf";
  boot.loader.systemd-boot.enable = true;
2022-11-09 03:19:42 +01:00
pacien
e039cb9d97 nixos/qemu-vm: add option "restrictNetwork"
This adds an option to the qemu virtualisation module to isolate the
guest's from the host's and outside networks.

This is particularly useful for development sandboxes for example.

The option is disabled by default to preserve the current behaviour.
2022-11-08 17:54:31 +01:00
Jakub Okoński
12508ac79a nixos-container: force systemd-nspawn to use unified cgroups hierarchy 2022-11-06 17:12:02 +01:00
Sandro
4ca8261132
nixos/vmware-guest: depend headless option on xserver availability 2022-11-01 16:57:30 +01:00
Sandro
00bde1ac69
Merge pull request #197870 from SuperSandro2000/udev-enable 2022-10-30 19:58:23 +01:00
Robert Hensing
8837a5d68e
Merge pull request #195681 from maifel-maifel/mr-containers-hostPlatform
nixos/containers: now uses nixpkgs.hostPlatform
2022-10-27 17:52:45 +02:00
Sandro Jäckel
7fe3f63da6
nixos/udev: add enable option 2022-10-26 19:24:14 +02:00
Jan Tojnar
457f28f6f8 Merge branch 'master' into staging-next
; Conflicts:
;	pkgs/development/tools/codespell/default.nix

codespell 2.2.2 switched to pyproject & setuptools_scm:
https://github.com/codespell-project/codespell/pull/2523
2022-10-19 05:24:28 +02:00
digital
f4ccaa51e0 nixos/containers: support nixpkgs.hostPlatform
Use hostPlatform if both the host and the containers nixpkgs supports
hostPlatform, otherwise fall back to localSystem. This preseves backwards
compatibility.
2022-10-18 19:15:26 +02:00
Karel Kočí
76e1e908c1
nixos/modules/virtualisation: fix oci-containers with docker
The empty attribute set is invalidly provided as service config and
results in evaluation error.
2022-10-17 16:11:56 +02:00
Martin Weinelt
51fcbf5bb7 Merge remote-tracking branch 'origin/master' into staging-next 2022-10-16 00:18:40 +02:00
Florian Klink
80e4946f38
Merge pull request #177406 from davidkna/podman-gen
nixos/virtualisation.oci-containers: follow podman-generated systemd units more closely
2022-10-15 22:10:55 +02:00
github-actions[bot]
5d957f3dba
Merge staging-next into staging 2022-10-11 00:05:26 +00:00
Martin Weinelt
294201004f Merge remote-tracking branch 'origin/master' into staging-next 2022-10-10 21:45:18 +02:00
Bernardo Meurer
ed22079db4
Merge pull request #195141 from zhaofengli/vbox-headless-wrappers 2022-10-10 11:45:40 -03:00
Zhaofeng Li
6ed7e545ec nixos/virtualbox-host: Fix hardening with headless vbox
Fixes #157157.
2022-10-08 15:41:59 -06:00
Mario Rodas
405db07799
Merge pull request #167047 from helsinki-systems/drop/postgresql10
postgresql: remove 10.x
2022-10-06 21:32:46 -05:00
github-actions[bot]
9c14978f84
Merge master into staging-next 2022-09-29 12:01:25 +00:00
David Houston
28e90d3709
nixos/virtualisation/linode-image: init (#155426) 2022-09-29 00:25:03 +02:00
Artturin
6910a4eea0 treewide: makeWrapper to nativeBuildInputs
this should be all of them other than the failed splices
found with nixpkgs-lint
2022-09-26 17:53:26 +03:00
Matthieu Coudron
fd62fdca5b virtualisation.docker: require docker.service for docker-prune.service
else docker-prune fails when docker is not launched. Adjusted the test as well
2022-09-24 10:42:00 +02:00
pennae
d98322834b nixos/*: fix docbook deprecation notices
mostly no rendering changes except in buildkite, which used markdown
where docbook was expected without marking up its markdown.
2022-09-10 18:23:13 +02:00
illustris
e7ec55a72d
nixos/proxmox-image: fix broken build, reduce build time 2022-09-08 08:26:02 +05:30
sohalt
995853d13c nixos/oci-containers: wait for network before starting container
Without `ìmageFile` set, the service needs to download the image from
the registry. If the network is not up in time, the service tries to
restart rapidly until it fails.
2022-09-07 17:28:00 +02:00
Arthur Gautier
7f026cc6d0 qemu-vm: ensure we do not overwrite the partition table when EFI is in use 2022-09-05 17:18:06 -07:00
pennae
3bddcf5f90
Merge branch 'master' into option-docs-md 2022-09-01 16:10:09 +02:00
pennae
1d41cff3dc nixos/*: convert straggler options to MD 2022-08-31 17:27:38 +02:00
pennae
f2ea09ecbe nixos/*: convert options with listings
minor rendering changes.
2022-08-31 17:27:36 +02:00
pennae
722b99bc0e nixos/*: convert options with admonitions to MD
rendering changes only slightly, most changes are in spacing.
2022-08-31 16:36:16 +02:00
pennae
bd56368848 nixos/*: md-convert hidden plaintext options
most of these are hidden because they're either part of a submodule that
doesn't have its type rendered (eg because the submodule type is used in
an either type) or because they are explicitly hidden. some of them are
merely hidden from nix-doc-munge by how their option is put together.
2022-08-31 16:32:54 +02:00
pennae
9547123258 nixos/*: convert internal option descriptions to MD
we'll have to do it eventually, may as well be now.
2022-08-31 16:32:54 +02:00
pennae
ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae
1013069f52 nixos/*: convert more partially-md option descriptions
this mostly means marking options that use markdown already
appropriately and making a few adjustments so they still render
correctly. notable for nftables we have to transform the md links
because the manpage would not render them correctly otherwise.
2022-08-31 16:32:14 +02:00
pennae
7d102d113a nixos/*: convert multiline inline code to listings
presumably it was not intended to have these blocks rendered inline, and
markdown conversion would be messy as well.
2022-08-31 16:27:25 +02:00
Silvan Mosberger
6eb620ace7
Merge pull request #180222 from YorikSar/qemu-vm-darwin-pkgs
nixos/qemu-vm: Allow to build and run VMs on Darwin
2022-08-30 21:54:22 +02:00
zowoq
464944c3f4 nixos/{containers,cri-o/podman}: drop outdated remove/rename
these have been around for a few release cycles
2022-08-30 17:05:48 +10:00
pennae
51a11254a7 nixos/*: literalDocBook -> literalMD
no change to rendered output
2022-08-27 19:18:29 +02:00
Silvan Mosberger
04648b8dcf nixos/qemu: Add pkgs option for allowing other systems to run the VM 2022-08-25 16:59:09 +04:00
Robert Hensing
10f1753344
Merge pull request #187887 from RaitoBezarius/ovmf-uefi-prefixes
ovmf: expose EFI prefixes and refactor qemu-vm with it
2022-08-23 13:29:23 +02:00
Raito Bezarius
c91d0713ac ovmf: expose EFI prefixes and refactor qemu-vm with it 2022-08-23 12:13:06 +02:00
Maximilian Bosch
c050aba1a8
Merge pull request #187211 from fpletz/pkgs/libvirt-8.6.0
libvirt: 8.5.0 -> 8.6.0, bugfixes
2022-08-22 23:11:12 +02:00