WIP: jepsen.garage nixos test #725

Draft
yuka wants to merge 4 commits from yuka/garage:jepsen-nixos-test into main
Contributor

Run the jepsen tests in a nix derivation as an isolated and reproducible way of setting up the environment.

Motivation: The vagrant setup is already mostly that, but it still requires me to set up virtualbox including kernel modules, and in any case some rootful setup, which kind of bothered me

This is an incomplete proof of concept, because:

  • Only runs one scenario, with one garage version
  • Requires setting the nixpkgs to nixos-unstable which might break other things
  • Needs updates to the documentation for how to run the jepsen tests without nixos after the migration to deps.edn
Run the jepsen tests in a nix derivation as an isolated and reproducible way of setting up the environment. Motivation: The vagrant setup is already mostly that, but it still requires me to set up virtualbox including kernel modules, and in any case some rootful setup, which kind of bothered me This is an incomplete proof of concept, because: - Only runs one scenario, with one garage version - Requires setting the nixpkgs to nixos-unstable which might break other things - Needs updates to the documentation for how to run the jepsen tests without nixos after the migration to deps.edn
yuka force-pushed jepsen-nixos-test from 388136df8f to 351e5ca88b 2024-02-19 22:58:00 +00:00 Compare
yuka force-pushed jepsen-nixos-test from 351e5ca88b to cd0142fbdc 2024-02-19 22:58:19 +00:00 Compare
yuka force-pushed jepsen-nixos-test from cd0142fbdc to 16a26af0fe 2024-02-19 23:02:14 +00:00 Compare
yuka force-pushed jepsen-nixos-test from 16a26af0fe to 4852eb4b6b 2024-02-19 23:05:09 +00:00 Compare
yuka force-pushed jepsen-nixos-test from 4852eb4b6b to fc6c94e811 2024-02-19 23:13:00 +00:00 Compare
Owner

I think it would be nice to get this merged so that we can run the Jepsen testing pipeline in our CI.

Some remarks:

  • It is not desirable to set nixpkgs to unstable for the build process. Could it be refactored to keep the nixpkgs input to what it was previously, and have a second input, for example called nixpkgs-unstable, that is passed to the part that does Jepsen testing?

  • Could the bulk of the Jepsen testing be moved to an external file like nix/jepsen.nix to avoid crowding the main flake.nix file?

  • Your PR removes the project.clj in the Jepsen script directory. Is this strictly necessary to make it possible to run as a Nix derivation? Does it not prevent running it as before using regular lein commands?

I think it would be nice to get this merged so that we can run the Jepsen testing pipeline in our CI. Some remarks: - It is not desirable to set nixpkgs to unstable for the build process. Could it be refactored to keep the nixpkgs input to what it was previously, and have a second input, for example called `nixpkgs-unstable`, that is passed to the part that does Jepsen testing? - Could the bulk of the Jepsen testing be moved to an external file like `nix/jepsen.nix` to avoid crowding the main flake.nix file? - Your PR removes the `project.clj` in the Jepsen script directory. Is this strictly necessary to make it possible to run as a Nix derivation? Does it not prevent running it as before using regular `lein` commands?
Owner

(Looks like the CI pipeline is broken, probably because of nixpkgs unstable. It's unable to build Wine which we use to test the winscp client)

(Looks like the CI pipeline is broken, probably because of nixpkgs unstable. It's unable to build Wine which we use to test the winscp client)
Some checks failed
ci/woodpecker/pr/debug Pipeline failed
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
Sign in to join this conversation.
No description provided.