/
soju.nix
35 lines (30 loc) · 908 Bytes
/
soju.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import ./make-test-python.nix ({ pkgs, ... }:
let
domain = "soju.localdomain";
user = "testuser";
pass = "hunter2";
tls-cert = pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } ''
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 36500 \
-subj '/CN=${domain}' -extensions v3_req \
-addext 'subjectAltName = DNS:*.${domain}'
install -D -t $out key.pem cert.pem
'';
in
{
name = "soju";
nodes.machine = { ... }: {
services.soju = {
enable = true;
adminSocket.enable = true;
hostName = domain;
tlsCertificate = "${tls-cert}/cert.pem";
tlsCertificateKey = "${tls-cert}/key.pem";
};
};
testScript = ''
start_all()
machine.wait_for_unit("soju")
machine.wait_for_file("/run/soju/admin")
machine.succeed("sojuctl user create -username ${user} -password ${pass}")
'';
})