Commit graph

2066 commits

Author SHA1 Message Date
phaer
2f7435b5ca virtualisation/hyperv-image: use mkImageMediaOverride...
...for filesystem options. Before this change,
users would typically encounter conflicting option definitions
when trying to build an image for a generic nixos closure, i.e.
`nixos-rebuild build-image --image-variant hyperv --flake .#my-host`
2025-04-11 12:54:12 +02:00
phaer
61ba044658 virtualisation/oci-common: use mkImageMediaOverride...
...for filesystem options. Before this change,
users would typically encounter conflicting option definitions
when trying to build an image for a generic nixos closure, i.e.
`nixos-rebuild build-image --image-variant common --flake .#my-host`
2025-04-11 12:54:12 +02:00
phaer
2742c7163a virtualisation/kubevirt: use mkImageMediaOverride...
...for filesystem  options. Before this change,
users would typically encounter conflicting option definitions
when trying to build an image for a generic nixos closure, i.e.
`nixos-rebuild build-image --image-variant kubevirt --flake .#my-host`
2025-04-11 12:54:12 +02:00
phaer
4327e179f7 virtualisation/virtualbox-image: use mkImageMediaOverride...
...for filesystem and options. Before this change,
users would typically encounter conflicting option definitions
when trying to build an image for a generic nixos closure, i.e.
`nixos-rebuild build-image --image-variant virtualbox --flake .#my-host`
2025-04-11 12:54:12 +02:00
phaer
864030e5e8 virtualisation/vmware-image: use mkImageMediaOverride...
...for filesystem options. Before this change, users would typically encounter conflicting option definitions when trying to build an image for a generic nixos closure, i.e. `nixos-rebuild build-image --image-variant vmware --flake .#my-host`
2025-04-11 12:54:11 +02:00
phaer
c5d383a797 virtualisation/disk-image: use mkImageMediaOverride...
...for filesystem options. Before this change, users would typically encounter conflicting option definitions when trying to build an image for a generic nixos closure, i.e. `nixos-rebuild build-image --image-variant qemu --flake .#my-host`
2025-04-11 12:54:11 +02:00
phaer
3718f356c0 virtualisation/promxox-image: use mkImageMediaOverride...
...for filesystem options. Before this change,
users would typically encounter conflicting option definitions
when trying to build an image for a generic nixos closure, i.e.
`nixos-rebuild build-image --image-variant proxmox --flake .#my-host`
2025-04-11 12:54:11 +02:00
phaer
ae02740156 virtualisation/proxmox-image: remove obsolete proxmox.qemuConf.diskSize usage
This was an oversight in my commit
d37a3ea1ef, and results in the following
eval warning when proxmox images are used: `Obsolete option
`proxmox.qemuConf.diskSize' is used. It was renamed to
`virtualisation.diskSize'.`
2025-04-11 12:54:11 +02:00
phaer
9e704d7263 virtualisation/linode-config: use mkImageMediaOverride...
...for filesystem options. Before this change, users would typically encounter conflicting option definitions when trying to build an image for a generic nixos closure, i.e. `nixos-rebuild build-image --image-variant linode --flake .#my-host`
2025-04-11 12:54:11 +02:00
phaer
a80eca86d5 virtualisation/linode-config: drop "with; lib" 2025-04-11 12:35:41 +02:00
Adam C. Stephens
21197daa39
incus: build and expose documentation 2025-04-03 16:00:08 +00:00
Silvan Mosberger
374e6bcc40 treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:

  nix-build ci -A fmt.check

This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).

This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).

Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).

