nixos/tests/invidious: add test for scaled invidious

+22
+22
nixos/tests/invidious.nix
··· 41 41 }; 42 42 networking.hosts."127.0.0.1" = [ "invidious.example.com" ]; 43 43 }; 44 + nginx-scale.configuration = { 45 + services.invidious = { 46 + nginx.enable = true; 47 + domain = "invidious.example.com"; 48 + serviceScale = 3; 49 + }; 50 + services.nginx.virtualHosts."invidious.example.com" = { 51 + forceSSL = false; 52 + enableACME = false; 53 + }; 54 + networking.hosts."127.0.0.1" = [ "invidious.example.com" ]; 55 + }; 44 56 postgres-tcp.configuration = { 45 57 services.invidious = { 46 58 database = { ··· 75 87 activate_specialisation("nginx") 76 88 machine.wait_for_open_port(80) 77 89 curl_assert_status_code("http://invidious.example.com/search", 200) 90 + 91 + activate_specialisation("nginx-scale") 92 + machine.wait_for_open_port(80) 93 + # this depends on nginx round-robin behaviour for the upstream servers 94 + curl_assert_status_code("http://invidious.example.com/search", 200) 95 + curl_assert_status_code("http://invidious.example.com/search", 200) 96 + curl_assert_status_code("http://invidious.example.com/search", 200) 97 + machine.succeed("journalctl -eu invidious.service | grep -o '200 GET /search'") 98 + machine.succeed("journalctl -eu invidious-1.service | grep -o '200 GET /search'") 99 + machine.succeed("journalctl -eu invidious-2.service | grep -o '200 GET /search'") 78 100 79 101 postgres_tcp.wait_for_unit("postgresql.service") 80 102 activate_specialisation("postgres-tcp")