Commit graph

110 commits

Author SHA1 Message Date
h7x4 e3366549da
nixos/grafana: lib.filterAttrs -> lib.removeAttrs 2025-10-26 15:21:22 +09:00
Maximilian Bosch 5f44bfc59b
nixos/grafana: document how to enable drilldown when using custom plugins
IMHO, it's a bit surprising that drilldown doesn't show anything when
using `declarativePlugins` (and thus, the four apps are missing).

Add instructions on how to get these apps back.
2025-09-14 13:42:22 +02:00
Maximilian Bosch 409107d2f5
nixos/grafana: don't set X-XSS-Protection anymore
Part of #438800.

The OWASP recommentation[1] is:

> The X-XSS-Protection header has been deprecated by modern browsers
> and its use can introduce additional security issues on the client
> side. As such, it is recommended to set the header as X-XSS-Protection: 0
> in order to disable the XSS Auditor, and not allow it to take the default
> behavior of the browser handling the response. Please use
> Content-Security-Policy instead.

Hence, we turn this off, diverging from the upstream defaults here. An
upstream issue has been opened[2].

[1] https://owasp.org/www-project-secure-headers/#x-xss-protection
[2] https://github.com/grafana/grafana/issues/110369
2025-08-31 15:22:16 +02:00
Maximilian Bosch c7eb566c41
nixos/grafana: add prune option to provision.datasources
Closes #430532
2025-08-07 17:03:57 +02:00
diniamo 5bb944c6f5 nixos/grafana: add openFirewall option 2025-07-25 10:02:17 +02:00
Wolfgang Walther 5a0711127c
treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Wolfgang Walther 41c5662cbe
nixos/postgresql: move postStart into separate unit
This avoids restarting the postgresql server, when only ensureDatabases
or ensureUsers have been changed. It will also allow to properly wait
for recovery to finish later.

To wait for "postgresql is ready" in other services, we now provide a
postgresql.target.

Resolves #400018

Co-authored-by: Marcel <me@m4rc3l.de>
2025-06-24 15:26:47 +02:00
Maximilian Bosch 77a41a7dd8
grafana: 11.6.0+security-01 -> 12.0.0
Closes #404580

ChangeLog: https://github.com/grafana/grafana/releases/tag/v12.0.0

A few changes were necessary here:

* the provision seems to be delayed now, so the `machine.succeed` broke
  because the result was tested before the provisioning was finished.
  Using `wait_until_succeeds` to solve this.

* Work around a problem that got unnoticed during #399404:
  the setup-hook is also run in the `goModules` derivation, but
  `offlineCache` is missing. As a result, the build breaks. I guess this
  was unnoticed because everyone had a goModules with the previous hash
  in their store.

Co-authored-by: Emily <git@emilylange.de>
2025-05-08 07:29:39 +02:00
Silvan Mosberger 374e6bcc40 treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:

  nix-build ci -A fmt.check

This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).

This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).

Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).

If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
2025-04-01 20:10:43 +02:00
Sandro Jäckel d1f7424888
nixos/grafana: fix evaluation when no settings is defined
Before it would fail on line 11 where we check if postgres is used with
an error that the undefined option settings was accessed.
2024-11-08 01:08:11 +01:00
Maximilian Bosch 8511063014
grafana: 11.0.0 -> 11.1.0
ChangeLog: https://github.com/grafana/grafana/releases/tag/v11.1.0

A few additional changes were necessary:

* Grafana now refuses to listen on non-IP values and aborts with

    Error: ✗ *apiserver.service run error: invalid IP address: localhost

* packages/grafana-e2e doesn't exist anymore, so the build fixes for
  that could be removed.

* Make sure we always compile the binary parts of cypress.

* Grafana tends to set the minimum Go version to the latest Go version
  available now[1].

* The `url` of a datasource was set to `localhost` by default. I don't
  expect anybody to have not set it when needed, also Grafana aborts now
  if `url` is non-empty for a random walk datasource (which broke the VM
  tests).

