Kernel module deployment

Kernel Module Management (KMM) monitors Node and Module resources on Red Hat OpenShift Container Platform to load or unload kernel modules on eligible nodes. KMM creates worker pods on target nodes to reconcile the desired module state.

To be eligible for a module, a node must contain the following:

  • Labels that match the module’s .spec.selector field.

  • A kernel version matching one of the items in the module’s .spec.moduleLoader.container.kernelMappings field.

  • If ordered upgrade (ordered_upgrade.md) is configured in the module, a label that matches its .spec.moduleLoader.container.version field.

When KMM reconciles nodes with the desired state as configured in the Module resource, it creates worker pods on the target nodes to run the necessary action. The KMM Operator monitors the outcome of the pods and records the information. The Operator uses this information to label the Node objects when the module is successfully loaded, and to run the device plugin, if configured.

Worker pods run the KMM worker binary that performs the following tasks:

  • Pulls the kmod image configured in the Module resource. Kmod images are standard OCI images that contain .ko files.

  • Extracts the image in the pod’s filesystem.

  • Runs modprobe with the specified arguments to perform the necessary action.