parent
0fc77df1a9
commit
8e09f8360a
47 changed files with 98 additions and 1026 deletions
|
|
@ -22,12 +22,12 @@ let
|
|||
runGroup
|
||||
;
|
||||
|
||||
grafanaOldPath = hive {
|
||||
grafanaHere = hive {
|
||||
deploy.grafana.enable = true;
|
||||
swarm.grafana.datasourceUrl = "http://127.0.0.1:19999";
|
||||
swarm.grafana.logsDatasourceUrl = "http://127.0.0.1:19998";
|
||||
swarm.grafana.plugins = [ ];
|
||||
swarm.grafana.package = pkgs.emptyDirectory;
|
||||
deploy.grafana.datasourceUrl = "http://127.0.0.1:19999";
|
||||
deploy.grafana.logsDatasourceUrl = "http://127.0.0.1:19998";
|
||||
deploy.grafana.plugins = [ ];
|
||||
deploy.grafana.package = pkgs.emptyDirectory;
|
||||
};
|
||||
|
||||
# A host that tries to move the socket directory; reading the option throws.
|
||||
|
|
@ -120,7 +120,7 @@ let
|
|||
ok =
|
||||
!(builtins.tryEval grafanaSocketDirSet.services.hyperhive.deploy.grafana.socketDir).success
|
||||
&&
|
||||
grafanaOldPath.services.nginx.virtualHosts.${grafanaOldPath.services.hyperhive.swarm.grafana.domain}.locations."= /metrics".proxyPass
|
||||
grafanaHere.services.nginx.virtualHosts.${grafanaHere.services.hyperhive.swarm.grafana.domain}.locations."= /metrics".proxyPass
|
||||
== "http://unix:/run/swarm-grafana/grafana.sock:/metrics";
|
||||
}
|
||||
{
|
||||
|
|
@ -132,8 +132,8 @@ let
|
|||
name = "grafana's published vhost serves /metrics only behind the collector's auth subrequest";
|
||||
ok =
|
||||
let
|
||||
g = grafanaOldPath.services.hyperhive.swarm.grafana;
|
||||
locs = grafanaOldPath.services.nginx.virtualHosts.${g.domain}.locations;
|
||||
g = grafanaHere.services.hyperhive.swarm.grafana;
|
||||
locs = grafanaHere.services.nginx.virtualHosts.${g.domain}.locations;
|
||||
checksOf = l: lib.filter (lib.hasPrefix "auth_request") (lib.splitString "\n" l.extraConfig);
|
||||
authz = locs."= /__grafana_metrics_authz";
|
||||
in
|
||||
|
|
@ -143,7 +143,7 @@ let
|
|||
&& !(lib.hasInfix "error_page" locs."= /metrics".extraConfig)
|
||||
&& authz.proxyPass == "https://auth.t.local/api/authz/auth-request"
|
||||
&& lib.hasInfix "internal;" authz.extraConfig
|
||||
&& !(grafanaOldPath.services.nginx.virtualHosts ? "grafana-metrics")
|
||||
&& !(grafanaHere.services.nginx.virtualHosts ? "grafana-metrics")
|
||||
&& lib.hasPrefix "http://unix:" locs."/".proxyPass;
|
||||
}
|
||||
{
|
||||
|
|
@ -152,8 +152,7 @@ let
|
|||
# this host". Its vhost is on the public gateway, so a password box there
|
||||
# is a way in whatever the topology.
|
||||
name = "grafana disables its local login form even where authelia is not on this host";
|
||||
ok =
|
||||
grafanaOldPath.containers.swarm-grafana.config.services.grafana.settings.auth.disable_login_form;
|
||||
ok = grafanaHere.containers.swarm-grafana.config.services.grafana.settings.auth.disable_login_form;
|
||||
}
|
||||
{
|
||||
# The absence class this whole file is for, and the reported defect in one
|
||||
|
|
@ -445,7 +444,7 @@ let
|
|||
ok =
|
||||
let
|
||||
sources =
|
||||
grafanaOldPath.containers.swarm-grafana.config.services.grafana.provision.datasources.settings.datasources;
|
||||
grafanaHere.containers.swarm-grafana.config.services.grafana.provision.datasources.settings.datasources;
|
||||
logs = lib.head (lib.filter (d: d.uid == "swarm-victorialogs") sources);
|
||||
rules = logs.jsonData.logLevelRules or [ ];
|
||||
# `overwrite_text` makes the stored text the OpenTelemetry short name
|
||||
|
|
@ -473,7 +472,7 @@ let
|
|||
ok =
|
||||
let
|
||||
groups =
|
||||
grafanaOldPath.containers.swarm-grafana.config.services.grafana.provision.alerting.rules.settings.groups;
|
||||
grafanaHere.containers.swarm-grafana.config.services.grafana.provision.alerting.rules.settings.groups;
|
||||
rules = lib.concatMap (g: g.rules) groups;
|
||||
rule = lib.findFirst (r: r.uid == "hh-agent-turn-failed") null rules;
|
||||
expr = (lib.head rule.data).model.expr;
|
||||
|
|
@ -517,9 +516,8 @@ let
|
|||
name = "grafana's vhost is rendered with the gateway's listen set, TLS and security headers";
|
||||
ok =
|
||||
let
|
||||
gw = grafanaOldPath.services.hyperhive.gateway;
|
||||
v =
|
||||
grafanaOldPath.services.nginx.virtualHosts.${grafanaOldPath.services.hyperhive.swarm.grafana.domain};
|
||||
gw = grafanaHere.services.hyperhive.gateway;
|
||||
v = grafanaHere.services.nginx.virtualHosts.${grafanaHere.services.hyperhive.swarm.grafana.domain};
|
||||
# nginx's `listen` entries come back with defaults filled in
|
||||
# (`extraParameters`, `proxyProtocol`), so compare the fields set.
|
||||
listenOf = map (l: {
|
||||
|
|
|
|||
Loading…
Reference in a new issue