Commit graph

339 commits

Author SHA1 Message Date
Emily fe031d07f8 nixos/tests/hardened: add latestKernel argument 2020-04-17 16:13:39 +01:00
Euan Kemp bc138f407f
nixos/k3s: add initial k3s service
* nixos/k3s: simplify config expression

* nixos/k3s: add config assertions and trim unneeded bits

* nixos/k3s: add a test that k3s works; minor module improvements

This is a single-node test. Eventually we should also have a multi-node
test to verify the agent bit works, but that one's more involved.

* nixos/k3s: add option description

* nixos/k3s: add defaults for token/serveraddr

Now that the assertion enforces their presence, we dont' need to use the typesystem for it.

* nixos/k3s: remove unneeded sudo in test

* nixos/k3s: add to test list
2020-04-17 16:39:54 +02:00
Ioannis Koutras 9360e3723d nixos/traefik: add test 2020-04-12 22:50:36 +02:00
Graham Christensen ec2d28e323
specialisation: replace nesting with named configurations
Co-authored-by: worldofpeace <worldofpeace@protonmail.ch>
2020-04-12 08:12:50 -04:00
Elis Hirwing 3b6539896b
Merge pull request #83896 from etu/slim-down-default-php-v3
PHP: Make the default package more sane [v3]
2020-04-05 20:00:03 +02:00
Elis Hirwing 0dc95728ba
nixos/php: Move the pcre tests to the php test attribute 2020-04-05 16:44:59 +02:00
Elis Hirwing 29e1f0d169
nixos/php: Add tests for phpfpm
This test checks that we evaluate PHP properly and that certain
extensions are actually loaded.
2020-04-05 16:44:54 +02:00
Evils b7b99c93f5 nixosTests.tuptime: init test 2020-04-03 17:30:35 +02:00
Florian Klink 8e9e77ee7d nixosTests.cockroachdb: add to all-tests.nix 2020-04-03 00:34:18 +02:00
Marek Mahut af75bb17b9 nixos/tests: add magic-wormhole-mailbox-server 2020-03-30 16:15:15 +02:00
Graham Christensen 4d226bad77
Merge pull request #83600 from Ma27/hydra-two-stage-deploy
hydra: 2020-02-06 -> 2020-03-{24,27}
2020-03-28 19:18:10 -04:00
Maximilian Bosch bd5324c4fc
hydra: 2020-02-06 -> 2020-03-{24,27}
Upgrades Hydra to the latest master/flake branch. To perform this
upgrade, it's needed to do a non-trivial db-migration which provides a
massive performance-improvement[1].

The basic ideas behind multi-step upgrades of services between NixOS versions
have been gathered already[2]. For further context it's recommended to
read this first.

Basically, the following steps are needed:

* Upgrade to a non-breaking version of Hydra with the db-changes
  (columns are still nullable here). If `system.stateVersion` is set to
  something older than 20.03, the package will be selected
  automatically, otherwise `pkgs.hydra-migration` needs to be used.

* Run `hydra-backfill-ids` on the server.

* Deploy either `pkgs.hydra-unstable` (for Hydra master) or
  `pkgs.hydra-flakes` (for flakes-support) to activate the optimization.

The steps are also documented in the release-notes and in the module
using `warnings`.

`pkgs.hydra` has been removed as latest Hydra doesn't compile with
`pkgs.nixStable` and to ensure a graceful migration using the newly
introduced packages.

To verify the approach, a simple vm-test has been added which verifies
the migration steps.

[1] https://github.com/NixOS/hydra/pull/711
[2] https://github.com/NixOS/nixpkgs/pull/82353#issuecomment-598269471
2020-03-28 23:33:25 +01:00
worldofpeace b1bffdf67f
Merge pull request #83425 from xfix/mark-hibernation-test-as-broken-on-aarch
nixos/tests/hibernate: disable for platforms other than x86_64
2020-03-28 18:22:08 -04:00
Maximilian Bosch 63e81053b0
Merge pull request #74504 from xwvvvvwx/wg-quick-tests
tests/wireguard: init wg-quick
2020-03-28 16:26:43 +01:00
Konrad Borowski d85fb28414 nixos/tests/hibernate: disable for platforms other than x86_64
Due to 9pnet_virtio bugs, /nix is no longer available after
hibernation. It happens to work on x86_64, but not on other
platforms.
2020-03-28 09:31:36 +01:00
Marek Mahut 42d03aabbd
Merge pull request #83309 from mmahut/quorum
nixos/quorum: init
2020-03-28 09:04:12 +01:00
aszlig e1d63ada02
nginx: Fix ETag patch to ignore realpath(3) error
While our ETag patch works pretty fine if it comes to serving data off
store paths, it unfortunately broke something that might be a bit more
common, namely when using regexes to extract path components of
location directives for example.

Recently, @devhell has reported a bug with a nginx location directive
like this:

  location ~^/\~([a-z0-9_]+)(/.*)?$" {
    alias /home/$1/public_html$2;
  }

While this might look harmless at first glance, it does however cause
issues with our ETag patch. The alias directive gets broken up by nginx
like this:

  *2 http script copy: "/home/"
  *2 http script capture: "foo"
  *2 http script copy: "/public_html/"
  *2 http script capture: "bar.txt"

In our patch however, we use realpath(3) to get the canonicalised path
from ngx_http_core_loc_conf_s.root, which returns the *configured* value
from the root or alias directive. So in the example above, realpath(3)
boils down to the following syscalls:

  lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
  lstat("/home/$1", 0x7ffd08da6f60) = -1 ENOENT (No such file or directory)

During my review[1] of the initial patch, I didn't actually notice that
what we're doing here is returning NGX_ERROR if the realpath(3) call
fails, which in turn causes an HTTP 500 error.

Since our patch actually made the canonicalisation (and thus additional
syscalls) necessary, we really shouldn't introduce an additional error
so let's - at least for now - silently skip return value if realpath(3)
has failed.

However since we're using the unaltered root from the config we have
another issue, consider this root:

  /nix/store/...-abcde/$1

Calling realpath(3) on this path will fail (except if there's a file
called "$1" of course), so even this fix is not enough because it
results in the ETag not being set to the store path hash.

While this is very ugly and we should fix this very soon, it's not as
serious as getting HTTP 500 errors for serving static files.

I added a small NixOS VM test, which uses the example above as a
regression test.

It seems that my memory is failing these days, since apparently I *knew*
about this issue since digging for existing issues in nixpkgs, I found
this similar pull request which I even reviewed:

https://github.com/NixOS/nixpkgs/pull/66532

However, since the comments weren't addressed and the author hasn't
responded to the pull request, I decided to keep this very commit and do
a follow-up pull request.

[1]: https://github.com/NixOS/nixpkgs/pull/48337

Signed-off-by: aszlig <aszlig@nix.build>
Reported-by: @devhell
Acked-by: @7c6f434c
Acked-by: @yorickvP
Merges: https://github.com/NixOS/nixpkgs/pull/80671
Fixes: https://github.com/NixOS/nixpkgs/pull/66532
2020-03-28 02:57:21 +01:00
Marek Mahut 870a6e262d nixos/quorum: init 2020-03-27 19:31:01 +01:00
zimbatm d37a0dca13
nixos: add gerrit module
Co-authored-by: edef <edef@edef.eu>
Co-authored-by: Florian Klink <flokli@flokli.de>
2020-03-26 09:28:42 +01:00
Léo Gaspard a0307bad46
Merge pull request #79120 from symphorien/iodine
Iodine: ipv6 support, updates, hardening, nixos test....
2020-03-16 23:42:12 +01:00
Maximilian Bosch 7f9131f260
Merge pull request #81405 from NinjaTrappeur/nin-networkd-policy-rules
nixos/networkd: add RoutingPolicyRules-related options
2020-03-04 12:29:29 +01:00
Florian Klink 407be0a577
Merge pull request #81327 from flokli/add-cage
nixos/cage: init
2020-03-03 12:04:33 -08:00
Robert Hensing 6734e58da3
Merge pull request #81292 from hercules-ci/fix-service-runner-quotes
nixos/service-runner.nix: Allow quotes in commands + test
2020-03-03 14:31:00 +01:00
Matthew Bauer e0e4d591cc nixos/cage: init
Add a cage module to nixos. This can be used to make kiosk-style
systems that boot directly to a single application. The user (demo by
default) is automatically logged in by this service and the
program (xterm by default) is automatically started.

This is useful for some embedded, single-user systems where we want
automatic booting. To keep the system secure, the user should have
limited privileges.

Based on the service provided in the Cage wiki here:

https://github.com/Hjdskes/cage/wiki/Starting-Cage-on-boot-with-systemd

