Commit graph

1140 commits

Author SHA1 Message Date
Jörg Thalheim
7b1335e935 add wip verity 2024-12-20 18:16:30 +01:00
Jörg Thalheim
d32f2d1750 release: reset released flag 2024-12-13 12:09:27 +01:00
Jörg Thalheim
65a441502c release: v1.10.0 2024-12-13 12:09:27 +01:00
Jörg Thalheim
2097ca7a9e
Merge pull request #916 from 0x450x6c/zvol_extra_args
Add extraArgs to zfs_volume.
2024-12-13 12:07:58 +01:00
neox
a0c967fef4 Add extraArgs to zfs_volume.
Update lib/types/zfs_volume.nix
2024-12-13 11:16:40 +01:00
Jörg Thalheim
825605c2c7
Merge pull request #911 from nix-community/avoid-mv
make-disk-image: create directories images in out path
2024-12-13 11:16:20 +01:00
Jörg Thalheim
0f31ad735e
Merge pull request #903 from nix-community/update_flake_lock_action
flake.lock: Update
2024-12-12 14:46:32 +01:00
github-actions[bot]
9c74188ec6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8edf06bea5bcbee082df1b7369ff973b91618b8d?narHash=sha256-sQxuJm8rHY20xq6Ah%2BGwIUkF95tWjGRd1X8xF%2BPkk38%3D' (2024-11-22)
  → 'github:NixOS/nixpkgs/bc27f0fde01ce4e1bfec1ab122d72b7380278e68?narHash=sha256-%2B5qdtgXceqhK5ZR1YbP1fAUsweBIrhL38726oIEAtDs%3D' (2024-12-09)
2024-12-12 01:50:06 +00:00
Jörg Thalheim
22cd4b7e49 check for db.sqlite rather than /nix/store
since we initialize the database last, it's safe to use the database as
a sentinel path
2024-12-05 13:05:22 +01:00
Jörg Thalheim
98894c8598 make-disk-image: create directories images in out path
In case we are crossing some filesystem boundary (i.e. /tmp -> /nix/store),
this is faster. Also tmpfs might be probelemantic regarding memory usage.
2024-12-05 13:05:22 +01:00
Paul Haerle
785c1e02c7
Merge pull request #909 from nix-community/remove-lib-mdDoc
tree-wide: Remove all uses of lib.mdDoc
2024-12-02 20:48:22 +01:00
Felix Uhl
67a130b984 tree-wide: Remove all uses of lib.mdDoc
This was deprecated in 24.05 already, and removed in 24.11.
2024-12-02 20:28:17 +01:00
Paul Haerle
2814a5224a
Merge pull request #907 from nix-community/stop-overwriting-saved-env
disk-image: Fix compatibility with nixpkgs unstable
2024-11-30 18:34:36 +01:00
Felix Uhl
3faa300212 disk-image: Fix compatibility with nixpkgs unstable
Fixes #900

This was caused by https://github.com/NixOS/nixpkgs/pull/354535
originally. The breaking changes introduced there have been resolved by
https://github.com/NixOS/nixpkgs/pull/360413, but one addition survived,
which was the line `source $stdenv/setup`.

Because we used `>` instead of `>>`, `saved-env` was overwritten, so
even with the second PR, the script failed with the following error:

    /nix/store/pw...ykc-vm-run-stage2: line 16: stdenv: unbound variable

Once this and the second PR mentioned above are merged, #903 will be
unblocked.
2024-11-30 17:36:29 +01:00
Jörg Thalheim
b71e3faca9
Merge pull request #906 from nix-community/fix-904
make-disk-image: Compare against correct nixpkgs version
2024-11-29 23:29:22 +01:00
Felix Uhl
5655a13ac9 make-disk-image: Compare against correct nixpkgs version
It seems that there is a difference between how `pkgs` and `lib` get
passed to NixOS modules: `pkgs` is the unmodified original, `lib` is the
final version after overrides etc.

This causes `pkgs.lib.version` to be `24.11git` in some cases, while
`lib.version` is `24.11.20241123.0c58267`.
Maybe this can be fixed in nixpkgs? Either way, this change fixes that
issue.

