2024-03-20 03:43:33 +01:00
|
|
|
# Server Updates
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
## General Update Notes
|
|
|
|
|
|
|
|
During some upgrades the Kanidm project must apply new constraints or limits on your data. If we are
|
|
|
|
unable to migrate these without disruption, we rely on administrators to make informed choices
|
|
|
|
before the upgrade can proceed.
|
|
|
|
|
|
|
|
When these are required, we will give you one release cycle ahead of time to make changes. To check
|
|
|
|
for changes that will affect your instance you should run.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
kanidmd domain upgrade-check
|
|
|
|
|
|
|
|
# Running domain upgrade check ...
|
|
|
|
# domain_name : localhost
|
|
|
|
# domain_uuid : 7dcc7a71-b488-4e2c-ad4d-d89fc49678cb
|
|
|
|
# ------------------------
|
|
|
|
# upgrade_item : gidnumber range validity
|
|
|
|
# status : PASS
|
|
|
|
```
|
|
|
|
|
|
|
|
If _any_ task yields a `FAIL` then a future upgrade will also fail. A `FAIL` status will provide you
|
|
|
|
a list of actions and affected entries that must be resolved before the next upgrade can complete
|
|
|
|
successfully. If all tasks yield a `PASS` status then you can begin the upgrade process.
|
|
|
|
|
|
|
|
## Docker Update Procedure
|
|
|
|
|
2023-03-02 03:47:23 +01:00
|
|
|
Docker doesn't follow a "traditional" method of updates. Rather you remove the old version of the
|
|
|
|
container and recreate it with a newer version. This document will help walk you through that
|
|
|
|
process.
|
|
|
|
|
2024-07-23 04:21:56 +02:00
|
|
|
> [!TIP]
|
|
|
|
>
|
2024-08-17 13:38:52 +02:00
|
|
|
> You should have documented and preserved your Kanidm container create / run command from the
|
|
|
|
> server preparation guide. If not, you'll need to use `docker inspect` to work out how to recreate
|
|
|
|
> these parameters.
|
2023-03-02 03:47:23 +01:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
### Upgrade Check
|
|
|
|
|
|
|
|
Perform the pre-upgrade check.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker exec -i -t <container name> \
|
|
|
|
kanidmd domain upgrade-check
|
|
|
|
|
|
|
|
# Running domain upgrade check ...
|
|
|
|
# domain_name : localhost
|
|
|
|
# domain_uuid : 7dcc7a71-b488-4e2c-ad4d-d89fc49678cb
|
|
|
|
# ------------------------
|
|
|
|
# upgrade_item : gidnumber range validity
|
|
|
|
# status : PASS
|
|
|
|
```
|
|
|
|
|
|
|
|
### Preserving the Previous Image
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
You may wish to preserve the previous image before updating. This is useful if an issue is
|
|
|
|
encountered in upgrades.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker tag kanidm/server:latest kanidm/server:<DATE>
|
|
|
|
docker tag kanidm/server:latest kanidm/server:2022-10-24
|
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
### Update your Image
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2023-03-02 03:47:23 +01:00
|
|
|
Pull the latest version of Kanidm.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker pull kanidm/server:latest
|
2023-03-02 03:47:23 +01:00
|
|
|
docker pull kanidm/radius:latest
|
|
|
|
docker pull kanidm/tools:latest
|
2022-12-26 23:52:03 +01:00
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
### Perform a backup
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-08-05 02:27:45 +02:00
|
|
|
See [backup and restore](backup_and_restore.md)
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
### Update your Instance
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-07-23 04:21:56 +02:00
|
|
|
> [!WARNING]
|
|
|
|
>
|
2024-08-17 13:38:52 +02:00
|
|
|
> Downgrades are not possible. It is critical you know how to backup and restore before you proceed
|
|
|
|
> with this step.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2023-12-18 00:10:13 +01:00
|
|
|
Docker updates operate by deleting and recreating the container. All state that needs to be
|
|
|
|
preserved is within your storage volume.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker stop <previous instance name>
|
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2023-12-18 00:10:13 +01:00
|
|
|
You can test that your configuration is correct with the new version, and the server should
|
|
|
|
correctly start.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker run --rm -i -t -v kanidmd:/data \
|
2023-07-24 02:05:10 +02:00
|
|
|
kanidm/server:latest /sbin/kanidmd configtest
|
2022-12-26 23:52:03 +01:00
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2023-03-02 03:47:23 +01:00
|
|
|
You can then follow through with the upgrade by running the create / run command with your existing
|
|
|
|
volume.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
2023-03-02 03:47:23 +01:00
|
|
|
docker run [Your Arguments Here] -v kanidmd:/data \
|
2022-12-26 23:52:03 +01:00
|
|
|
OTHER_CUSTOM_OPTIONS \
|
|
|
|
kanidm/server:latest
|
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
|
|
|
Once you confirm the upgrade is successful you can delete the previous instance
|
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker rm <previous instance name>
|
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
If you encounter an issue you can revert to the previous version. Upgrades are performed in a single
|
|
|
|
transaction and no changes to your data are made unless the upgrade was successful.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
|
|
|
docker stop <new instance name>
|
|
|
|
docker start <previous instance name>
|
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
|
|
|
If you deleted the previous instance, you can recreate it from your preserved tag instead.
|
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
```bash
|
2023-12-18 00:10:13 +01:00
|
|
|
docker run [Your Arguments Here] -v kanidmd:/data \
|
|
|
|
OTHER_CUSTOM_OPTIONS \
|
|
|
|
kanidm/server:<DATE>
|
2022-12-26 23:52:03 +01:00
|
|
|
```
|
2022-10-26 00:18:25 +02:00
|
|
|
|
2024-03-08 04:25:45 +01:00
|
|
|
In rare and exceptional cases, if the server from your previous version fails to start, you will
|
|
|
|
need to restore from backup.
|