mob next [ci-skip] [ci skip] [skip ci]

lastFile:inventories/default.nix
This commit is contained in:
2026-06-22 11:36:27 +07:00
parent 693a97ec26
commit fee709297d
2 changed files with 117 additions and 68 deletions
+66 -66
View File
@@ -325,73 +325,73 @@
( (
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
clan.core.vars.generators.prometheus = { # clan.core.vars.generators.prometheus = {
files.matrix-alertmanager-token.secret = true; # files.matrix-alertmanager-token.secret = true;
files.matrix-alertmanager-secret.secret = true; # files.matrix-alertmanager-secret.secret = true;
files.matrix-alertmanager-urlfile = { # files.matrix-alertmanager-urlfile = {
secret = true; # secret = true;
owner = "alertmanager"; # owner = "alertmanager";
group = "alertmanager"; # group = "alertmanager";
}; # };
script = '' # script = ''
echo "" > $out/matrix-alertmanager-token # echo "" > $out/matrix-alertmanager-token
openssl rand -hex 32 > "$out"/matrix-alertmanager-secret # openssl rand -hex 32 > "$out"/matrix-alertmanager-secret
#
# echo "http://localhost:3000/alerts?secret=$(cat $out/matrix-alertmanager-secret)" > $out/matrix-alertmanager-urlfile
# '';
# runtimeInputs = [
# pkgs.openssl
# ];
# };
#
# services.matrix-alertmanager = {
# enable = true;
# tokenFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-token.path;
# secretFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-secret.path;
# homeserverUrl = "https://matrix-client.matrix.org";
# matrixUser = "@kuroiris:matrix.org";
# matrixRooms = [
# {
# receivers = [
# "matrix"
# ];
# roomId = "!rqIrWqPvsXqMgYpcNZ:matrix.org";
# }
# ];
# };
echo "http://localhost:3000/alerts?secret=$(cat $out/matrix-alertmanager-secret)" > $out/matrix-alertmanager-urlfile # services.prometheus = {
''; #
runtimeInputs = [ # alertmanager = {
pkgs.openssl # enable = true;
]; # configuration = {
}; # global = {
# resolve_timeout = "5m";
services.matrix-alertmanager = { # };
enable = true; # route = {
tokenFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-token.path; # receiver = "default";
secretFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-secret.path; # routes = [
homeserverUrl = "https://matrix-client.matrix.org"; # {
matrixUser = "@kuroiris:matrix.org"; # receiver = "matrix";
matrixRooms = [ # }
{ # ];
receivers = [ # };
"matrix" # receivers = [
]; # { name = "default"; }
roomId = "!rqIrWqPvsXqMgYpcNZ:matrix.org"; # {
} # name = "matrix";
]; # webhook_configs = [
}; # {
# url_file = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-urlfile.path;
services.prometheus = { # send_resolved = true;
# }
alertmanager = { # ];
enable = true; # }
configuration = { # ];
global = { # };
resolve_timeout = "5m"; # };
}; #
route = { # };
receiver = "default";
routes = [
{
receiver = "matrix";
}
];
};
receivers = [
{ name = "default"; }
{
name = "matrix";
webhook_configs = [
{
url_file = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-urlfile.path;
send_resolved = true;
}
];
}
];
};
};
};
} }
) )
]; ];
+51 -2
View File
@@ -10,7 +10,7 @@
description = "Prometheus server that scraps all data from nodes"; description = "Prometheus server that scraps all data from nodes";
interface = interface =
{ lib, ... }: { lib, options, ... }:
{ {
options = { options = {
scrape_interval = lib.mkOption { scrape_interval = lib.mkOption {
@@ -30,6 +30,23 @@
}; };
description = "Definition of a default receiver, default is doing nothing"; description = "Definition of a default receiver, default is doing nothing";
}; };
matrix-alertmanager = {
enable = lib.mkOption {
type = with lib.types; bool;
default = false;
description = "Whether to enable `services.matrix-alertmanager`";
};
homeserverUrl = lib.mkOption {
type = with lib.types; str;
default = "https://matrix-client.matrix.org";
description = "URL of the Matrix homeserver to use";
};
matrixUser = lib.mkOption {
type = with lib.types; str;
description = "Matrix user for the bot";
};
matrixRooms = options.services.matrix-alertmanager.matrixRooms;
};
}; };
}; };
@@ -161,7 +178,39 @@
}; };
}; }
// lib.optionalAttrs settings.matrix-alertmanager.enable (
{ pkgs, ... }:
{
clan.core.vars.generators.prometheus = {
files.matrix-alertmanager-token.secret = true;
files.matrix-alertmanager-secret.secret = true;
files.matrix-alertmanager-urlfile = {
secret = true;
owner = "alertmanager";
group = "alertmanager";
};
script = ''
echo "" > $out/matrix-alertmanager-token
openssl rand -hex 32 > "$out"/matrix-alertmanager-secret
echo "http://localhost:3000/alerts?secret=$(cat $out/matrix-alertmanager-secret)" > $out/matrix-alertmanager-urlfile
'';
runtimeInputs = [
pkgs.openssl
];
};
services.matrix-alertmanager = lib.mkIf settings.matrix-alertmanager.enable {
enable = true;
tokenFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-token.path;
secretFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-secret.path;
homeserverUrl = settings.matrix-alertmanager.homeserverUrl;
matrixUser = settings.matrix-alertmanager.matrixUser;
matrixRooms = settings.matrix-alertmanager.matrixRooms;
};
}
);
}; };
}; };