about summary refs log tree commit diff
path: root/nixos/tests/all-tests.nix
Commit message (Collapse)AuthorAge
* nixos/tests: include the etcd-cluster test in all-tests.nixedef2019-07-09
| | | | | We seem to have had this test for quite a while, but nothing seems to reference it.
* nixos/tests: add test for lokiWilliButz2019-07-08
|
* flatpak-builder: 1.0.6 -> 1.0.7 (#62413)Jan Tojnar2019-06-16
|\ | | | | flatpak-builder: 1.0.6 -> 1.0.7
| * flatpak-builder: add installed testsJan Tojnar2019-06-16
| |
* | Merge branch 'master' into staging-nextVladimír Čunát2019-06-14
|\ \ | | | | | | | | | | | | Brings in Haskell rebuild. Hydra nixpkgs: ?compare=1525186
| * | nixos/cassandra: Reenable testsDaniel Schaefer2019-06-13
| |/
* | Merge master into staging-nextFrederik Rietdijk2019-06-09
|\|
| * Merge pull request #62133 from LnL7/nixos-uwsgiDaiderd Jordan2019-06-08
| |\ | | | | | | nixos: add test for uwsgi
| | * nixos: add test for uwsgiDaiderd Jordan2019-05-27
| | |
* | | Merge branch 'staging-next' into stagingVladimír Čunát2019-06-03
|\| | | | | | | | | | | | | | Conflicts (simple): nixos/doc/manual/release-notes/rl-1909.xml
| * | Merge pull request #57752 from aanderse/limesurveyMatthew Bauer2019-06-01
| |\ \ | | | | | | | | limesurvey: 2.05_plus_141210 -> 3.17.1+190408, init module
| | * | nixos/limesurvey: add basic nixos testAaron Andersen2019-05-28
| | | |
| * | | nixos: Add test that demonstrates how to use nesting.cloneArian van Putten2019-05-26
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | This is actually very useful. Allows you to test switch-to-configuration nesting.children is still currently still broken as it will throw away 'too much' of the config, including the modules that make nixos tests work in the first place. But that's something for another time.
* / | nixos/systemd: migrate systemd-timesync state when requiredAndreas Rammhold2019-06-03
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somewhen between systemd v239 and v242 upstream decided to no longer run a few system services with `DyanmicUser=1` but failed to provide a migration path for all the state those services left behind. For the case of systemd-timesync the state has to be moved from /var/lib/private/systemd/timesync to /var/lib/systemd/timesync if /var/lib/systemd/timesync is currently a symlink. We only do this if the stateVersion is still below 19.09 to avoid starting to have an ever growing activation script for (then) ancient systemd migrations that are no longer required. See https://github.com/systemd/systemd/issues/12131 for details about the missing migration path and related discussion.
* / nixosTests.signal-desktop: add testFlorian Klink2019-05-23
|/
* Merge pull request #61610 from worldofpeace/init/grapheneRenaud2019-05-22
|\ | | | | graphene: init at 1.8.6
| * nixosTests.graphene: initworldofpeace2019-05-16
| |
* | nixos/syncthing: add options for declarative device/folder configlassulus2019-05-20
| |
* | Merge pull request #59401 from mguentner/mxisd_1_3Aaron Andersen2019-05-19
|\ \ | | | | | | mxisd: 1.2.0 -> 1.4.3
| * | tests: add mxisd to all-testsMaximilian Güntner2019-05-18
| |/
* / nixos: add test for tinydnsBas van Dijk2019-05-16
|/
* Merge pull request #44086 from erikarvstedt/paperlessworldofpeace2019-05-08
|\ | | | | paperless: add package and service
| * paperless service: initErik Arvstedt2019-05-08
| |
* | nixos/jellyfin: add test to all-tests.nixnyanloutre2019-05-01
|/
* Merge pull request #59731 from ajs124/ejabberd_testSilvan Mosberger2019-04-27
|\ | | | | ejabberd: refactor module, add test
| * nixos/ejabberd: add basic testajs1242019-04-19
| |
* | Merge pull request #60019 from aanderse/nzbgetFlorian Klink2019-04-27
|\ \ | | | | | | nzbget: fix broken service, as well as some improvements
| * | nixos/nzbget: fix broken service, add a nixos test, as well as some general ↵Aaron Andersen2019-04-25
| | | | | | | | | | | | improvements
* | | Merge pull request #60146 from peterhoeg/f/packagekitPeter Hoeg2019-04-26
|\ \ \ | |/ / |/| | nixos/packagekit: make it not error out + test
| * | nixos/packagekit: add testPeter Hoeg2019-04-24
| |/
* | Merge pull request #60149 from peterhoeg/u/mosquitto_160Peter Hoeg2019-04-24
|\ \ | | | | | | mosquitto: 1.5.8 -> 1.6 + nixos tests
| * | nixos/mosquitto: add testPeter Hoeg2019-04-24
| |/
* | wireguard: add generatePrivateKeyFile option + testGraham Christensen2019-04-24
| | | | | | | | | | | | Ideally, private keys never leave the host they're generated on - like SSH. Setting generatePrivateKeyFile to true causes the PK to be generate automatically.
* | automysqlinit: init at 3.0_rc6Aaron Andersen2019-04-15
|/
* Merge pull request #56719 from bricewge/miniflux-serviceJoachim F2019-04-12
|\ | | | | miniflux: add service
| * miniflux: add serviceJeremy Apthorp2019-04-06
| |
* | Merge pull request #58255 from jbgi/prometheus2Bas van Dijk2019-04-09
|\ \ | | | | | | Add Prometheus 2 service in parallel with 1.x version (continuation)
| * | nixos/tests: register the prometheus2 testBas van Dijk2019-04-08
| | |
* | | Merge pull request #58398 from Ma27/package-documizeRobin Gloster2019-04-08
|\ \ \ | | | | | | | | documize-community: init at 2.2.1
| * | | documize-community: init at 2.2.1Maximilian Bosch2019-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Documize is an open-source alternative for wiki software like Confluence based on Go and EmberJS. This patch adds the sources for the community edition[1], for commercial their paid-plan[2] needs to be used. For commercial use a derivation that bundles the commercial package and contains a `$out/bin/documize` can be passed to `services.documize.enable`. The package compiles the Go sources, the build process also bundles the pre-built frontend from `gui/public` into the binary. The NixOS module generates a simple `systemd` unit which starts the service as a dynamic user, database and a reverse proxy won't be configured. [1] https://www.documize.com/get-started/ [2] https://www.documize.com/pricing/
* | | | tests/pdns-recursor: addJörg Thalheim2019-04-04
| | | |
* | | | Merge pull request #57789 from Ma27/wireguard-testFranz Pletz2019-04-02
|\ \ \ \ | |_|_|/ |/| | | nixos/wireguard: add test
| * | | nixos/wireguard: add testMaximilian Bosch2019-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After working on the last wireguard bump (#57534), we figured that it's probably a good idea to have a basic test which confirms that a simple VPN with wireguard still works. This test starts two peers with a `wg0` network interface and adds a v4 and a v6 route that goes through `wg0`.
* | | | kafka: Add test for 2.2Tim Steinbach2019-04-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add back tests, don't seem broken anymore. This is just fine: nix-build ./nixos/release.nix -A tests.kafka.kafka_2_1.x86_64-linux -A tests.kafka.kafka_2_2.x86_64-linux
* | | | linux: Add testing testTim Steinbach2019-04-01
| | | |
* | | | Merge pull request #57519 (systemd-confinement)aszlig2019-03-29
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if you want to properly chroot a systemd service, you could do it using BindReadOnlyPaths=/nix/store or use a separate derivation which gathers the runtime closure of the service you want to chroot. The former is the easier method and there is also a method directly offered by systemd, called ProtectSystem, which still leaves the whole store accessible. The latter however is a bit more involved, because you need to bind-mount each store path of the runtime closure of the service you want to chroot. This can be achieved using pkgs.closureInfo and a small derivation that packs everything into a systemd unit, which later can be added to systemd.packages. However, this process is a bit tedious, so the changes here implement this in a more generic way. Now if you want to chroot a systemd service, all you need to do is: { systemd.services.myservice = { description = "My Shiny Service"; wantedBy = [ "multi-user.target" ]; confinement.enable = true; serviceConfig.ExecStart = "${pkgs.myservice}/bin/myservice"; }; } If more than the dependencies for the ExecStart* and ExecStop* (which btw. also includes script and {pre,post}Start) need to be in the chroot, it can be specified using the confinement.packages option. By default (which uses the full-apivfs confinement mode), a user namespace is set up as well and /proc, /sys and /dev are mounted appropriately. In addition - and by default - a /bin/sh executable is provided, which is useful for most programs that use the system() C library call to execute commands via shell. Unfortunately, there are a few limitations at the moment. The first being that DynamicUser doesn't work in conjunction with tmpfs, because systemd seems to ignore the TemporaryFileSystem option if DynamicUser is enabled. I started implementing a workaround to do this, but I decided to not include it as part of this pull request, because it needs a lot more testing to ensure it's consistent with the behaviour without DynamicUser. The second limitation/issue is that RootDirectoryStartOnly doesn't work right now, because it only affects the RootDirectory option and doesn't include/exclude the individual bind mounts or the tmpfs. A quirk we do have right now is that systemd tries to create a /usr directory within the chroot, which subsequently fails. Fortunately, this is just an ugly error and not a hard failure. The changes also come with a changelog entry for NixOS 19.03, which is why I asked for a vote of the NixOS 19.03 stable maintainers whether to include it (I admit it's a bit late a few days before official release, sorry for that): @samueldr: Via pull request comment[1]: +1 for backporting as this only enhances the feature set of nixos, and does not (at a glance) change existing behaviours. Via IRC: new feature: -1, tests +1, we're at zero, self-contained, with no global effects without actively using it, +1, I think it's good @lheckemann: Via pull request comment[2]: I'm neutral on backporting. On the one hand, as @samueldr says, this doesn't change any existing functionality. On the other hand, it's a new feature and we're well past the feature freeze, which AFAIU is intended so that new, potentially buggy features aren't introduced in the "stabilisation period". It is a cool feature though? :) A few other people on IRC didn't have opposition either against late inclusion into NixOS 19.03: @edolstra: "I'm not against it" @Infinisil: "+1 from me as well" @grahamc: "IMO its up to the RMs" So that makes +1 from @samueldr, 0 from @lheckemann, 0 from @edolstra and +1 from @Infinisil (even though he's not a release manager) and no opposition from anyone, which is the reason why I'm merging this right now. I also would like to thank @Infinisil, @edolstra and @danbst for their reviews. [1]: https://github.com/NixOS/nixpkgs/pull/57519#issuecomment-477322127 [2]: https://github.com/NixOS/nixpkgs/pull/57519#issuecomment-477548395
| * | | | nixos/systemd-chroot: Rename chroot to confinementaszlig2019-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quoting @edolstra from [1]: I don't really like the name "chroot", something like "confine[ment]" or "restrict" seems better. Conceptually we're not providing a completely different filesystem tree but a restricted view of the same tree. I already used "confinement" as a sub-option and I do agree that "chroot" sounds a bit too specific (especially because not *only* chroot is involved). So this changes the module name and its option to use "confinement" instead of "chroot" and also renames the "chroot.confinement" to "confinement.mode". [1]: https://github.com/NixOS/nixpkgs/pull/57519#issuecomment-472855704 Signed-off-by: aszlig <aszlig@nix.build>
| * | | | nixos: Add 'chroot' options to systemd.servicesaszlig2019-03-14
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if you want to properly chroot a systemd service, you could do it using BindReadOnlyPaths=/nix/store (which is not what I'd call "properly", because the whole store is still accessible) or use a separate derivation that gathers the runtime closure of the service you want to chroot. The former is the easier method and there is also a method directly offered by systemd, called ProtectSystem, which still leaves the whole store accessible. The latter however is a bit more involved, because you need to bind-mount each store path of the runtime closure of the service you want to chroot. This can be achieved using pkgs.closureInfo and a small derivation that packs everything into a systemd unit, which later can be added to systemd.packages. That's also what I did several times[1][2] in the past. However, this process got a bit tedious, so I decided that it would be generally useful for NixOS, so this very implementation was born. Now if you want to chroot a systemd service, all you need to do is: { systemd.services.yourservice = { description = "My Shiny Service"; wantedBy = [ "multi-user.target" ]; chroot.enable = true; serviceConfig.ExecStart = "${pkgs.myservice}/bin/myservice"; }; } If more than the dependencies for the ExecStart* and ExecStop* (which btw. also includes "script" and {pre,post}Start) need to be in the chroot, it can be specified using the chroot.packages option. By default (which uses the "full-apivfs"[3] confinement mode), a user namespace is set up as well and /proc, /sys and /dev are mounted appropriately. In addition - and by default - a /bin/sh executable is provided as well, which is useful for most programs that use the system() C library call to execute commands via shell. The shell providing /bin/sh is dash instead of the default in NixOS (which is bash), because it's way more lightweight and after all we're chrooting because we want to lower the attack surface and it should be only used for "/bin/sh -c something". Prior to submitting this here, I did a first implementation of this outside[4] of nixpkgs, which duplicated the "pathSafeName" functionality from systemd-lib.nix, just because it's only a single line. However, I decided to just re-use the one from systemd here and subsequently made it available when importing systemd-lib.nix, so that the systemd-chroot implementation also benefits from fixes to that functionality (which is now a proper function). Unfortunately, we do have a few limitations as well. The first being that DynamicUser doesn't work in conjunction with tmpfs, because it already sets up a tmpfs in a different path and simply ignores the one we define. We could probably solve this by detecting it and try to bind-mount our paths to that different path whenever DynamicUser is enabled. The second limitation/issue is that RootDirectoryStartOnly doesn't work right now, because it only affects the RootDirectory option and not the individual bind mounts or our tmpfs. It would be helpful if systemd would have a way to disable specific bind mounts as well or at least have some way to ignore failures for the bind mounts/tmpfs setup. Another quirk we do have right now is that systemd tries to create a /usr directory within the chroot, which subsequently fails. Fortunately, this is just an ugly error and not a hard failure. [1]: https://github.com/headcounter/shabitica/blob/3bb01728a0237ad5e7/default.nix#L43-L62 [2]: https://github.com/aszlig/avonc/blob/dedf29e092481a33dc/nextcloud.nix#L103-L124 [3]: The reason this is called "full-apivfs" instead of just "full" is to make room for a *real* "full" confinement mode, which is more restrictive even. [4]: https://github.com/aszlig/avonc/blob/92a20bece4df54625e/systemd-chroot.nix Signed-off-by: aszlig <aszlig@nix.build>
* | / / nixos/mailcatcher: add nixos testAaron Andersen2019-03-27
| |/ / |/| |
* | | NixOS: Run Docker containers as declarative systemd services (#55179)Benjamin Staffin2019-03-25
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: Run Docker containers as declarative systemd services * PR feedback round 1 * docker-containers: add environment, ports, user, workdir options * docker-containers: log-driver, string->str, line wrapping * ExecStart instead of script wrapper, %n for container name * PR feedback: better description and example formatting * Fix docbook formatting (oops) * Use a list of strings for ports, expand documentation * docker-continers: add a simple nixos test * waitUntilSucceeds to avoid potential weird async issues * Don't enable docker daemon unless we actually need it * PR feedback: leave ExecReload undefined