about summary refs log tree commit diff stats
path: root/tests/common/acme
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-07 14:20:03 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-07 14:20:03 +0200
commit4214e54d6e0a64909b45b2191af5e233100d73fa (patch)
treebe182ccc6f299a42702cb5edcded2934afa88199 /tests/common/acme
parentpkgs/sharkey: Remove nixpkgs unstable wrapper (diff)
downloadnixos-server-4214e54d6e0a64909b45b2191af5e233100d73fa.zip
tests/{atuin-sync,email-{dns,http},sharkey,taskchampion-sync}: Share acme setup
In the wake of `network-online.target`'s removal from `multi-user.target`,
I noticed, that this acme ca setup code is effectively duplicated. This
commit now deduplicates it.
Diffstat (limited to 'tests/common/acme')
-rw-r--r--tests/common/acme/default.nix24
-rw-r--r--tests/common/acme/scripts.nix2
2 files changed, 25 insertions, 1 deletions
diff --git a/tests/common/acme/default.nix b/tests/common/acme/default.nix
new file mode 100644
index 0000000..794a939
--- /dev/null
+++ b/tests/common/acme/default.nix
@@ -0,0 +1,24 @@
+{pkgs}: let
+  acme_scripts = import ./scripts.nix {inherit pkgs;};
+in {
+  prepare = clients: extra:
+  # The parens are needed for the syntax highlighting to work.
+    ( # python
+      ''
+        # Start dependencies for the other services
+        acme.start()
+        acme.wait_for_unit("pebble.service")
+        name_server.start()
+        name_server.wait_for_unit("nsd.service")
+
+        # Start actual test
+        start_all()
+
+        with subtest("Add pebble ca key to all services"):
+          for node in [name_server, ${builtins.concatStringsSep "," clients}]:
+            node.wait_until_succeeds("curl https://acme.test:15000/roots/0")
+            node.succeed("${acme_scripts.add_pebble_ca_certs}")
+      ''
+    )
+    + extra;
+}
diff --git a/tests/common/acme/scripts.nix b/tests/common/acme/scripts.nix
index 2228823..4161ab8 100644
--- a/tests/common/acme/scripts.nix
+++ b/tests/common/acme/scripts.nix
@@ -3,7 +3,7 @@
 * Extra functions useful for the test script.
 */
 {
-  add_pebble_acme_ca = pkgs.writeShellScript "fetch-and-set-ca" ''
+  add_pebble_ca_certs = pkgs.writeShellScript "fetch-and-set-ca" ''
     set -xe
 
     # Fetch the randomly generated ca certificate