Co-Authored-By: Florian Klink <flokli@flokli.de>
2020-03-02 13:43:20 -08:00
Félix Baylac-Jacqué 9897d83f58 nixos/networkd: test routingPolicyRules with a nixos vm test 2020-03-02 15:37:40 +01:00
Robert Hensing 43521ac965 nixos/service-runner.nix: Allow quotes in commands + test 2020-02-28 14:26:29 +01:00
tilpner 6df119a6ec
nixos/git-daemon: only create git user if it will be used 2020-02-26 15:04:36 +01:00
David Wood 60a3d9dd6b nixos/jirefeau: add services.jirafeau module
Signed-off-by: David Wood <david.wood@codeplay.com>
2020-02-18 09:37:44 -08:00
Jacek Galowicz 32e3d15638 nixosTests.krb5: Add to all-tests.nix 2020-02-14 09:56:43 +01:00
Andreas Rammhold 7a625e7453
nixos/tests/firefox: support running the test with the firefox ESR version
Also adds this to the release jobset.
2020-02-11 08:58:13 +01:00
Yorick van Pelt f003810989
nixos/buildkite-agents: support multiple buildkite agents 2020-02-10 13:35:14 +01:00
Silvan Mosberger 637bb9fa98
Merge pull request #72060 from lopsided98/sanoid-init
sanoid: add package, NixOS module and test
2020-02-10 01:28:41 +01:00
Silvan Mosberger b9d7f1fe24 Merge pull request #65397 from mmilata/sympa
sympa: init at 6.2.52 + NixOS module
2020-02-10 01:23:45 +01:00
Ben Wolsieffer 7684537e33
nixos/sanoid, nixos/syncoid: init module and test 2020-02-10 01:12:39 +01:00
Maximilian Bosch c2f2366f5c Merge pull request #79485 from Ma27/grocy
grocy: init at 2.6.0
2020-02-09 23:11:46 +01:00
Maximilian Bosch 13f7b75553
nixos/grocy: init module
Co-authored-by: elseym <elseym@me.com>
2020-02-09 21:55:27 +01:00
Florian Klink dd5f92f20b
Merge pull request #78670 from tfc/port-installer-test
nixosTests.installer: Port installer and ZFS test to python
2020-02-08 15:36:28 +01:00
Martin Milata 097ab90850 nixos/sympa: init module 2020-02-07 22:54:27 +01:00
Jörg Thalheim 341241b1c8
Merge pull request #78886 from Mic92/restic-fixes
Restic fixes: pruning, process substitution (take 2)
2020-02-07 14:14:16 +00:00
Jacek Galowicz 942f0fd7c0 nixosTests.zfs: Add to all-tests.nix 2020-02-07 13:24:16 +01:00
Bruno Bigras 42adda1ec4
nixos/tests/restic.nix: add test 2020-02-07 10:36:53 +00:00
Symphorien Gibol b7f27cb61a nixos/iodine: add test 2020-02-04 20:54:29 +01:00
Florian Klink 136c0e4249
Merge pull request #79141 from thefloweringash/openstack-tests
nixos/tests/openstack-image: add stdenv to image for nixos-rebuild
2020-02-03 18:17:02 +01:00
Andrew Childs 6e40a8e484 nixosTests.openstack-image-userdata: re-enable 2020-02-04 02:07:57 +09:00
worldofpeace 4c3166b006 nixosTests.dnscrypt-proxy2: init
This removes the old dnscrypt-proxy test.
2020-02-02 21:51:19 -05:00
Andreas Rammhold 355b31c98e
Merge pull request #78476 from Ma27/networkd-vrf-options
nixos/networkd: add vrfConfig option for netdevs, add simple test
2020-01-31 13:28:22 +01:00
worldofpeace 3103ba2ce8
Merge pull request #78927 from worldofpeace/blivet-mark-broken
nixosTests.blivet: remove
2020-01-30 19:34:00 -05:00
worldofpeace 85fcf3d7a8 nixosTests.blivet: remove
These have been broken since 2017-07-24, and the package
is hopelessly out of date as well.
2020-01-30 18:14:14 -05:00
Silvan Mosberger 2118cddc82
nixos/freeswitch: init (#76821)
nixos/freeswitch: init
2020-01-30 16:45:47 +01:00
misuzu 0a43e431ca nixos/freeswitch: init 2020-01-30 17:16:49 +02:00
Silvan Mosberger 32718c9992
VictoriaMetrics: init at v1.32.5, add module, tests (#78038)
VictoriaMetrics: init at v1.32.5, add module, tests
2020-01-30 14:02:42 +01:00
Yorick van Pelt 4b7d28b0f9
victoriametrics: add module, tests 2020-01-29 19:52:14 +01:00
Maximilian Bosch a0fd819a4a
nixos/networkd: add test for VRF configurations 2020-01-25 17:38:15 +01:00
Marek Mahut 942568b8ea
Merge pull request #77830 from 1000101/dokuwiki
nixos/dokuwiki: init module
2020-01-25 10:08:14 +01:00
Jan Hrnko 8bab2dec10 nixos/dokuwiki: init module at 2018-04-22b 2020-01-24 13:27:10 +01:00
Florian Klink a208e6eb99 nixosTests.buildkite: add test 2020-01-20 10:30:24 +01:00
Matt Layher 5089214a3d nixos/corerad: init 2020-01-16 12:38:36 -08:00
Silvan Mosberger 55b0129a14
Merge pull request #76178 from 0x4A6F/master-xandikos
xandikos: add tests and module
2020-01-13 23:48:22 +01:00
0x4A6F 78aec9cfcb
nixosTests.xandikos: init 2020-01-11 16:08:44 +01:00
Léo Gaspard b31660e5bb
Merge branch 'master' into ihatemoney 2020-01-09 03:49:03 +01:00
aszlig 845e92835d
Merge Last-Modified fix for nginx (#76697)
This fixes the patch for nginx to clear the Last-Modified header if a
static file is served from the Nix store.

So far we only used the ETag from the store path, but if the
Last-Modified header is always set to "Thu, 01 Jan 1970 00:00:01 GMT",
Firefox and Chrome/Chromium seem to ignore the ETag and simply use the
cached content instead of revalidating.

Alongside the fix, this also adds a dedicated NixOS VM test, which uses
WebDriver and Firefox to check whether the content is actually served
from the browser's cache and to have a more real-world test case.
2020-01-02 21:41:59 +01:00
David Terry c9a3e1f99c
tests/wireguard: init wg-quick
- Duplicate and adapt the existing default wireguard test for wg-quick
- Pull common setup code out into a seperate file
2019-12-30 22:44:00 +01:00
Symphorien Gibol cb38bf33e7 nagios: add nixos test 2019-12-30 16:41:18 +01:00
aszlig ccf55bead1
nginx: Clear Last-Modified if ETag is from store
This is what I've suspected a while ago[1]:

> Heads-up everyone: After testing this in a few production instances,
> it seems that some browsers still get cache hits for new store paths
> (and changed contents) for some reason. I highly suspect that it might
> be due to the last-modified header (as mentioned in [2]).
>
> Going to test this with last-modified disabled for a little while and
> if this is the case I think we should improve that patch by disabling
> last-modified if serving from a store path.

Much earlier[2] when I reviewed the patch, I wrote this:

> Other than that, it looks good to me.
>
> However, I'm not sure what we should do with Last-Modified header.
> From RFC 2616, section 13.3.4:
>
> - If both an entity tag and a Last-Modified value have been
>   provided by the origin server, SHOULD use both validators in
>   cache-conditional requests. This allows both HTTP/1.0 and
>   HTTP/1.1 caches to respond appropriately.
>
> I'm a bit nervous about the SHOULD here, as user agents in the wild
> could possibly just use Last-Modified and use the cached content
> instead.

Unfortunately, I didn't pursue this any further back then because
@pbogdan noted[3] the following:

> Hmm, could they (assuming they are conforming):
>
>  * If an entity tag has been provided by the origin server, MUST
>    use that entity tag in any cache-conditional request (using If-
>    Match or If-None-Match).

Since running with this patch in some deployments, I found that both
Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
Last-Modified header is still the same.

So I wrote a small NixOS VM test with Geckodriver to have a test case
which is closer to the real world and I indeed was able to reproduce
this.

Whether this is actually a bug in Chrome or Firefox is an entirely
different issue and even IF it is the fault of the browsers and it is
fixed at some point, we'd still need to handle this for older browser
versions.

Apart from clearing the header, I also recreated the patch by using a
plain "git diff" with a small description on top. This should make it
easier for future authors to work on that patch.

[1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764
[2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084
[3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135

Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:30:36 +01:00
Jörg Thalheim 89c55c0a6d
net-snmp: split outputs (#76155)
net-snmp: split outputs
2019-12-25 06:27:55 +00:00
Florian Klink eeaf1f702d
Merge pull request #75103 from sternenseemann/spacecookie
services/spacecookie: init
2019-12-23 11:09:52 +01:00
Aaron Andersen 086d1ad906
Merge pull request #75047 from kampka/trilium-server
Add trilium server and module
2019-12-22 20:26:57 -05:00
Christian Kampka ebf3f1fe78
trilium: Pin platforms to x86_64 linux 2019-12-22 15:04:09 +01:00
Jörg Thalheim aadfcc0900
nixos/keepalived: add test 2019-12-22 08:52:56 +00:00
Michael Raskin 6210c15573
Merge pull request #67507 from misuzu/package-3proxy
3proxy: init at 0.8.13
2019-12-19 15:42:15 +00:00
Christian Kampka 82f038d468
trilium-server: Add module 2019-12-19 10:14:12 +01:00
sternenseemann 25503db8e8 nixos/spacecookie: add service module and test 2019-12-17 14:17:03 +01:00
Frederik Rietdijk 7266f3ad2b Merge staging-next into staging 2019-12-15 16:12:48 +01:00
Jan Tojnar aa3cb8b00e
Merge branch 'staging-next' into staging 2019-12-14 23:09:23 +01:00
Christian Kampka c98d54a3e9
zsh-history: Add tests 2019-12-14 10:58:38 +01:00
Kai Wohlfahrt 0dce66a6ec nixos/nfs: test nfs with kerberos authentication 2019-12-12 15:42:44 +00:00
Florian Klink b5c5ed2939
Merge pull request #74066 from 7c6f434c/add-systemd-analyze-test
Add systemd analyze test
2019-12-11 19:04:39 +01:00
Florian Klink 8772359957 nixosTests.containers-portforward: add to all-tests.nix 2019-12-10 20:34:37 +01:00
Michael Raskin e365454066 nixos/tests: add systemd-analyze test 2019-12-08 19:02:20 +01:00
Bruno Bigras 9314dc43b3 gitolite: wrap gitolite-shell
git wasn't found when used with services.fcgiwrap
for http auth
2019-12-08 12:26:02 +01:00
Florian Klink 04071c6a65
Merge pull request #74006 from nh2/nixos-tests-consul
nixosTests.consul: init
2019-12-06 10:21:56 +01:00
Maximilian Bosch 8360a627fa nixos/consul: register test 2019-12-06 03:39:28 +01:00
x123 07be580889 nixos/tests/timezone: port to python 2019-12-06 00:45:30 +01:00
Andrew Dunham c37902dfd1 nixosTests.gvisor: add test for gvisor and gvisor as a Docker runtime 2019-12-03 23:55:24 -08:00
Jacek Galowicz 07802f4d20 nixos/containers-ip: Test both ipv4 and ipv6 in the same script 2019-11-27 09:13:02 +01:00
Florian Klink 02f869ff30 osquery: remove
osquery was marked as broken since April.

If somebody steps up to fix it, we can always revive it from the
histroy, but there's not much value in shipping completely broken things
in current master.

cc @ma27
2019-11-24 22:38:07 +01:00
Florian Klink ca12e08caa
nixosTests.bees: port to python 2019-11-24 18:49:35 +01:00
Florian Klink 2b9773f91e nixos/tests/beegfs: remove
This was broken for quite some time.
cc https://github.com/NixOS/nixpkgs/issues/73998
2019-11-24 17:32:55 +01:00
Frederik Rietdijk 65edeb8633 Merge master into staging-next 2019-11-20 10:01:49 +01:00
worldofpeace b64a77de32 nixosTests: remove xfce4-14 test 2019-11-19 18:47:02 -05:00
Frederik Rietdijk f6b39f852e Merge master into staging-next 2019-11-19 10:53:44 +01:00
rnhmjoj f6a8eb2d00
nixos/tests/magnetico: port to python 2019-11-16 22:14:46 +01:00
Frederik Rietdijk be7125dde7 Merge master into staging-next 2019-11-16 11:45:07 +01:00
worldofpeace 4583e293fd
Merge pull request #73251 from worldofpeace/remove-slim
nixos/slim: remove
2019-11-15 15:56:48 +00:00
Jan Tojnar da76deffd1
Merge branch 'master' into staging-next 2019-11-14 23:25:36 +01:00
Leonhard Markert ceccff3439 lorri: init at version unstable-2019-10-30
Includes user service (nixos/modules/services/development/lorri) that
starts on demand.
2019-11-14 16:06:27 +01:00
Frederik Rietdijk c6e31d0767 Merge master into staging-next 2019-11-14 13:31:39 +01:00
Franz Pletz e84840117b
Merge pull request #71510 from asymmetric/wg-ns
Add namespace support to Wireguard module
2019-11-14 01:24:59 +00:00
worldofpeace ce26b3eaf0 nixos/slim: remove
The SLIM project is abandoned and their last release was in 2013.
Because of this it poses a security risk to systems, no one is working
on it or picked up maintenance. It also lacks compatibility with systemd
and logind sessions. For users, there liikely isn't anything like slim
that's as lightweight in terms of dependencies.
2019-11-11 17:10:41 -05:00
misuzu 08eb63b5ac nixos/3proxy: init 2019-11-11 16:15:29 +02:00