Commit graph

51 commits

Author SHA1 Message Date
figsoda d65639ce40 nixos/redis: simplify 2022-11-30 17:38:52 -05:00
ajs124 195aa53509 nixos/redis: fix requirepass 2022-11-21 18:00:12 +01:00
ajs124 bc4e9a890c nixos/redis: store config in state directory
this is needed because certain redis features, like sentinel, require
the config file to be persistent
2022-11-09 21:49:33 +01:00
ajs124 168ad716e0 nixos/redis: add extraParams 2022-11-09 16:43:04 +01:00
pennae ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae 2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
Kevin Cox 568d2e77f4
nixos.redis: Fix disabling of RDB persistence.
I was under the impression that setting `services.redis.servers.<name>.save = []` would disable RDB persistence as no schedule would mean no persistence. However since the code did not handle this case specially it actually results in no `save` setting being written and the internal Redis default is used.

This patch handles the empty case to disable RDB persistence.

Disabling RDB persistence is useful in a number of scenarios:

1. Using Redis in a pure-cache mode where persistence is not desired.
2. When using the (generally superior) AOF persistence mode this file is never read so there is little point to writing it.
3. When saving is handled manually

For more information see https://redis.io/docs/manual/persistence/

This is a breaking change as the user may have been relying on `[]` using Redis defaults. However I believe that updating the behaviour for the next release is beneficial as IMHO it is less surprising and does what the user would expect. I have added release notes to warn about this change.
2022-07-05 07:37:38 -04:00
Naïm Favier 6e4f5f9aee
nixos/redis: bind on localhost by default 2022-02-28 13:37:47 +01:00
Julien Moutinho 32368f32d1 nixos/redis: fix port option 2022-01-21 23:02:20 +01:00
Julien Moutinho 7475554372 nixos/redis: enable multiple instances of redis-server 2021-12-13 14:42:19 -05:00
Naïm Favier 2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Guillaume Girol bc3bca822a nixos: define the primary group of users where needed 2021-09-12 14:59:30 +02:00
Victor Nawothnig 6b317b7404 nixos/redis: Use toString for interpolating slaveOf.port 2021-08-02 16:41:37 +02:00
Daniel Nagy 0cde374a76
nixos/redis: set port type to types.port 2021-05-30 14:38:19 +02:00
Izorkin feebe402f5
treewide: remove duplicates SystemCallFilters 2021-05-13 15:44:56 +03:00
Izorkin e075aeb8c0
nixos/redis: add option maxclients 2021-04-12 12:37:49 +03:00
Izorkin 061c913c36
nixos/redis: enable sandbox mode 2021-04-12 12:37:49 +03:00
Izorkin 9d4aaf2366
nixos/redis: allow access to runtime and state directories to only redis user 2021-04-03 19:07:27 +03:00
Izorkin 86d8b31e00
nixos/redis: add option unixSocketPerm 2021-04-03 19:07:27 +03:00
Milan 4171cd53d6
redis: make masterAuth option optional (#109417) 2021-01-15 03:21:27 +01:00
Kevin Cox 5666f34b28
Merge pull request #91813 from Mic92/types1
nixos/*: Add types to the database module options
2021-01-14 17:04:54 -05:00
Aaron Andersen 1a828f66dc nixos/redis: replace extraConfig option with settings option 2021-01-04 20:08:38 -05:00
Niklas Hambüchen 169ab0b89f redis service: Listen on localhost by default. Fixes #100192.
All other database servers in NixOS also use this safe-by-default setting.
2020-11-08 01:15:33 +01:00
Janne Heß 9786adf23b
nixos/redis: Type all options
redis: switch back to mkOption
2020-06-30 09:36:40 +01:00
Jörg Thalheim 10acf9ae00
nixos/redis: add redis group 2020-06-10 08:58:34 +01:00
Jamie McClymont 8cdc8687bf redis: handle changes to systemd support
The 6.0 changelog notes that systemd support was rewritten. The effects
of that seem to be twofold:

* Redis will silently fail to sd_notify if not built with libsystemd,
  breaking our unit configuration.
* It also appears to misbehave if told to daemonize when running under
  systemd -- note that upstream's sample unit configuration does not
  daemonize:
  https://github.com/antirez/redis/blob/unstable/utils/systemd-redis_server.service
2020-05-17 20:23:48 +12:00
Jörg Thalheim 9cfe5a7a54
nixos/redis: add requirePassFile option
Avoids having the password in the nix store.
2020-02-13 17:06:35 +00:00
Silvan Mosberger 4ee3e8b21d
nixos/treewide: Move rename.nix imports to their respective modules
A centralized list for these renames is not good because:
- It breaks disabledModules for modules that have a rename defined
- Adding/removing renames for a module means having to find them in the
central file
- Merge conflicts due to multiple people editing the central file
2019-12-10 02:51:19 +01:00
Florian Klink 6303131eb9 nixos/redis: fix merging
https://github.com/NixOS/nixpkgs/pull/71584 did merging without mkMerge.

cc @jtojnar
2019-11-08 15:38:06 +01:00
Silvan Mosberger dd0a47e7ae
treewide: Switch to system users (#71055)
treewide: Switch to system users
2019-11-01 13:26:43 +01:00
Malte Brandy fe143bac5b nixos/redis: Disable hugepages for redis via sysctl and not via a systemd-oneshot 2019-10-21 22:38:16 +02:00
Janne Heß d6c08776ba treewide: Switch to system users 2019-10-12 22:25:28 +02:00
Florian Klink ff2fd6c4e5 nixos/redis: unbreak module
The redis module currently fails to start up, most likely due to running
a chown as non-root in preStart.

While at it, I hardcoded it to use systemd's StateDirectory and
DynamicUser to manage directory permissions, removed the unused
appendOnlyFilename option, and the pidFile option.

We properly tell redis now it's daemonized, and it'll use notify support
to signal readiness.
2019-09-01 14:08:42 +02:00
Peter Simons fa49f7ce6b nixos/redis: drop unnecessary dependencies from systemd unit 2019-09-01 09:04:11 +02:00
Peter Simons afd448a9fa nixos/redis: disable transparent huge pages (TLP) before starting Redis 2019-08-30 18:10:06 +02:00
Peter Simons 28dee92fff nixos/redis: move 'redis_init.service' into the preStart hook of 'redis.service' 2019-08-30 15:39:50 +02:00
Bob van der Linden af0380997f nixos/redis: /var/run -> /run 2019-03-20 00:02:43 +01:00
Florian Klink fff5923686 nixos/modules: users.(extraUsers|extraGroup->users|group) 2018-06-30 03:02:58 +02:00
Jörg Thalheim 453e15ec91 nixos/redis: remove static uid/gid assignment
all files are chowned on startup
2018-01-03 11:18:04 +01:00
Bjørn Forsman 26f65ae860 nixos/redis: enforce owner/perms on /var/lib/redis (#18046)
Previously it was only set once, now it is enforced on each start-up of
redis.service. Also set _ownership_ recursively, so that the
/var/lib/redis/dump.rdb file is guaranteed to be accessible by the
currently configured redis user.

Fixes issue #9687, where redis wouldn't start because /var/lib/redis had
wrong owner.
2016-08-28 08:05:14 +00:00
Ben Smith 3a1beb6347
redis service: add firewall and VM overcommit options
- Add vm.over_commit setting for background saving
- Add openFirewall setting

Closes #10193
2016-05-21 18:17:36 +02:00
Thomas Strobel a04a7272aa Add missing 'type', 'defaultText' and 'literalExample' in module definitions
- add missing types in module definitions
- add missing 'defaultText' in module definitions
- wrap example with 'literalExample' where necessary in module definitions
2016-01-17 19:41:23 +01:00
Bjørn Forsman d5017499a2 nixos/redis: capitalize service description 2015-02-22 16:54:14 +01:00
Bjørn Forsman a4cf5e903b nixos/redis: fix evaluation
Commit 89fee1006c ("nixos/redis: clean up
option types") broke nixos evaluation:

  error: attempt to call something which is not a function but a set, at .../nixpkgs/nixos/modules/services/databases/redis.nix:111:28

Fix it.

Reported by Oliver Charles (thanks!).
2014-07-15 17:05:54 +02:00
Bjørn Forsman 89fee1006c nixos/redis: clean up option types
Some options lack a type and some use the deprecated "string" type. Fix
it.
2014-07-15 15:45:52 +02:00
Bjørn Forsman 4def9a762f nixos: add some missing '.' in option descriptions 2014-06-24 21:25:11 +02:00
Eelco Dolstra 29027fd1e1 Rewrite ‘with pkgs.lib’ -> ‘with lib’
Using pkgs.lib on the spine of module evaluation is problematic
because the pkgs argument depends on the result of module
evaluation. To prevent an infinite recursion, pkgs and some of the
modules are evaluated twice, which is inefficient. Using ‘with lib’
prevents this problem.
2014-04-14 16:26:48 +02:00
Domen Kožar 97a0dd9eb9 nixos: set all package options to have type package 2014-02-27 13:22:29 +01:00
Jaka Hudoklin d28a9619a1 nixos/redis: log to syslog by default 2013-10-28 18:18:24 +01:00
Jaka Hudoklin b20c08d2cb nixos/redis: user set uid, make it compatible #1076 2013-10-28 18:18:13 +01:00