If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
2025-04-01 20:10:43 +02:00
Adam C. Stephens
62d611a22b
nixos/incus: add AppArmor rules (#386060) 2025-04-01 12:51:34 -04:00
Adam C. Stephens
9ff6900615
incus: 6.10.1 -> 6.11.0
https://discuss.linuxcontainers.org/t/incus-6-11-has-been-released/23322
https://github.com/lxc/incus/releases/tag/v6.11.0
2025-03-28 16:58:33 -04:00
MakiseKurisu
9b7d65ad87
nixos/incus: add AppArmor rules to allow access to Nix store
Fix #350012
2025-03-26 21:01:14 +08:00
Arian van Putten
12c098f0ca nixos/amazon-ec2-amis: remove 2025-03-22 12:25:18 +00:00
Robert Hensing
202ac0e3d2
nixos: Cut off virtualisation.vmVariant.virtualisation.vmVariant (#390717) 2025-03-21 15:58:59 +00:00
Robert Hensing
9aab8b86c7 nixos: Cut off virtualisation.vmVariant.virtualisation.vmVariant
This produced an unnecessarily infinitely deep config tree.

The "cut off" option can be written to, but not read from.
Being written to is important, because it allows users to
conveniently define vmVariant config without having to check
isVmVariant.

There's a small chance that someone *reads* from vmVariant config
in their normal config, and for them it will not be possible
to evaluate with `nixos-rebuild build-vm` anymore.

If this is a problem, we could perhaps make the vmVariant root
appear instead of the `throw` error.
This could also be done using mkOption apply.
2025-03-20 22:30:12 +00:00
evplus
c3f61d1cbd nixos/incus ensure br_netfilter module is enabled 2025-03-19 22:56:07 +01:00
Sandro
86f44b004d
nixos/nixos-containers: user options take precedence over module ones (#388409) 2025-03-19 18:59:56 +01:00
WilliButz
41c7225648
podman: use serviceConfig.ExecStart instead of script (#390731) 2025-03-19 12:06:33 +01:00
Benedikt Ritter
ef2bde5a13
docker: use serviceConfig.ExecStart instead of script 2025-03-19 11:12:59 +01:00
Benedikt Ritter
ccdfb91b48
podman: use serviceConfig.ExecStart instead of script 2025-03-19 11:08:18 +01:00
Todd Brown
b5c9cecbcc
nixos/docker: add auto prune randomizedDelaySec and persistent options (#301547)
docker: add auto prune randomizedDelaySec and persistent options

Options mirror nix garbage collection
2025-03-16 10:56:31 +01:00
Bruce Toll
ae4750868c nixos/ec2-data fix host fingerprint output to console (regression)
PR #322282 introduced a regression that causes the previous display of
the ssh host key fingerprints to get directed to the journal rather than
the console (as intended). Thus, the console only logs an empty set of
fingerprints:

    -----BEGIN SSH HOST KEY FINGERPRINTS-----
    -----END SSH HOST KEY FINGERPRINTS-----

The fix is to reorder the bash statement that invokes ssh-keygen so
that the ssh-keygen output is directed to /dev/console.
2025-03-15 13:16:03 -04:00
Marie Ramlow
342c4f300b nixos/{renovate, libvirtd}: fix typo 2025-03-15 00:30:21 +05:30
Emma Miler
542a053b32 nixos/oci-containers: add autoRemoveOnStop option
Adds the autoRemoveOnStop option to allow stopped or killed containers to stay around after stop. Default behaviour remains the same.
2025-03-10 19:35:47 +01:00
Kevin Boulain
c2d4e8f4cb nixos/nixos-containers: user options take precedence over module ones
I think this is the norm in NixOS modules. This allows to start a
container with '--volatile=overlay --link-journal=host' in order to
persist logs across runs of a container running with a temporary root.
While '--ephemeral' omits '--link-journal=try-guest', it's not possible
to run an ephemeral container when linking the journal:
https://github.com/systemd/systemd/issues/1666
2025-03-09 11:08:56 +01:00
Maximilian Bosch
7d443d378b
nixos/oci-containers: support rootless containers & healthchecks
Closes #259770
Closes #207050

The motivation for the former is to not execute the container as root,
so you don't have to `sudo -i` to perform podman management tasks.

The idea behind healthchecks is to be able to keep the unit in the
activating state until the container is healthy, only then then unit is
marked as active.

The following changes were necessary:

* Move the ctr-id into `/run/${containerName}` to make podman can
  actually write to it since it's now in its RuntimeDirectory.

* Make `sdnotify` option configurable (`healthy` for healthchecks that
  must pass, default remains `conmon`).

* Set Delegate=yes for `sdnotify=healthy` to make sure a rootless
  container can actually talk to sd_notify[1].

* Add a warning that lingering must be enabled to have a `systemd --user`
  instance running which is required for the cgroup support to work
  properly.

* Added a testcase for rootless containers with both conmon and
  healthchecks.

[1] https://github.com/containers/podman/discussions/20573#discussioncomment-7612481
2025-02-27 11:08:33 +01:00
Sandro
c2fbe453e6
nixos/libvirtd: fix path in hooks.network desc (#372951) 2025-02-19 21:32:22 +01:00
Ramses
51e84098b5
nixos-container: avoid subshell when testing $PRIVATE_USERS (#383056) 2025-02-19 10:46:48 +01:00
Jean-Baptiste Giraudeau
57c96ff6ef
nixos-container: avoid subshell when testing $PRIVATE_USERS
So that the script is not rejected by https://www.shellcheck.net/wiki/SC2235
 under `systemd.enableStrictShellChecks = true;`
2025-02-18 09:41:55 +01:00
Sandro
86f9eeb816
nixos-container: add support for --private-users (#362210) 2025-02-18 00:09:56 +01:00
Adam C. Stephens
8780973144
incus.ui: 0.7 -> incus-0.14.6, rename to incus-ui-canonical (#382440) 2025-02-16 17:43:56 -05:00
Adam C. Stephens
ad53a8451f
incus-ui-canonical: rename from incus.ui 2025-02-16 17:33:03 -05:00
Christian Kögler
bbd8de2fdd
nixos-container: do not touch os-release if it is a symlink (#353366) 2025-02-16 07:43:34 +01:00
Jean-Baptiste Giraudeau
c8f83ec641
nixos-container: add support for --private-users
imply bind mounts with idmap option when user namespacing is enabled,
 so that /nix/store and friends are correctly own by root user.
2025-02-12 14:28:57 +01:00
Robert Hensing
0b47fba230 Revert "nixos/nixpkgs: make config.nixpkgs.{localSystem,crossSystem,buildPlatform,hostPlatform} write only"
This reverts commit 0a19371146.
2025-02-05 14:29:18 +01:00
Florian Klink
4742e5b16e
nixos/azure: move image-specific configs from azure-common to azure-image, fix console output (#359365) 2025-02-02 22:57:49 +02:00
Adam C. Stephens
7a982a65fe
nixos/incus: fix some nvidia container errors (#378352) 2025-02-02 14:31:29 -05:00
Wolfgang Walther
c0e2fbbcad
nixos/amazon-image: fix eval 2025-02-02 13:29:03 +01:00
Wolfgang Walther
c1793a336b
pkgs/top-level: make package sets composable (reapply) (#376988) 2025-02-02 11:41:17 +01:00
codgician
1460db45f6
waagent: optimize option descriptions 2025-02-02 16:12:00 +08:00
Wolfgang Walther
0a19371146
nixos/nixpkgs: make config.nixpkgs.{localSystem,crossSystem,buildPlatform,hostPlatform} write only
The description for options.nixpkgs.system already hints at this:

  Neither ${opt.system} nor any other option in nixpkgs.* is meant
  to be read by modules and configurations.
  Use pkgs.stdenv.hostPlatform instead.

We can support this goal by not elaborating the systems anymore, forcing
users to go via pkgs.stdenv.

This will prevent problems when making the top-level package sets
composable in the next commit. For this to work, you should pass a fully
elaborated system to nixpkgs' localSystem or crossSystem options.
2025-02-01 12:04:59 +01:00
Adam C. Stephens
0619ac75c2
nixos/incus: condition nvidia support, ensuring nvidia_uvm module is enabled 2025-01-31 15:53:38 -05:00
Jörg Thalheim
ce99e2aa18 amazon: make fileSystems option disko-compatible
When using disko, the user can choose their own filesystem layout.
In that case we don't want to specify fileSystems with normal priority
as it would not allow disko to set its own values.
2025-01-27 22:09:20 +01:00
Peder Bergebakken Sundt
953f72e76e nixos/*: tag manpage references 2025-01-27 02:47:01 +01:00
Adam C. Stephens
0e7fa5714c
incus: fix instance unclean shutdown, add per-instance lxcfs support (#373920) 2025-01-25 10:05:03 -05:00
Bjørn Forsman
cb4d104baf nixos/libvirt-guests: add missing dependency on libvirtd.service
Ensure that VMs get properly suspended (or shutdown) instead of "pulling
the plug" on them.

Simulating shutdown with
`sudo systemctl stop libvirtd.service libvirtd-ro.socket libvirtd-admin.socket libvirtd.socket libvirt-guests`:

Before:

  systemd[1]: Stopping libvirt guests suspend/resume service...
  libvirt-guests.sh[1472512]: Can't connect to default. Skipping.
  systemd[1]: libvirt-guests.service: Deactivated successfully.

After:

  systemd[1]: Stopping libvirt guests suspend/resume service...
  libvirt-guests.sh[1524073]: Running guests on default URI:
  libvirt-guests.sh[1524067]: ubuntu22.04
  libvirt-guests.sh[1524100]: Suspending guests on default URI...
  libvirt-guests.sh[1524067]: Suspending ubuntu22.04: ...
  libvirt-guests.sh[1524067]: Suspending ubuntu22.04: 1.421 GiB
  libvirt-guests.sh[1524067]: Suspending ubuntu22.04: 2.618 GiB
  libvirt-guests.sh[1524067]: Suspending ubuntu22.04: done
  systemd[1]: libvirt-guests.service: Deactivated successfully.
2025-01-25 14:38:55 +01:00
codgician
b5a03db807
waagent: patch openssl path 2025-01-21 21:33:50 +08:00