Fixes #904
2024-11-29 19:38:31 +01:00
Jörg Thalheim
a75ba3b87b
Merge pull request #891 from nix-community/verity
Add declarative unmount
2024-11-29 16:39:43 +01:00
Jörg Thalheim
aa006252c8 add unmount feature 2024-11-29 14:44:15 +01:00
Jörg Thalheim
341482e2f4
Merge pull request #901 from samularity/patch-1
fix new logo in quickstart.md
2024-11-27 22:26:18 +01:00
samularity
ff6e596353
fix new logo in quickstart.md 2024-11-27 22:20:52 +01:00
lassulus
869ba3a874
Merge pull request #898 from nix-community/bootcmd-default
module: add default for tests.bootCommand
2024-11-26 19:30:28 +01:00
lassulus
255e11e831 module: add default for tests.bootCommand 2024-11-26 18:21:37 +01:00
Jörg Thalheim
2ed5e30fc7
Merge pull request #896 from nix-community/update_flake_lock_action
flake.lock: Update
2024-11-25 14:09:23 +01:00
Jörg Thalheim
f35ae6300f
Merge pull request #897 from nbdd0121/gpt-unformatted
Fix evaluation when a GPT partition is left unformatted
2024-11-25 14:09:07 +01:00
Gary Guo
3e83c11038 Fix evaluation when a GPT partition is left unformatted 2024-11-25 02:10:48 +00:00
github-actions[bot]
8d80e4e8fc flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5083ec887760adfe12af64830a66807423a859a7?narHash=sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs%3D' (2024-11-18)
  → 'github:NixOS/nixpkgs/8edf06bea5bcbee082df1b7369ff973b91618b8d?narHash=sha256-sQxuJm8rHY20xq6Ah%2BGwIUkF95tWjGRd1X8xF%2BPkk38%3D' (2024-11-22)
2024-11-25 01:48:25 +00:00
Jörg Thalheim
47bc8dfb6f
Merge pull request #895 from nix-community/fix-mountoptions
also passthrough rootfs mountoptions
2024-11-24 22:11:48 +01:00
Jörg Thalheim
0433c7e883 also passthrough rootfs mountoptions 2024-11-24 18:39:57 +01:00
Jörg Thalheim
abc8baff33
Merge pull request #890 from nix-community/disko-install
disko-install: dry-run improvements
2024-11-22 15:10:44 +01:00
Jörg Thalheim
84dd8eea9a
Merge pull request #892 from zimbatm/nix-2.3-compat
fix: restore nix 2.3 compatibility
2024-11-22 12:52:18 +01:00
Jörg Thalheim
fd3e326e9a disable swap in disko-install
Update disko-install

Co-authored-by: Michael Hoang <Enzime@users.noreply.github.com>
2024-11-22 12:45:57 +01:00
zimbatm
3a8a8713bf fix: restore nix 2.3 compatibility
Apparently nix 2.3 didn't support path interpolations.
2024-11-22 09:17:20 +01:00
Jörg Thalheim
97c0c4d707
Merge pull request #888 from nix-community/update_flake_lock_action
flake.lock: Update
2024-11-21 21:36:44 +01:00
Jörg Thalheim
eb1bb9fe27 disko-install: allow to override mountpoints and don't manage them in dry-run 2024-11-21 14:11:02 +01:00
Jörg Thalheim
4cbd22d868 allow to run dry-run without using root 2024-11-21 12:30:14 +01:00
github-actions[bot]
0e5eb607f0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c69a9bffbecde46b4b939465422ddc59493d3e4d?narHash=sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk%3D' (2024-11-16)
  → 'github:NixOS/nixpkgs/5083ec887760adfe12af64830a66807423a859a7?narHash=sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs%3D' (2024-11-18)
