Home Explore Blog CI



nixpkgs

9th chunk of `nixos/doc/manual/release-notes/rl-2211.section.md`
c5e8d365e957802fc376829a16844089ebe88e134b77feec0000000100000fa2
- The `bloat` package has been updated from unstable-2022-03-31 to unstable-2022-10-25, which brings a breaking change. See [this upstream commit message](https://git.freesoftwareextremist.com/bloat/commit/?id=887ed241d64ba5db3fd3d87194fb5595e5ad7d73) for details.

- Synapse's systemd unit has been hardened.

- The module `services.grafana` was refactored to be compliant with [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md). To be precise, this means that the following things have changed:
  - The newly introduced option [](#opt-services.grafana.settings) is an attribute-set that
    will be converted into Grafana's INI format. This means that the configuration from
    [Grafana's configuration reference](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/)
    can be directly written as attribute-set in Nix within this option.
  - The option `services.grafana.extraOptions` has been removed. This option was an association
    of environment variables for Grafana. If you had an expression like

    ```nix
    {
      services.grafana.extraOptions.SECURITY_ADMIN_USER = "foobar";
    }
    ```

    your Grafana instance was running with `GF_SECURITY_ADMIN_USER=foobar` in its environment.

    For the migration, it is recommended to turn it into the INI format, i.e.
    to declare

    ```nix
    {
      services.grafana.settings.security.admin_user = "foobar";
    }
    ```

    instead.

    The keys in `services.grafana.extraOptions` have the format `<INI section name>_<Key Name>`.
    Further details are outlined in the [configuration reference](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#override-configuration-with-environment-variables).

    Alternatively you can also set all your values from `extraOptions` to
    `systemd.services.grafana.environment`, make sure you don't forget to add
    the `GF_` prefix though!
  - Previously, the options [services.grafana.provision.datasources](#opt-services.grafana.provision.datasources) and
    [services.grafana.provision.dashboards](#opt-services.grafana.provision.dashboards) expected lists of datasources
    or dashboards for the [declarative provisioning](https://grafana.com/docs/grafana/latest/administration/provisioning/).

    To declare lists of
    - **datasources**, please rename your declarations to [services.grafana.provision.datasources.settings.datasources](#opt-services.grafana.provision.datasources.settings.datasources).
    - **dashboards**, please rename your declarations to [services.grafana.provision.dashboards.settings.providers](#opt-services.grafana.provision.dashboards.settings.providers).

    This change was made to support more features for that:

    - It's possible to declare the `apiVersion` of your dashboards and datasources
      by [services.grafana.provision.datasources.settings.apiVersion](#opt-services.grafana.provision.datasources.settings.apiVersion) (or
      [services.grafana.provision.dashboards.settings.apiVersion](#opt-services.grafana.provision.dashboards.settings.apiVersion)).

    - Instead of declaring datasources and dashboards in pure Nix, it's also possible
      to specify configuration files (or directories) with YAML instead using
      [services.grafana.provision.datasources.path](#opt-services.grafana.provision.datasources.path) (or
      [services.grafana.provision.dashboards.path](#opt-services.grafana.provision.dashboards.path). This is useful when having
      provisioning files from non-NixOS Grafana instances that you also want to
      deploy to NixOS.

      __Note:__ secrets from these files will be leaked into the store unless you use a
      [**file**-provider or env-var](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider) for secrets!

    - `services.grafana.provision.notifiers` is not affected by this change because
      this feature is deprecated by Grafana and will probably be removed in Grafana 10.

Title: NixOS 22.11: Grafana Refactoring and bloat Update
Summary
NixOS 22.11 updates include: a breaking change in the `bloat` package, hardening of Synapse's systemd unit, and a refactoring of the `services.grafana` module to comply with RFC 0042. The Grafana update involves changes to configuration options, including the introduction of `services.grafana.settings` for INI-format configuration, removal of `services.grafana.extraOptions` (with migration instructions), and changes to declarative provisioning of datasources and dashboards.