[1] https://github.com/grafana/grafana/pull/88794#discussion_r1630563467
2024-06-29 19:09:05 +02:00
Maximilian Bosch 0118cc1d67
grafana: 10.4.2 -> 11.0.0
Announcement: https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v11-0/
ChangeLogs:
* https://github.com/grafana/grafana/releases/tag/v11.0.0
* https://github.com/grafana/grafana/blob/v11.0.0/CHANGELOG.md#1100-preview

Legacy notifiers were removed and could thus be removed from the module.
2024-05-14 19:03:25 +02:00
K900 784330e275 treewide: nuke remaining mdDoc leftovers
bors when
2024-04-15 20:12:24 +03:00
stuebinm 6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
Sandro Jäckel 8c972ce2c0
nixos/grafana: fix deprecation warning by using grafana server instead of grafana-server
Deprecation warning: The standalone 'grafana-server' program is deprecated and will be removed in the future. Please update all uses of 'grafana-server' to 'grafana server'
2023-12-06 23:40:30 +01:00
Sandro Jäckel cff247a127
nixos/grafana: create plugins directory in provisioning
The error message was:
msg="Failed to read plugin provisioning files from directory" path=/nix/store/gs2cy8n6ndsa1f7msf7ndl8f85xl1pzg-grafana-provisioning/plugins
 error="open /nix/store/gs2cy8n6ndsa1f7msf7ndl8f85xl1pzg-grafana-provisioning/plugins: no such file or directory"
2023-12-06 23:40:29 +01:00
h7x4 0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
Jonathan Davies 58cbf94b38 nixos/grafana: Set systemd unit to restart on failure 2023-11-15 23:20:59 +00:00
Anthony Roussel e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
Maximilian Bosch 698c640e77
nixos/grafana: remove hacky deprecation helper from dashbaords & datasources
The problem we had back then was that `mkRenamedOptionModule` doesn't
work if an option will be moved a level depper, i.e.

    services.grafana.provision.dashboards

became

    services.grafana.provision.dashboards.settings.provider

I actually planned to remove this before 23.05 (since the change was
already released in 22.11), but as you can see that didn't happen ;-)

I think the grace-period was quite long already. And if someone is
migrating from <22.11 to a current NixOS now, there are very precise
instructions on how to upgrade in the 22.11 release notes.
2023-09-14 22:12:53 +02:00
Sandro 0a5cb5c47e
nixos/grafana: disable updater by default (#240323) 2023-06-28 14:09:55 +02:00
Franz Pletz 48d0d69869
Merge pull request #239348 from Ma27/bump-grafana 2023-06-23 23:15:43 +02:00
Maximilian Bosch 6e6c2e6530
nixos/grafana: clarify that there's still a bit of time until notifiers are removed
See https://github.com/grafana/grafana/pull/66269
2023-06-23 13:45:56 +02:00
Joscha daa75a4093 nixos/grafana: Fix and adjust config options 2023-06-20 23:19:45 +02:00
Joscha 5e4ec14596 nixos/grafana: update and add settings
I went through all categories that were already present in the grafana
module and added most options from the official docs at
https://grafana.com/docs/grafana/v9.5/setup-grafana/configure-grafana/

I also modified the descriptions of some existing options to match the
official docs more closely.
2023-06-18 22:23:48 +02:00
Joscha 2f68d8cb10 nixos/grafana: reformat 2023-06-18 22:23:39 +02:00
Jacob Moody 39f220b6df
nixos/grafana: add jsonData datasource option (#234364) 2023-06-07 00:11:10 +02:00
KFears 51fdf00ecb nixos/grafana: fix assertions leaking into YAML
This commit deletes the assertions that were added in 4ec456b. Those
assertions weren't even working to begin with, and they also cause
assertions leak into the generated YAML.
2023-04-06 02:35:23 +04:00
Artturin cab4a24c34 treewide: fix lints
Arg to lib.optional is a list

build time tool in buildInputs
2023-03-11 00:55:17 +02:00
Ross Gardiner b199b821c2 nixos/grafana: fix spelling 2023-01-09 13:02:36 +01:00
Sandro Jäckel 7e0588b2fb
nixos/grafana: listen on localhost by default (again) 2022-12-29 03:00:14 +01:00
Maximilian Bosch f37f1de422
Merge pull request #204537 from squalus/grafana-role
nixos/grafana: add Admin to valid auto_assign_org_role values
2022-12-20 21:14:47 +01:00
D Anzorge 9be81d0acf nixos/grafana: allow @chown syscalls when using unix sockets
Grafana will unconditionally call chown on the socket after creating it,
even if the configuration does not ask for a different socket gid.
2022-12-13 02:47:50 +01:00
squalus ef90ce7093 nixos/grafana: add Admin to valid auto_assign_org_role values 2022-12-04 13:10:19 -08:00
Maximilian Bosch 98cadbcf70
nixos/grafana: review fixes 2022-11-20 19:54:44 +01:00
Maximilian Bosch 6ee5ae3e48
nixos/grafana: make warning more clear 2022-11-20 18:21:41 +01:00
Maximilian Bosch 9d7e9c5965
nixos/grafana: allow using both directories or single YAML files for non-Nix provisioning 2022-11-20 18:21:41 +01:00
Maximilian Bosch 2f1dfb0db3
nixos/grafana: fix w/o datasources or dashboard provisioning 2022-11-20 18:21:41 +01:00
Maximilian Bosch 4ec456b725
nixos/grafana: fix secret-related warnings
Closes #198646

* The options `password`/`basicAuthPassword` were removed for
  datasources in Grafana 9. The only option to declare them now is to use
  `secureJsonData`.
* Fix description for contactPoints provisioning: when using file/env
  providers, nothing will be leaked into the store.
* Fix regex in file-provider usage check: it's also possible to either
  use `$__env{FOO}` or `$FOO` to fetch secrets from the environment.
* Fix warning for datasources: `password`/`basicAuthPassword` was
  removed, also check for each setting in `secureJsonData` if
  env/file-provider was used (then no warning is needed!).
2022-11-20 18:21:40 +01:00
Maximilian Bosch 45e1ce7e3a
nixos/grafana: get rid of unnecessary flatten for warnings 2022-11-20 18:21:39 +01:00
Maximilian Bosch 25b5824696
nixos/grafana: mark services.grafana.extraOptions as removed 2022-11-20 18:21:38 +01:00
Maximilian Bosch 957e368f3d
nixos/grafana: provision.{datasources,dashboards} can't be a list anymore
The hack with `either` had the side-effect that the sub-options of the
submodule didn't appear in the manual. I decided to remove this because
the "migration" isn't that hard, you just need to fix some module
declarations.

However, `mkRenamedOptionModule` wouldn't work here because it'd create
a "virtual" option for the deprecated path (i.e.
`services.grafana.provision.{datasources,dashboards}`), but that's the
already a new option, i.e. the submodule for the new stuff.

To make sure that you still get errors, I implemented a small hack using
`coercedTo` which throws an error if a list is specified (as it would be
done on 22.05) which explains what to do instead to make the migration
easier.

Also, I linkified the options in the manual now to make it easier to
navigate between those.
2022-11-20 18:21:35 +01:00
Sandro Jäckel 95a7b35b1c
nixos/grafana: add default value back to settings.server.socket 2022-10-27 00:53:46 +02:00
KFears f2e74bdf57 nixos/grafana: fix secrets-related warnings 2022-10-26 21:03:57 +04:00
KFears f3cb29a5b8 nixos/grafana: fix issues with rfc42 refactoring 2022-10-24 19:31:50 +04:00
KFears 9f963f36e5 nixos/grafana: refactor settings for RFC42 2022-10-22 23:56:14 +04:00
KFears c7cd659710 nixos/grafana: fix markdown docs 2022-10-22 23:54:32 +04:00
KFears 7908ef062f nixos/grafana: add alerting 2022-10-22 23:54:32 +04:00
KFears 34c2ea6750 nixos/grafana: deprecate notifiers 2022-10-22 23:54:31 +04:00
KFears 0852dc859e nixos/grafana: refactor datasources for RFC42
This commit refactors `services.grafana.provision.datasources` towards
the RFC42 style. To preserve backwards compatibility, we have to jump
through a ton of hoops, introducing esoteric type signatures and bizarre
structs. The Grafana module definition should hopefully become a lot
cleaner after a release cycle or two once the old configuration style is
completely deprecated.
2022-10-22 23:53:24 +04:00