2024-11-21 01:45:29 +00:00
Jörg Thalheim
a0c384e0a3
Merge pull request #883 from MaienM/feature/zfs-vdev-types
ZFS: Add log, spare & dedup vdev types, support multiple special vdevs, fix bug with mixed vdev types
2024-11-20 14:27:12 +01:00
mergify[bot]
811fb748fd
Merge branch 'master' into feature/zfs-vdev-types 2024-11-20 06:20:04 +00:00
Andrew Marshall
c3b83db725 module: Expose tests.enableOCR
Given we now have tests.bootCommands, in some cases the test script
given will need OCR enabled.
2024-11-20 07:19:25 +01:00
Andrew Marshall
feeb365e31 module: Expose tests.bootCommands
Useful for e.g. interactive input during VM boot.
2024-11-20 07:19:25 +01:00
mergify[bot]
b1aa08f8ce
Merge branch 'master' into feature/zfs-vdev-types 2024-11-20 06:17:47 +00:00
carschandler
da52cf4020
Add explanatory comment to examples/zfs-over-legacy.nix (#886) 2024-11-19 16:38:19 +01:00
Michon van Dooren
92ad678418
Add examples for all special zpool vdev types 2024-11-18 22:50:10 +01:00
Michon van Dooren
caad548415
Make vdev sort only move empty modes to the start 2024-11-18 22:49:51 +01:00
github-actions[bot]
639d1520df flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/aebe249544837ce42588aa4b2e7972222ba12e8f?narHash=sha256-vmLS8%2Bx%2BgHRv1yzj3n%2BGTAEObwmhxmkkukB2DwtJRdU%3D' (2024-11-10)
  → 'github:NixOS/nixpkgs/c69a9bffbecde46b4b939465422ddc59493d3e4d?narHash=sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk%3D' (2024-11-16)
2024-11-18 02:00:10 +00:00
Michon van Dooren
d192ffd944
Fix zpool create for disk vdev after mirror vdev
A config like

```nix
{
  vdev = [
    {
      mode = "mirror";
      members = [ "data1" "data2" ];
    }
    {
      members = [ "data3" ];
    }
  ];
}
```

would result in the following command:

```shell
zpool create -f <name> mirror /dev/data1 /dev/data2 /dev/data3
```

which would result in a single vdev with a 3-way mirror, rather than a
vdev with a 2-way mirror and a second vdev with a single disk. By
reordering the vdevs to handle those with an empty mode first we
transform this into:

```shell
zpool create -f <name> /dev/data3 mirror /dev/data1 /dev/data2
```

which does have the desired outcome.
2024-11-18 01:33:49 +01:00
Michon van Dooren
6a472cc248
Fix zpool create with > 1 log/dedup/special vdev
The type keyword was included before every vdev:

```shell
zpool create -f <name> /dev/sda log mirror /dev/sdb /dev/sdc log mirror /dev/sdd /dev/sde
```

but this is incorrect and should instead be:

```shell
zpool create -f <name> /dev/sda log mirror /dev/sdb /dev/sdc mirror /dev/sdd /dev/sde
```
2024-11-17 22:19:33 +01:00
Michon van Dooren
9b56c1afdb
Add support for ZFS spare, log & dedup vdevs 2024-11-17 15:52:28 +01:00
Felix Uhl
cb64993826 cli: Fix "attribute missing" error when using flake
The final config's attributes have different names than those defined in
./default.nix, so this failed previously.
2024-11-16 08:40:38 +00:00
Felix Uhl
eaa51560df cli: Show error if flake's disko is incompatible
Fixes #871

Previously, if a user used v2.10.0 (currently unreleased master), an
error like this would be displayed:

    error: attribute '_cliDestroyFormatMount' missing
       at /nix/store/fbqgaij9d3b373rq1iav5glzr4dy77qf-disko/share/disko/cli.nix:73:7:
           72|     else if (lib.traceValSeq hasDiskoModuleFlake) then
           73|       (builtins.getFlake flake).nixosConfigurations.${flakeAttr}.config.system.build.${diskoAttr}
             |       ^
           74|     else

This situation now produces a more helpful error:

    Error: Attribute `nixosConfigurations.testmachine.config.system.build._cliDestroyFormatMount`
           not found in flake `/home/felix/repos-new/disko`!
           This is probably caused by the locked version of disko in the flake
           being different from the version of disko you executed.
    EITHER set the `disko` input of your flake to `github:nix-community/disko/latest`,
           run `nix flake update disko` in the flake directory and then try again,
    OR run `nix run github:nix-community/disko/v1.9.0 -- --help` and use one of its modes.
2024-11-16 08:40:38 +00:00