mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-03-22 13:09:08 +01:00
glance: Refactor site widgets
This commit is contained in:
parent
5f8b5c04b3
commit
c25c4341b3
1 changed files with 24 additions and 27 deletions
|
|
@ -8,18 +8,33 @@
|
||||||
let
|
let
|
||||||
cfg = config.custom.web-services.glance;
|
cfg = config.custom.web-services.glance;
|
||||||
|
|
||||||
observabilityTitles = [
|
perHostDomains =
|
||||||
"Alloy"
|
perHostSitesWidget.widgets |> lib.concatMap (widget: widget.sites) |> lib.map (site: site.domain);
|
||||||
"Prometheus"
|
|
||||||
"Alertmanager"
|
|
||||||
];
|
|
||||||
|
|
||||||
hosts = allHosts |> lib.attrValues;
|
perHostSitesWidget =
|
||||||
|
allHosts
|
||||||
|
|> lib.attrValues
|
||||||
|
|> lib.map (host: {
|
||||||
|
type = "monitor";
|
||||||
|
cache = "1m";
|
||||||
|
title = host.config.networking.hostName;
|
||||||
|
sites =
|
||||||
|
host.config.custom.meta.sites
|
||||||
|
|> lib.attrValues
|
||||||
|
|> lib.filter (site: site.domain |> lib.hasSuffix host.config.custom.networking.overlay.fqdn);
|
||||||
|
})
|
||||||
|
|> lib.filter ({ sites, ... }: sites != [ ])
|
||||||
|
|> (widgets: {
|
||||||
|
type = "split-column";
|
||||||
|
max-columns = widgets |> lib.length;
|
||||||
|
inherit widgets;
|
||||||
|
});
|
||||||
|
|
||||||
applicationSitesWidget =
|
applicationSitesWidget =
|
||||||
hosts
|
allHosts
|
||||||
|
|> lib.attrValues
|
||||||
|> lib.concatMap (host: host.config.custom.meta.sites |> lib.attrValues)
|
|> lib.concatMap (host: host.config.custom.meta.sites |> lib.attrValues)
|
||||||
|> lib.filter (service: !lib.elem service.title observabilityTitles)
|
|> lib.filter (service: !lib.elem service.domain perHostDomains)
|
||||||
|> lib.groupBy (
|
|> lib.groupBy (
|
||||||
service:
|
service:
|
||||||
service.domain |> self.lib.isPrivateDomain |> (isPrivate: if isPrivate then "Private" else "Public")
|
service.domain |> self.lib.isPrivateDomain |> (isPrivate: if isPrivate then "Private" else "Public")
|
||||||
|
|
@ -38,24 +53,6 @@ let
|
||||||
inherit widgets;
|
inherit widgets;
|
||||||
});
|
});
|
||||||
|
|
||||||
observabilitySitesWidget =
|
|
||||||
hosts
|
|
||||||
|> lib.map (host: {
|
|
||||||
type = "monitor";
|
|
||||||
cache = "1m";
|
|
||||||
title = host.config.networking.hostName;
|
|
||||||
sites =
|
|
||||||
host.config.custom.meta.sites
|
|
||||||
|> lib.attrValues
|
|
||||||
|> lib.filter (service: lib.elem service.title observabilityTitles);
|
|
||||||
})
|
|
||||||
|> lib.filter ({ sites, ... }: sites != [ ])
|
|
||||||
|> (widgets: {
|
|
||||||
type = "split-column";
|
|
||||||
max-columns = widgets |> lib.length;
|
|
||||||
inherit widgets;
|
|
||||||
});
|
|
||||||
|
|
||||||
githubWorkflowFiles =
|
githubWorkflowFiles =
|
||||||
"${self}/.github/workflows"
|
"${self}/.github/workflows"
|
||||||
|> builtins.readDir
|
|> builtins.readDir
|
||||||
|
|
@ -129,7 +126,7 @@ in
|
||||||
autofocus = false;
|
autofocus = false;
|
||||||
}
|
}
|
||||||
applicationSitesWidget
|
applicationSitesWidget
|
||||||
observabilitySitesWidget
|
perHostSitesWidget
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue