Skip to content

Commit

Permalink
doc(enforce-engine-upgrade): important note
Browse files Browse the repository at this point in the history
ref: longhorn-5842

Signed-off-by: Chin-Ya Huang <chin-ya.huang@suse.com>
  • Loading branch information
c3y1huang committed Dec 26, 2023
1 parent 06419ef commit 0c40298
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions content/docs/1.6.0/deploy/important-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,28 @@ Support for the `v1beta1` version of CSI snapshot CRDs was previously deprecated
The CSI components in Longhorn v{{< current-version >}} only function with the `v1` version.
Please follow the instructions at [Enable CSI Snapshot Support](../../snapshots-and-backups/csi-snapshot-support/enable-csi-snapshot-support) to update CSI snapshot CRDs and the CSI snapshot controller.
If you have Longhorn volume manifests or scripts that are still using `v1beta1` version, you must upgrade them to `v1` as well.

### Engine Upgrade Enforcement

Beginning with version v1.6.0, Longhorn is implementing mandatory engine upgrades. See the [release note](https://github.com/longhorn/longhorn/releases/tag/v{{< current-version >}}) for information about the minimum supported engine image version.

When upgrading through Helm, a component compatibility check is automatically performed. If the new Longhorn is not compatible with the engine images that are currently in use, the upgrade path is blocked through a pre-hook mechanism.

If you installed Longhorn using a manifest file, engine upgrades are enforced by Longhorn Manager. Attempts to upgrade Longhorn Manager may cause unsuccessful pod launches (that pose no harm to the system) and generate corresponding error logs. If you encounter such errors, you must revert to the previous Longhorn version and then upgrade the engines that are using the incompatible engine images before the next upgrade.

You can determine the versions of engine images that are currently in use with the following script:
```bash
#!/bin/bash

namespace="longhorn-system"

engine_images=$(kubectl -n $namespace get engineimage -o=jsonpath='{.items[*].metadata.name}')

for engine_image in $engine_images; do
cli_api_version=$(kubectl -n $namespace get engineimage $engine_image -o=jsonpath='{.status.cliAPIVersion}')
controller_api_version=$(kubectl -n $namespace get engineimage $engine_image -o=jsonpath='{.status.controllerAPIVersion}')
echo "EngineImage: $engine_image | cliAPIVersion: $cli_api_version | controllerAPIVersion: $controller_api_version"
done
```

Once you successfully upgrade to version v1.6.0, you will be able to view information about engine image versions on the UI.

0 comments on commit 0c40298

Please sign in to comment.