rework victoriametrics to be more generic with test
This commit is contained in:
@@ -1,47 +0,0 @@
|
||||
{
|
||||
_class = "clan.service";
|
||||
manifest.name = "Victoria Metrics";
|
||||
manifest.description = "VictoriaMetrics: fast, cost-effective monitoring solution and time series database";
|
||||
manifest.categories = [ "System" ];
|
||||
|
||||
roles.default = {
|
||||
perInstance = {
|
||||
nixosModule =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
defaultUser = "victoriametrics";
|
||||
in
|
||||
{
|
||||
clan.core.vars.generators.victoria-metrics = {
|
||||
files = {
|
||||
username = {
|
||||
secret = false;
|
||||
};
|
||||
password = {
|
||||
secret = true;
|
||||
owner = defaultUser;
|
||||
group = defaultUser;
|
||||
};
|
||||
};
|
||||
script = ''
|
||||
echo "admin" > "$out"/username
|
||||
xkcdpass --numwords 4 --delimiter - --count 1 | tr -d "\n" > "$out"/password
|
||||
'';
|
||||
runtimeInputs = [ pkgs.xkcdpass ];
|
||||
};
|
||||
services.victoriametrics = {
|
||||
enable = true;
|
||||
extraOptions = [
|
||||
"-httpAuth.username=file://${config.clan.core.vars.generators.victoria-metrics.files.username.path}"
|
||||
"-httpAuth.password=file://${config.clan.core.vars.generators.victoria-metrics.files.password.path}"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
25
modules/clan/victoriametrics/default.nix
Normal file
25
modules/clan/victoriametrics/default.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ ... }:
|
||||
{
|
||||
_class = "clan.service";
|
||||
manifest.name = "Victoria Metrics";
|
||||
manifest.description = "VictoriaMetrics: fast, cost-effective monitoring solution and time series database";
|
||||
manifest.categories = [ "System" ];
|
||||
|
||||
roles.default = {
|
||||
perInstance.nixosModule =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.victoriametrics = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
clan.core.state.victoriametrics.folders = lib.mkDefault [
|
||||
"/var/lib/${config.services.victoriametrics.stateDir}"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
19
modules/clan/victoriametrics/flake-module.nix
Normal file
19
modules/clan/victoriametrics/flake-module.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
module = lib.modules.importApply ./default.nix { };
|
||||
in
|
||||
{
|
||||
clan.modules = {
|
||||
victoriametrics = module;
|
||||
};
|
||||
|
||||
perSystem =
|
||||
{ ... }:
|
||||
{
|
||||
clan.nixosTests.victoriametrics = {
|
||||
imports = [ ./tests/vm/default.nix ];
|
||||
|
||||
clan.modules."@clan/victoriametrics" = module;
|
||||
};
|
||||
};
|
||||
}
|
34
modules/clan/victoriametrics/tests/vm/default.nix
Normal file
34
modules/clan/victoriametrics/tests/vm/default.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
name = "service-victoriametrics";
|
||||
|
||||
clan = {
|
||||
directory = ./.;
|
||||
inventory = {
|
||||
machines.server = { };
|
||||
|
||||
instances = {
|
||||
victoriametrics-test = {
|
||||
module.name = "@clan/victoriametrics";
|
||||
module.input = "self";
|
||||
roles.default.machines."server".settings = { };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = { };
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
server.wait_for_unit("victoriametrics")
|
||||
|
||||
server.succeed("systemctl status victoriametrics")
|
||||
|
||||
'';
|
||||
}
|
Reference in New Issue
Block a user