Skip to content

Commit b43c973

Browse files
TELCODOCS-1528: First draft
1 parent 4fc4d17 commit b43c973

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

modules/kmm-customizing-upgrades-for-kernel-modules.adoc

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,53 @@ Use this procedure to upgrade the kernel module while running maintenance operat
1313
This procedure requires knowledge of the workload utilizing the kernel module and must be managed by the cluster administrator.
1414
====
1515

16+
1617
.Prerequisites
1718

18-
* Before upgrading, set the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>=$moduleVersion` label on all the nodes that will be used by the kernel module.
19+
* Before upgrading, set the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion` label on all the nodes that are used by the kernel module.
1920
2021
* Terminate all user application workloads on the node or move them to another node.
2122
2223
* Unload the currently loaded kernel module.
2324
2425
* Ensure that the user workload (the application running in the cluster that is accessing kernel module) is not running on the node prior to kernel module unloading and that the workload is back running on the node after the new kernel module version has been loaded.
2526
26-
* Ensure that the device plugin managed by KMM on the node is unloaded before the upgrade process and reloaded following the upgrade process.
27-
28-
* Due to Kubernetes limitations in label names, the combined length of `Module` name and namespace must not exceed 39 characters.
29-
3027
.Procedure
3128

32-
. Update the following fields in the `Module` CR:
29+
. Ensure that the device plugin managed by KMM on the node is unloaded.
30+
31+
. Update the following fields in the `Module` custom resource (CR):
3332
- `containerImage` (to the appropriate kernel version)
3433
- `version`
3534
+
3635
The update should be atomic; that is, both the `containerImage` and `version` fields must be updated simultaneously.
3736

3837
. Terminate any workload using the kernel module on the node being upgraded.
3938

40-
. Remove the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label on the node. This unloads the kernel module from the node.
41-
42-
. If required, perform any additional maintenance required on the node for the kernel module upgrade.
43-
44-
. Add the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>=$moduleVersion` label to the node. `$moduleVersion` should be equal to the new value of the `version` field in the `Module` CR.
39+
. Remove the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>` label on the node.
40+
Run the following command to unload the kernel module from the node:
41+
+
42+
[source,terminal]
43+
----
44+
$ oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>-
45+
----
4546

46-
. Restore any workload that leverages the kernel module on the node.
47+
. If required, as the cluster administrator, perform any additional maintenance required on the node for the kernel module upgrade.
48+
+
49+
If no additional upgrading is needed, you can skip Steps 3 through 6 by updating the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label value to the new `$moduleVersion` as set in the `Module`.
4750

51+
. Run the following command to add the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion` label to the node. The `$moduleVersion` must be equal to the new value of the `version` field in the `Module` CR.
52+
+
53+
[source,terminal]
54+
----
55+
$ oc label node/<node_name> kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=<desired_version>
56+
----
57+
+
4858
[NOTE]
4959
====
50-
If no additional upgrading is needed, you can skip Steps 3 through 6 by updating the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label value to the new `$moduleVersion` as set in the `Module`.
60+
Because of Kubernetes limitations in label names, the combined length of `Module` name and namespace must not exceed 39 characters.
5161
====
62+
63+
. Restore any workload that leverages the kernel module on the node.
64+
65+
. Reload the device plugin managed by KMM on the node.

0 commit comments

Comments
 (0)