1import ./make-test-python.nix (
2 { pkgs, ... }:
3 {
4 name = "vault-dev";
5 meta = with pkgs.lib.maintainers; {
6 maintainers = [
7 lnl7
8 mic92
9 ];
10 };
11 nodes.machine =
12 { pkgs, config, ... }:
13 {
14 environment.systemPackages = [ pkgs.vault ];
15 environment.variables.VAULT_ADDR = "http://127.0.0.1:8200";
16 environment.variables.VAULT_TOKEN = "phony-secret";
17
18 services.vault = {
19 enable = true;
20 dev = true;
21 devRootTokenID = config.environment.variables.VAULT_TOKEN;
22 };
23 };
24
25 testScript = ''
26 import json
27 start_all()
28 machine.wait_for_unit("multi-user.target")
29 machine.wait_for_unit("vault.service")
30 machine.wait_for_open_port(8200)
31 out = machine.succeed("vault status -format=json")
32 print(out)
33 status = json.loads(out)
34 assert status.get("initialized") == True
35 machine.succeed("vault kv put secret/foo bar=baz")
36 out = machine.succeed("vault kv get -format=json secret/foo")
37 print(out)
38 status = json.loads(out)
39 assert status.get("data", {}).get("data", {}).get("bar") == "baz"
40 '';
41 }
42)