hosts/plover: update Grafana and PostgreSQL integration

This commit is contained in:
Gabriel Arazas 2023-10-14 11:01:57 +08:00
parent 7430d992f2
commit 9527896251
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC

View File

@ -2,6 +2,9 @@
let
monitoringDomain = "monitoring.${config.networking.domain}";
grafanaDatabaseUser = config.services.grafana.settings.database.user;
grafanaDatabaseName = config.services.grafana.settings.database.name;
authDomain = "auth.${config.networking.domain}";
authSubpath = path: "${authDomain}/${path}";
@ -129,16 +132,26 @@ in
systemd.services.grafana = {
preStart =
let
grafanaDatabaseUser = config.services.grafana.settings.database.user;
psql = lib.getExe' config.services.postgresql.package "psql";
in
lib.mkBefore ''
# Setting up the appropriate schema for PostgreSQL secure schema usage.
${psql} -tAc "SELECT 1 FROM information_schema.schemata WHERE schema_name='${grafanaDatabaseUser}';" \
grep -q 1 || ${psql} -tAc "CREATE SCHEMA IF NOT EXISTS AUTHORIZATION ${grafanaDatabaseUser};"
${psql} -tAc "CREATE SCHEMA IF NOT EXISTS AUTHORIZATION ${grafanaDatabaseUser};"
'';
};
# Setting up PostgreSQL with secure schema.
services.postgresql = {
ensureDatabases = [ grafanaDatabaseName ];
ensureUsers = [{
name = grafanaDatabaseName;
ensurePermissions = {
"DATABASE ${grafanaDatabaseName}" = "ALL PRIVILEGES";
"SCHEMA ${grafanaDatabaseUser}" = "ALL PRIVILEGES";
};
}];
};
sops.secrets =
let
grafanaFileAttributes = {