Commit Graph

824 Commits

Author SHA1 Message Date
Philip Taron
8279ffe622 treewide: specify that mebibytes are used when it's ambiguous (#424169) 2025-07-11 12:29:33 -07:00
Axel Karjalainen
7159ab6f43 treewide: specify where mebibytes are used when it's ambiguous 2025-07-11 00:44:23 +03:00
Martin Weinelt
91e217aad1 nixos/mysql: replace nettools with hostname-debian
If it just needs the hostname utility this is the better maintained
choice.
2025-07-06 00:59:37 +02:00
Kamil Monicz
f9339c853e nixos/postgresql: document beta versioning 2025-07-05 15:36:17 +02:00
Kamil Monicz
82248a6f7a nixos/postgresql: warn about unstable status 2025-07-05 15:36:14 +02:00
Kamil Monicz
abc5cff372 nixos/postgresql: deduplicate postgresql and use cfg.finalPackage 2025-07-05 11:52:42 +02:00
Maximilian Bosch
e031c5ff6b nixos/postgresql: add section about pg_config
See https://discourse.nixos.org/t/i-cannot-for-the-life-of-me-find-the-package-that-has-pg-config/66244/4

I decided against doing this in its own nixpkgs manual: the line
to draw is quite blurry already (e.g. we have documented our package
removal policy in here as well) and having to check two manuals for a
single subsystem feels pretty annoying to me.

The relevant part - where to find pg_config - is written at the top. I
decided to give a bit more context about the way our packaging works
since I realized a few times now that I don't remember all the details
about the problems we had in the past and having to look up individual
commit messages for that isn't very productive.
2025-07-03 19:33:01 +02:00
Wolfgang Walther
9656e1aa9d nixos/postgresql: make postgresql.target wait until recovery is done
The new postgresql.target will now wait until recovery is done and
read/write connections are possible.

This allows ensure* scripts and downstream migrations to work properly
after recovery from backup.

