Commit Graph

739 Commits

Author SHA1 Message Date
Maximilian Bosch
c055f6bc0a
nixos/mysql: fix evaluation of percona test
Commit e14483d6a6 fixed a bug in the `ini`
type with `listsAsDuplicatedKeys = true;`: multiple list declarations
weren't merged, but latter declarations shadowed the former without any
error.

The fix brought another issue to surface however: before, the
`plugin-load-add` declaration in the MySQL test shadowed the
`auth_socket.so` setting in the module. But now the attempt
to merge a list and a single declaration breaks because of
`types.either` seeing a mix of declarations from the left
AND right type.

Turning the `plugin-load-add` in the module into a list triggers the
correct merging behavior and thus fixes the evaluation error (and
merging behavior of `plugin-load-add`)!

This wasn't an issue for mysql itself (empty `plugin-load-add` in the
test) and neither for mariadb (the `auth_socket.so` isn't added for
this).
2024-11-29 21:55:49 +01:00
Maximilian Bosch
4220a62d70
Merge: nixos/victoriametrics: check config, more tests & update desc (#353950) 2024-11-24 14:18:29 +01:00
Maximilian Bosch
0c8d661707
Merge: nixos/pgbouncer: rework RFC42 integration (#356965) 2024-11-23 09:20:09 +01:00
Ryan Yin
ad06fc936d nixos/victoriametrics: check config, more tests, update desc 2024-11-23 01:19:11 +08:00
Maximilian Bosch
2995b3825e
nixos/pgbouncer: rework RFC42 integration
Commit bfb9d1825d added RFC42 support
which is a good thing in general, but this implementation has the
following flaws:

* `services.pgbouncer.logFile` was not renamed to `[...].log_file`, but
  to `[...].logfile`. Also the use of `mkRenamedOptionModule` is
  inappropriate here because the two options are not equivalent: the old
  option took a path relative to the home directory, the new an absolute
  path.

* Using `mkRenamedOptionModule` with options that don't exist (but are
  keys in a freeform attr-set or an `attrsOf X`), you get the following
  error when referencing an option you didn't declare:

    error: evaluation aborted with the following error message: 'Renaming error: option `services.pgbouncer.settings.pgbouncer.listen_port' does not exist.'

  This error is pretty bad because it's not actionable for an end-user of
  the module. A possible use-case is doing

    networking.firewall.allowedTCPPorts = [ config.services.pgbouncer.listenPort ];

  without specifying a custom listen port. This is an example of why you
  want to keep options, they already contain defaults and you can re-use
  those defaults in other parts of your system configuration.

  I decided to re-add a bunch of options where I figured that it's
  either useful to be able to address those in the NixOS configuration
  or having documentation directly in the options' reference in the
  NixOS manual.

  I didn't add all options, I'll leave that to the maintainers of
  pgbouncer.
2024-11-22 17:01:36 +01:00
Sandro
3156de49ba
nixos/postgresql: update docs with extraPlugins to extensions rename 2024-11-22 15:48:08 +01:00
Ian Kerins
307090125f
nixos/postgresql: fix warning typo 2024-11-16 20:59:04 -05:00
Maximilian Bosch
97a911e8fb
Merge: nixos/postgresql: extension based hardening relaxation (#355010) 2024-11-16 22:29:36 +01:00
Martin Weinelt
d370af0785
nixos/postgresql: create infrastructure for relaxing systemd hardening
By matching on the package names of the plugins passed into the package
we can relax the systemd unit hardening as needed.
2024-11-16 17:29:34 +01:00
Martin Weinelt
223a6c6ed0
nixos/postgresql: rename extraPlugins to extensions
This is the upstream lingo, and it makes everything slightly less
confusing.
2024-11-16 14:46:16 +01:00
Maximilian Bosch
0b3eef7441
postgresql_12: remove
This will be EOL at the end of November, so there's little reason to
keep it in 24.11[1]. As discussed, we'd like to keep it for as long as
possible to make sure there's a state in nixpkgs that has the latest
minor of postgresql_12 available with the most recent CVEs fixed for
people who cannot upgrade[2].

This aspect has been made explicit in the manual now for the next .11
release.

During the discussions it has been brought up that if people just do
`services.postgresql.enable = true;` and let the code decide the
postgresql version based on `system.stateVersion`, there's a chance that
such EOL dates will be missed. To make this harder, a warning will now
be raised when using the stateVersion-condition and the oldest still
available major is selected.

Additionally regrouped the postgresql things in the release notes to
make sure these are all shown consecutively. Otherwise it's a little
hard to keep track of all the changes made to postgresql in 24.11.

[1] https://endoflife.date/postgresql
[2] https://github.com/NixOS/nixpkgs/pull/353158#issuecomment-2453056692
2024-11-15 09:17:06 +01:00
Aleksana
dbed5a6265
nixos/mysql: fix permission error during first startup (#331296) 2024-11-11 18:49:32 +08:00
Yorick
12eedc8e88
nixos/victoriametrics: harden systemd unit, add more options. (#350737) 2024-11-05 13:36:19 +01:00
Maximilian Bosch
500d745e73
Merge: nixos/postgresql: set up sandboxing (#344925) 2024-11-02 11:12:15 +01:00
Maximilian Bosch
70a6092f1e
nixos/doc: mention postgresql hardening 2024-11-01 16:31:35 +01:00
Collin Diekvoss
1b82e17fca
Update surrealdb options for v2 2024-10-31 13:12:53 -05:00
Ryan Yin
89b4cb7299 nixos/victoriametrics: harden systemd unit, add more options. 2024-10-31 23:47:02 +08:00
Atemu
644c36174b
nixos/redis: add option services.redis.servers.*.group (#345327) 2024-10-17 10:39:48 +02:00
Felix Bühler
cc42a1be7b
nixos/services.mysql: remove with lib; (#338048) 2024-10-16 21:38:48 +02:00
Maximilian Bosch
0f1e2a1cd8
nixos/postgresql: MemoryDenyWriteExecute must be off when doing JIT
The test breaks like this otherwise:

    machine # WARNING:  error during JITing: Permission denied
    machine # [   14.012280] postgres[913]: [913] WARNING:  error during JITing: Permission denied
    machine # ERROR:  failed to look up symbol "evalexpr_0_1": Failed to materialize symbols: { (main, { evalexpr_0_1, evalexpr_0_0 }) }
2024-10-14 23:57:39 +02:00
Brendan Taylor
cb31bd4755 nixos/redis: add option services.redis.servers.*.group
previously if you set the "user" option and did not create a group
account with the same name the module would create a service that would
fail to start.

with this change:
- the module is more explicit about this behaviour
- you can configure the group directly, so that you're not forced to a
  particular user/group structure
- you can read the group name used by the redis service. this is useful
  for giving other services permission to use the redis socket.
2024-10-04 21:12:38 -06:00
Maximilian Bosch
f800d8e42b
nixos/postgresql: enable private /tmp & private mounts; fix wal-receiver test
The issue was that the old test-case used `/tmp` to share data. Using
`JoinsNamespaceOf=` wasn't a real workaround since the private `/tmp` is
recreated when a service gets stopped/started which is the case here, so
the wals were still lost.

To keep the test building with `PrivateTmp=yes`, create a dedicated
directory in `/var/cache` with tmpfiles and allow the hardened
`postgresql.service` to access it via `ReadWritePaths`.
2024-10-01 10:31:20 +02:00
Martin Weinelt
2ebffcc4c7
nixos/postgresql: set up sandboxing
Reduces the general exposure of the postgresql.service through systemd
hardening options.
2024-10-01 10:31:20 +02:00
Maximilian Bosch
11d1f8776c
nixos/postgresql: escape initdbArgs
It doesn't look correct that this isn't the case already.
2024-09-29 21:03:52 +02:00
Maximilian Bosch
0e78dc369c
Merge: doc: use initdbArgs in example postgresql upgrade script (#302823) 2024-09-29 20:39:05 +02:00
oddlama
d229011025 nixos/influxdb2: fix service startup reliablility 2024-09-27 08:14:27 +02:00
Bjørn Forsman
732d36522f nixos/influxdb2: wait until service is ready
Factor out part of the provisioning script into a
wait-until-service-is-ready script, and put it unconditionally in
front of ExecStartPost=, so that services that depend on influxdb2 are
not started until influxdb2 responds to requests.

Fixes https://github.com/NixOS/nixpkgs/issues/317017 ("Scrutiny tries to start before influxdb has started")
2024-09-26 06:54:54 +02:00
Daniel Sidhion
15ddcc64cd
nixos/tigerbeetle: add docs on upgrading, add more systemd hardening (#332899) 2024-09-24 23:56:38 -07:00
Sandro
76d7694a3f
nixos/neo4j: always set http values, even when disabled (#341586) 2024-09-15 12:42:20 +02:00
Felix Buehler
7d32787294 nixos/services.etcd: remove with lib; 2024-09-15 10:43:48 +02:00
eyjhb
7c545e26a3 nixos/neo4j: always set http values, even when disabled 2024-09-13 15:22:34 +02:00
github-actions[bot]
d834278999
Merge master into staging-next 2024-09-02 00:13:57 +00:00
Felix Bühler
06aee405da
nixos/services.neo4j: remove with lib; (#338049) 2024-09-01 20:52:52 +02:00
github-actions[bot]
a2cea72749
Merge staging-next into staging 2024-08-30 00:13:56 +00:00
Philip Taron
117f3ceb51
treewide/nixos: remove with lib; part 1 (#335603) 2024-08-29 15:42:04 -07:00
Felix Buehler
24f82fc6b5 nixos/services.surrealdb: remove with lib; 2024-08-30 00:30:41 +02:00
Felix Buehler
edcd08a8ff nixos/services.rethinkdb: remove with lib; 2024-08-30 00:30:41 +02:00
Felix Buehler
18c0ca5714 nixos/services.pgmanage: remove with lib; 2024-08-30 00:30:41 +02:00
Felix Buehler
6bbc3df0dd nixos/services.opentsdb: remove with lib; 2024-08-30 00:30:40 +02:00
Felix Buehler
93fb328e44 nixos/services.openldap: remove with lib; 2024-08-30 00:30:40 +02:00
Felix Buehler
0dbb2e5fa1 nixos/services.influxdb: remove with lib; 2024-08-30 00:30:40 +02:00
Felix Buehler
3db1445493 nixos/services.hbase-standalone: remove with lib; 2024-08-30 00:30:40 +02:00
Felix Buehler
567aa06ba2 nixos/services.firebird: remove with lib; 2024-08-30 00:30:40 +02:00
Felix Buehler
17003eacc9 nixos/services.ferretdb: remove with lib; 2024-08-30 00:30:39 +02:00
Felix Buehler
f06f3a7973 nixos/services.dragonflydb: remove with lib; 2024-08-30 00:30:39 +02:00
Felix Buehler
626c4c1a21 nixos/services.dgraph: remove with lib; 2024-08-30 00:30:39 +02:00
Felix Buehler
75d565a3b0 nixos/services.couchdb: remove with lib; 2024-08-30 00:30:39 +02:00
Felix Buehler
be15d06e48 nixos/services.neo4j: remove with lib; 2024-08-29 00:21:21 +02:00
Felix Buehler
8e91c6b7b3 nixos/services.mysql: remove with lib; 2024-08-29 00:20:49 +02:00
Felix Buehler
fbd927db77 nixos/services.foundationdb: remove with lib; 2024-08-29 00:20:04 +02:00