Skip to content

Commit 34a199a

Browse files
committed
docs: 23.05 upgrade docs and other version changes
1 parent f6d0fde commit 34a199a

8 files changed

+88
-130
lines changed

doc/default.nix

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
{
1212
pkgs ? import (fetchTarball https://hydra.flyingcircus.io/build/207931/download/1/nixexprs.tar.xz) {}
13-
, branch ? "22.11"
13+
, branch ? "23.05"
1414
, updated ? "1970-01-01 01:00"
1515
, docObjectsInventory ? null # path to objects.inv generated by flyingcircusio/doc
1616
, failOnWarnings ? false

doc/src/kubernetes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ run in a process called the `k3s agent`. We will prefer to use the words
3030
`server` and `agent` through the remainder of this document.
3131
:::
3232

33-
We provide version 1.25.x of k3s.
33+
We provide version 1.26.x of k3s.
3434

3535
## Reference architecture and minimal resource requirements
3636

doc/src/local.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,6 @@ Run `sudo fc-manage -b` to activate the changes (**may restart services!**).
8383
For more information about writing NixOS modules, refer to the
8484
[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-writing-modules)
8585

86-
Look up NixOS options here, with channel *22.11* selected:
86+
Look up NixOS options here, with channel *23.05* selected:
8787

8888
[https://nixos.org/nixos/options.html](https://nixos.org/nixos/options.html)

doc/src/mongodb.md

+1-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@
55
Managed instance of [MongoDB](https://www.mongodb.com).
66
There's a role for each supported major version, currently:
77

8-
- mongodb36
9-
- mongodb40
108
- mongodb42
119

12-
Versions before 4.2 are end-of-life and should be upgraded.
13-
1410
## Configuration
1511

1612
MongoDB works out-of-the box without configuration.
@@ -33,7 +29,7 @@ current running mongodb version.
3329
Set the compatibility version in the {command}`mongo` Shell, for example:
3430

3531
```
36-
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
32+
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
3733
```
3834

3935
To upgrade, disable the current role and enable the role for the next major version.

doc/src/slurm.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ documented below.
1515
The remainder of this documentation assumes that you are aware of the basics of
1616
Slurm and understand the general terminology.
1717

18-
We provide version 22.5.0 of Slurm.
18+
We provide version 23.2.0 of Slurm.
1919

2020
## Basic architecture and roles
2121

doc/src/upgrade.md

+72-110
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,8 @@ Contact our {ref}`support` for upgrade assistance.
1515

1616
## Overview
1717

18-
- Status: stable
19-
- First production release: [2023_005 (2023-03-13)](https://doc.flyingcircus.io/platform/changes/2023/r005.html)
20-
- Added roles: postgresql15
21-
- Removed roles: {ref}`graylog, loghost, loghost-location <nixos-upgrade-loghost>`, {ref}`kibana, kibana6, kibana7 <nixos-upgrade-kibana>`, {ref}`postgresql10 <nixos-upgrade-postgresql>`
22-
- Roles with significant breaking changes: {ref}`nginx, webgateway <nixos-upgrade-webgateway>`, {ref}`nixos-upgrade-statshost-master`
18+
- Status: staging/non-production
19+
- Removed roles: {ref}`elasticsearch6, elasticsearch7 <nixos-upgrade-elasticsearch>`
2320

2421

2522
## Why upgrade? Security
@@ -32,7 +29,7 @@ We do back-ports for critical security issues but this may take longer in some
3229
cases and less important security fixes will not be back-ported most of the time.
3330

3431
NixOS provides regular security updates for about one month after the release.
35-
Upstream support for 22.11 ends on **2023-06-30**.
32+
Upstream support for 23.05 ends on **2023-12-31**.
3633

3734
New platform features are always developed for the current stable platform version
3835
and only critical bug fixes are back-ported to older versions.
@@ -115,119 +112,84 @@ following common breaking changes and role-specific notes below.
115112

116113
### Common breaking changes
117114

118-
- Deprecated settings `logrotate.paths` and `logrotate.extraConfig` have been
119-
removed. Please convert any uses to `services.logrotate.settings`
120-
before upgrading.
115+
- `libxcrypt`, the library providing the `crypt(3)` password hashing function,
116+
is now built without support for algorithms not flagged[`strong`]
117+
(https://github.com/besser82/libxcrypt/blob/v4.4.33/lib/hashes.conf#L48)
118+
in NixOS 23.05. We added a variant package called `libxcrypt-with-sha256`
119+
which also enables the `sha256` algorithm. OpenLDAP, Dovecot, Postfix,
120+
cyrus_sasl use that version by default. New password hashes should use
121+
strong algorithms like `yescrypt`.
122+
- `podman` now uses the `netavark` network stack. Users will need to delete
123+
all of their local containers, images, volumes, etc, by running `podman
124+
system reset --force` once before upgrading their systems.
121125

122-
(nixos-upgrade-webgateway)=
123126

124-
### webgateway
127+
(nixos-upgrade-elasticsearch)=
125128

126-
**Nginx** now uses the *nginx* user to run the main process. Before, only
127-
worker processes ran as *nginx* and the main process as *root* to allow
128-
reading SSL certificates from arbitrary directories, like deployments in
129-
`/srv/s-user`, for example.
130-
131-
Normally, the built-in support for Letsencrypt should be used to avoid
132-
permission problems and make sure that certificates are rotated
133-
automatically.
134-
135-
If using other SSL certificates cannot be avoided, make sure
136-
that permissions allow read access for the *nginx* user, for example by
137-
applying `setfacl -Rm u:nginx:rX` to the certificate directory.
138-
139-
It's also possible to keep the old behavior for some time by adding as
140-
{ref}`nixos-custom-modules` before the upgrade:
141-
142-
```nix
143-
# /etc/local/nixos/nginx-master-user-root.nix
144-
{
145-
services.nginx.masterUser = "root";
146-
}
147-
```
148-
149-
This setting will trigger a deprecation warning on 23.05 and be removed in a
150-
later version.
151-
152-
(nixos-upgrade-statshost-master)=
153-
154-
### statshost-master
155-
156-
The options to add custom Grafana config have changed.
157-
158-
`services.grafana.extraOptions` has been removed and free-form config
159-
settings moved to `services.grafana.settings`. For example,
160-
`services.grafana.smtp.port` is now at `services.grafana.settings.smtp.port`.
161-
162-
For a detailed migration guide, please look at the
163-
[NixOS 22.11 release notes](https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-22.11-notable-changes).
164-
165-
### nginx
166-
167-
See {ref}`nixos-upgrade-webgateway`.
168-
169-
(nixos-upgrade-postgresql)=
170-
171-
### postgresql
172-
173-
The `postgresql10` role has been removed. {ref}`Upgrade the database <nixos-postgresql-major-upgrade>`
174-
to a newer role version before the platform upgrade.
175-
176-
The `postgresql15` role is now available.
177-
178-
(nixos-upgrade-kibana)=
179-
180-
### kibana
181-
182-
All `kibana*` roles have been removed. Machines that use kibana should stay on
183-
22.05 for now. We are working on
184-
[OpenSearch](https://opensearch.org/)/[OpenSearch Dashboards](https://opensearch.org/docs/latest/dashboards/quickstart-dashboards/)
185-
roles for 22.11 which will replace Elasticsearch/Kibana in the future.
186-
187-
(nixos-upgrade-loghost)=
188-
189-
### loghost
190-
191-
`graylog` and `loghost*` roles have been removed. Machines that use these
192-
roles should stay on 22.05. We are working on a new logging stack for 22.11
193-
which will be based on [Grafana Loki](https://grafana.com/oss/loki/).
129+
### Elasticsearch
194130

131+
`elasticsearch6` and `elasticsearch7` roles have been removed. Machines that use these
132+
roles should stay on 22.11 and migrate to Opensearch before upgrading.
195133

196134
## Other notable changes
197135

198-
- PHP is now built in NTS (Non-Thread Safe) mode by default. For Apache and
199-
mod_php usage, we enable ZTS (Zend Thread Safe) mode. This has been a
200-
common practice for a long time in other distributions.
201-
- openssh was updated to version 9.1, disabling the generation of DSA keys
202-
when using `ssh-keygen -A` as they are insecure. Also, `SetEnv` directives
203-
in `ssh_config` and `sshd_config` are now first-match-wins.
204-
- Python now defaults to 3.10, updated from 3.9. Python 3.11 is now stable.
205-
- PHP now defaults to PHP 8.1, updated from 8.0.
206-
- OpenSSL now defaults to OpenSSL 3, updated from 1.1.1.
207-
- The `nodePackages` package set now defaults to the LTS release in the `nodejs`
208-
package again, instead of being pinned to `nodejs_14`. `nodejs_10` has
209-
been removed.
136+
- NixOS now defaults to using nsncd (a non-caching reimplementation in Rust)
137+
as NSS lookup dispatcher, instead of the buggy and deprecated
138+
glibc-provided nscd.
139+
- The `NodeJS` packages have been renamed to a more usual naming scheme,
140+
for example `nodejs-19_x` is now `nodejs_19`.
141+
- The `dnsmasq` service now takes configuration via the
142+
`services.dnsmasq.settings` attribute set. The option
143+
`services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches
144+
end of life.
145+
- PostgreSQL has opt-in support for [JIT compilation]
146+
(https://www.postgresql.org/docs/current/jit-reason.html). It can be
147+
enabled like this:
148+
```nix
149+
{
150+
services.postgresql = {
151+
enableJIT = true;
152+
};
153+
}
154+
```
155+
- `openjdk` from version 11 and above is not build with `openjfx`
156+
(i.e.: JavaFX) support by default anymore. You can re-enable it by
157+
overriding, e.g.: `openjdk11.override { enableJavaFX = true; };`.
158+
- A new option `recommendedBrotliSettings` has been added to `services.nginx`.
159+
Learn more about compression in Brotli format [here](https://github.com/google/ngx_brotli/blob/master/README.md).
160+
- `vim_configurable` has been renamed to `vim-full` to avoid confusion:
161+
`vim-full`'s build-time features are configurable, but both `vim` and
162+
`vim-full` are _customizable_ (in the sense of user configuration, like
163+
vimrc).
210164
- For more details, see the
211-
[release notes of NixOS 22.11](https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-22.11-notable-changes).
165+
[release notes of NixOS 23.05](https://nixos.org/manual/nixos/stable/release-notes.html#sec-release-23.05-notable-changes).
212166

213167

214168
## Significant package updates
215169

216-
- docker-compose: 1.29 -> 2.12
217-
- git: 2.36 -> 2.38
218-
- gitlab: 15.4.6 -> 15.8.4
219-
- glibc: 2.34 -> 2.35
220-
- haproxy: 2.5 -> 2.6
221-
- k3s: 1.23 -> 1.25
222-
- keycloak: 18 -> 20
223-
- nix: 2.8 -> 2.11
224-
- openssh: 9.0 -> 9.1
225-
- postfix: 3.6.6 -> 3.7.3
226-
- powerdns: 4.6 -> 4.7
227-
- rabbitmq: 3.9 -> 3.10
228-
- roundcube: 1.5 -> 1.6
229-
- systemd: 250 -> 251
230-
- telegraf: 1.22 -> 1.24
231-
- varnish: 7.1 -> 7.2
232-
- zlib: 1.2.12 -> 1.2.13
233-
- zsh: 5.8 -> 5.9
170+
- asterisk: 19.8.0 -> asterisk-20.2.1
171+
- bash: 5.1 -> 5.2
172+
- binutils: 2.39 -> 2.40
173+
- bundler: 2.3 -> 2.4
174+
- curl: 7.86.0 -> 8.0
175+
- dnsmasq: 2.87 -> 2.89
176+
- docker-compose: 2.12 -> 2.17
177+
- ffmpeg: 4.4.2 -> 5.1
178+
- gcc: 11 -> 12
179+
- git: 2.38 -> 2.40
180+
- glibc: 2.35 -> 2.37
181+
- grafana: 9.4 -> 9.5
182+
- haproxy: 2.6 -> 2.7
183+
- k3s: 1.25 -> 1.26
184+
- kubernetes-helm: 3.10 -> 3.11
185+
- linux: 5.15 -> 6.1
186+
- nginx: 1.22 -> 1.24
187+
- nss-cacert: 3.86 -> 3.89
188+
- openjdk: 17 -> 19 (same for other Java default packages like `jre`)
189+
- openssh: 9.1 -> 9.3
190+
- podman: 4.3 -> 4.5
191+
- rabbitmq-server: 3.10 -> 3.11
192+
- ruby: 2.7 -> 3.1
193+
- systemd: 251 -> 253
194+
- telegraf: 1.24 -> 1.26
195+
- xfsprogs: 5.19 -> 6.2

doc/src/user_profile.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Create a file like {file}`myproject_env.nix` which specifies the packages to be
3535
let
3636
# Imports. Which package sources should be used?
3737
# Use a pinned platform version
38-
# pkgs = import (fetchTarball https://hydra.flyingcircus.io/build/176012/download/1/nixexprs.tar.xz) {};
38+
# pkgs = import (fetchTarball https://hydra.flyingcircus.io/build/259314/download/1/nixexprs.tar.xz) {};
3939
# ...or just use the current version of the platform
4040
pkgs = import <nixpkgs> {};
4141
in
@@ -53,7 +53,7 @@ pkgs.buildEnv {
5353
```
5454

5555
The code shown above defines an environment with 5 packages installed from a
56-
specific build of our NixOS 22.05 platform.
56+
specific build of our NixOS 23.05 platform.
5757
The pinned version can be newer or older than the installed system version.
5858

5959
Pinning the version of the import prevents unwanted changes in your
@@ -65,23 +65,23 @@ latest security fixes. NixOS re-uses packages if the wanted version is already
6565
in the Nix store, saving disk space and reducing installation time.
6666

6767
The URL for the current release can be found in the {ref}`changelog` for the
68-
22.05 platform.
68+
23.05 platform.
6969

7070
If you want to try NixOS unstable with the newest packages, get the URL from the channel:
7171

7272
```
7373
$ curl -w "%{url_effective}\n" -I -L -s -S $URL -o /dev/null https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz
74-
https://releases.nixos.org/nixos/unstable/nixos-22.11pre391680.4a01ca36d6b/nixexprs.tar.xz
74+
https://releases.nixos.org/nixos/unstable/nixos-23.11pre489246.4e37b4e55b6/nixexprs.tar.xz
7575
```
7676

7777
Note that the unstable channel may be broken and that upstream NixOS channels
7878
don't have some additional packages we provide on our platform.
7979

80-
Older NixOS versions than 22.05 usually don't get security updates anymore.
80+
Older NixOS versions than 22.11 usually don't get security updates anymore.
8181

82-
Links to all platform builds for 22.05 can be found here:
82+
Links to all staging platform builds for 23.05 can be found here (no production channel, yet):
8383

84-
<https://hydra.flyingcircus.io/job/flyingcircus/fc-22.05-production/release>
84+
<https://hydra.flyingcircus.io/job/flyingcircus/fc-23.05-staging/release>
8585

8686
See <https://nixos.org/nixos/packages.html> for a list of packages.
8787
Use the *attribute name* from the list and include it in `paths`.
@@ -199,7 +199,7 @@ You can import packages from different NixOS versions or other sources:
199199
```
200200
let
201201
pkgs = import <nixpkgs> {};
202-
pkgsUnstable = import (fetchTarball https://releases.nixos.org/nixos/unstable/nixos-22.11pre391680.4a01ca36d6b/nixexprs.tar.xz) {};
202+
pkgsUnstable = import (fetchTarball https://releases.nixos.org/nixos/unstable/nixos-23.11pre489246.4e37b4e55b6/nixexprs.tar.xz) {};
203203
in
204204
pkgs.buildEnv {
205205
name = "myproject-env";
@@ -211,7 +211,7 @@ pkgs.buildEnv {
211211
}
212212
```
213213

214-
This installs the `zlib` from the platform NixOS version but `libjpeg` from NixOS unstable (here 22.11pre).
214+
This installs the `zlib` from the platform NixOS version but `libjpeg` from NixOS unstable (here 23.11pre).
215215

216216
% XXX list env vars
217217

doc/src/webgateway.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ failover support.
88

99
## Versions
1010

11-
- HAProxy: 2.6.x
12-
- Nginx: 1.22.x
11+
- HAProxy: 2.7.x
12+
- Nginx: 1.24.x
1313

1414
## Role architecture
1515

0 commit comments

Comments
 (0)