mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-03-22 17:49:07 +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
|
||||
cfg = config.custom.web-services.glance;
|
||||
|
||||
observabilityTitles = [
|
||||
"Alloy"
|
||||
"Prometheus"
|
||||
"Alertmanager"
|
||||
];
|
||||
perHostDomains =
|
||||
perHostSitesWidget.widgets |> lib.concatMap (widget: widget.sites) |> lib.map (site: site.domain);
|
||||
|
||||
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 =
|
||||
hosts
|
||||
allHosts
|
||||
|> 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 (
|
||||
service:
|
||||
service.domain |> self.lib.isPrivateDomain |> (isPrivate: if isPrivate then "Private" else "Public")
|
||||
|
|
@ -38,24 +53,6 @@ let
|
|||
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 =
|
||||
"${self}/.github/workflows"
|
||||
|> builtins.readDir
|
||||
|
|
@ -129,7 +126,7 @@ in
|
|||
autofocus = false;
|
||||
}
|
||||
applicationSitesWidget
|
||||
observabilitySitesWidget
|
||||
perHostSitesWidget
|
||||
];
|
||||
}
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue