Skip to content

Commit 528188b

Browse files
authored
Merge pull request #63309 from StephenJamesSmith/TELCODOCS-1277
TELCODOCS-1277: first draft
2 parents faaa5ae + 91609f3 commit 528188b

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

hardware_enablement/kmm-kernel-module-management.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ include::modules/kmm-building-and-signing-a-moduleloader-container-image.adoc[le
6565
.Additional resources
6666
For information on creating a service account, see xref:https://docs.openshift.com/container-platform/4.12/authentication/understanding-and-creating-service-accounts.html#service-accounts-managing_understanding-service-accounts[Creating service accounts].
6767

68+
// Added for TELCODOCS-1277
69+
include::modules/kmm-customizing-upgrades-for-kernel-modules.adoc[leveloffset=+1]
70+
6871
include::modules/kmm-debugging-and-troubleshooting.adoc[leveloffset=+1]
6972

7073
// Added for TELCODOCS-1067
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hardware_enablement/kmm-kernel-module-management.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="kmm-customizing-upgrades-for-kernel-modules_{context}"]
7+
= Customizing upgrades for kernel modules
8+
9+
Use this procedure to upgrade the kernel module while running maintenance operations on the node, including rebooting the node, if needed. To minimize the impact on the workloads running in the cluster, run the kernel upgrade process sequentially, one node at a time.
10+
11+
[NOTE]
12+
====
13+
This procedure requires knowledge of the workload utilizing the kernel module and must be managed by the cluster administrator.
14+
====
15+
16+
.Prerequisites
17+
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+
20+
* Terminate all user application workloads on the node or move them to another node.
21+
22+
* Unload the currently loaded kernel module.
23+
24+
* 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.
25+
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+
30+
.Procedure
31+
32+
. Update the following fields in the `Module` CR:
33+
- `containerImage` (to the appropriate kernel version)
34+
- `version`
35+
+
36+
The update should be atomic; that is, both the `containerImage` and `version` fields must be updated simultaneously.
37+
38+
. Terminate any workload using the kernel module on the node being upgraded.
39+
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.
45+
46+
. Restore any workload that leverages the kernel module on the node.
47+
48+
[NOTE]
49+
====
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`.
51+
====

0 commit comments

Comments
 (0)