Use the ManagedClusterModule CRD
To deploy kernel modules on spoke clusters with KMM-Hub on OpenShift Container Platform, you can configure a cluster-scoped ManagedClusterModule custom resource that wraps a Module spec and selects target clusters.
This CRD is cluster-scoped, wraps a Module spec and adds the following additional fields:
apiVersion: hub.kmm.sigs.x-k8s.io/v1beta1
kind: ManagedClusterModule
metadata:
name: <my-mcm>
# No namespace, because this resource is cluster-scoped.
spec:
moduleSpec:
selector:
node-wants-my-mcm: 'true'
spokeNamespace: <some-namespace>
selector:
wants-my-mcm: 'true'
where:
spec.moduleSpec-
Specifies the
moduleLoaderanddevicePluginsections, similar to aModuleresource. spec.moduleSpec.selector-
Specifies nodes within the
ManagedCluster. spec.spokeNamespace-
Specifies in which namespace the
Moduleshould be created. spec.selector-
Specifies
ManagedClusterobjects.
If build or signing instructions are present in .spec.moduleSpec, those pods are run on the hub cluster in the operator’s namespace.
When the .spec.selector matches one or more ManagedCluster resources, then KMM-Hub creates a ManifestWork resource in the corresponding namespace(s). ManifestWork contains a trimmed-down Module resource, with kernel mappings preserved but all build and sign subsections are removed. containerImage fields that contain image names ending with a tag are replaced with their digest equivalent.