Resolves #346886
2025-06-24 15:26:48 +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
Wolfgang Walther
c119848700 nixos/postgresql: align maintainers with postgresql package 2025-06-24 15:24:21 +02:00
Marie Ramlow
b9a699fe22 nixos/victorialogs: use pkgs.victorialogs by default 2025-06-21 21:00:30 +02:00
Aleksana
9bc7d52aff nixos/mongodb: fix initialScript when no initialRootPasswordFile is set (#411901) 2025-06-20 20:08:24 +08:00
Maximilian Bosch
950a089393 nixos/postgresql: make postgresql_17 the new default
That's overdue actually, given that it was released last fall.
2025-06-17 12:33:21 +02:00
Maximilian Bosch
2a6405fb15 nixos/postgresql: doc review
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
2025-06-15 10:33:11 +02:00
Maximilian Bosch
e6cc23ba3f nixos/postgresql: fix docs on default package
Closes #416595
2025-06-14 23:25:43 +02:00
ActuallyRuben
3400dbdfcd nixos/mongodb: fix initialScript when no initialRootPasswordFile is set 2025-05-28 22:50:27 +02:00
Marc Fontaine
b134f3148f nixos/postgrest: fix typo in name of configuration options (#411197)
The config-file key is 'server-unix-socket-mode', not 'service-unix-socket-mode'.
2025-05-26 19:21:10 +00:00
Wolfgang Walther
3d29b7d3a2 nixos/postgresql: improve local peer authentication with default map
This allows to easily map allowed database roles to system users.
2025-05-11 10:24:21 +02:00
Wolfgang Walther
7d0363742c nixos/postgresql: remove recoveryConfig option
Since v12, PostgreSQL doesn't support recovery.conf anymore and fails to
start up when this option is set:

  FATAL:  using recovery command file "recovery.conf" is not supported

This is documented at:

https://www.postgresql.org/docs/current/recovery-config.html
2025-05-08 12:16:25 +02:00
Wolfgang Walther
0f9a499fbc nixos/postgrest: make unix-socket accessible for other services 2025-05-06 11:14:59 +02:00
Thomas Gerbet
ae11d4be17 cassandra_3_0, cassandra_3_11: remove due to EOL
Cassandra 3.0 and 3.11 are End of Life.
https://cassandra.apache.org/_/blog/Apache-Cassandra-3.0.x-and-3.11.x-End-of-Life-Announcement.html
2025-04-22 10:19:56 +02:00
nixpkgs-ci[bot]
5858ce00b1 Merge master into staging-next 2025-04-11 09:43:11 +00:00
Wolfgang Walther
d62c14f5d1 nixos/postgres-websockets: init 2025-04-10 10:12:27 +02:00
K900
0842b11f2b Merge remote-tracking branch 'origin/master' into staging-next 2025-04-08 09:29:48 +03:00
6543
2ab1f218fb nixos/services.mysql: fix galeraCluster.clusterAddress is evaluated before assertions are checked 2025-04-07 21:04:44 +02:00
K900
05bc93a58a Merge remote-tracking branch 'origin/master' into staging-next 2025-04-06 11:20:16 +03:00
6543
cac3bdab21 nixos/services.mysql: add galera cluster options (#388978)
And add release notes for new option.

Co-authored-by: Arne Keller <arne.keller@posteo.de>
2025-04-06 00:26:06 +02:00
Silvan Mosberger
e52d633a63 Merge remote-tracking branch 'upstream/staging-next' into staging 2025-04-02 18:30:54 +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
nixpkgs-ci[bot]
86e22e1e80 Merge staging-next into staging 2025-03-31 12:06:34 +00:00
Wolfgang Walther
064432a519 nixos/postgrest: init module 2025-03-30 14:24:16 +02:00
nixpkgs-ci[bot]
d9eb3e5d48 Merge staging-next into staging 2025-03-28 12:06:30 +00:00
Maximilian Bosch
360cd99eed Merge: nixos/doc: include extensions in postgresql upgrade script (#392831) 2025-03-28 10:33:00 +01:00
K900
aca918e668 Merge remote-tracking branch 'origin/staging-next' into staging 2025-03-25 21:06:52 +03:00
Wolfgang Walther
7277ebc2f9 Reapply "nixos/postgresql: add docs about procedural languages"
This reverts commit a4006e4970.
2025-03-25 15:00:50 +01:00
Wolfgang Walther
a4006e4970 Revert "nixos/postgresql: add docs about procedural languages"
This reverts commit 0bc099abd6.
2025-03-25 14:58:02 +01:00
Kai
4867d68ec9 nixos/doc: include extensions in postgresql upgrade script 2025-03-25 07:59:01 +01:00
Wolfgang Walther
0bc099abd6 nixos/postgresql: add docs about procedural languages 2025-03-23 15:07:43 +01:00
Wolfgang Walther
24775f6543 nixos/postgresql: fix reference to LLVM closure size
In fact, the current difference is:
- 157M for postgresql to
- 756M for postgresql_jit

That's a difference of 589M.
2025-03-23 15:07:39 +01:00
Wolfgang Walther
89b30e5b15 nixos/postgresql: fix spelling and grammar in docs 2025-03-23 15:07:36 +01:00
jopejoe1
dca7e827b3 nixos: Replace custom cfg format handling with pkgs.formats (#314933) 2025-03-14 21:08:14 +01:00
Maximilian Bosch
25310642c6 Merge: nixos/postgresql: allow customisations of SystemCallFilter (#386345) 2025-03-11 17:11:28 +01:00
Sandro
bcfa2a020c nixos/postgresql: fix merging of shared_preload_libraries option (#388754) 2025-03-10 19:32:38 +01:00
Maximilian Bosch
8bf1e138bc nixos/postgresql: fix merging of shared_preload_libraries option
Closes #386804

The issue with coercing to `types.str` is that it's not mergeable, so
any declarations will result in an eval error like this:

    error: The option `interactive.nodes.tmp.services.postgresql.settings.shared_preload_libraries' has conflicting definition values:
    - In `/home/ma27/Projects/nixpkgs-hack/tmp.nix@node-tmp': "foo"
    - In `/home/ma27/Projects/nixpkgs-hack/tmp.nix@node-tmp': "bar2"
    Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions.

Using a mergeable type (`types.comma`, i.e. a string, where all declarations
get joined with a comma as delimiter) fixes the problem.
2025-03-10 18:07:44 +01:00
6543
e00090dddf services.mysql: make sql statements consistent uppercase 2025-03-06 07:03:49 +01:00
6543
534f90a262 services.mysql: on create initial databases add savety statement 'IF NOT EXISTS' for edgecases 2025-03-06 07:03:49 +01:00
6543
41ec4243d1 services.mysql: wait for galera cluster sync to be done 2025-03-06 07:03:49 +01:00
Maximilian Bosch
6e87867ee3 nixos/postgresql: allow customisations of SystemCallFilter
Closes #385603

The problem described is that `wal-g` requires syscalls from `@resources`.
However, we don't have support for it in the module now and I don't
think it's reasonable to only support hardening adjustments for things
support by this module. Also, list is a bad datatype here since it
doesn't allow the level of customizations we need.

This is only for the syscall filterset since it's the option that's hard
to customize otherwise. For downstream configs, it's recommended to
adjust the hardening as needed in other cases.

Hence I decided to implement `services.postgresql.systemCallFilter` with
the following semantics:

* `systemCallFilter."~@resources" = true` adds `~@resources` to the
  filterset.

* Setting this to `false` (e.g. in a downstream configuration using
  `wal-g`) removes the entry `~@resources` from the filterset. In this
  case it's sufficient since `@system-service` implies `@resources` and
  the `~@resources` declaration after that discards that.

  I decided to not implement logic about negations in here, but to keep
  it rather simple by only allowing to set/unset entries.

As described in `systemd.exec(5)`, the ordering matters: e.g.
`@system-service` implies `@resources`, but `~@resources` _after_ that
reverts that. By default, the ordering of the keys is as follows:

* syscall groups (starting with `@`) come at first.
* negations of syscall groups (starting with `~@`) come after that.
* anything else at the end.

If further ordering is needed, it can be done like this:

```
{
  services.postgresql.systemCallFilter."~@resources" = {
    enable = true; # whether or not it's part of the final SystemCallFilter
    priority = 23; # ordering priority in the filterset.
  };
}
```

The lower the priority, the higher up the entry will be in the final
filterset.
2025-03-02 11:20:18 +01:00
Peder Bergebakken Sundt
d525eb5838 treewide: fix typos
done with `fd \\\.md$ . --type f -x typos --write-changes`
2025-02-22 02:02:07 +01:00
Ivan Trubach
d8657587c0 nixos/victorialogs: init module (#376834) 2025-02-20 14:57:55 +03:00