This Helm chart deploys the Kernel Module Management (KMM) operator on a Kubernetes cluster.
The Kernel Module Management (KMM) operator manages kernel modules in Kubernetes clusters. It automates the loading and unloading of kernel modules based on the node’s kernel version and other conditions.
helm install kmm-operator ./default \
--namespace kmm-operator-system \
--create-namespace
Create a custom-values.yaml file:
controller:
replicas: 2
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
Then install:
helm install kmm-operator ./default \
--namespace kmm-operator-system \
--create-namespace \
-f custom-values.yaml
The following table lists the configurable parameters and their default values.
| Parameter | Description | Default |
|---|---|---|
global.imageRegistry |
Global image registry override (applies to all images) | "" |
global.imagePullSecrets |
Global image pull secrets | [] |
| Parameter | Description | Default |
|---|---|---|
controller.replicas |
Number of controller replicas | 1 |
controller.image.registry |
Controller image registry | gcr.io |
controller.image.repository |
Controller image repository | k8s-staging-kmm/kernel-module-management-operator |
controller.image.tag |
Controller image tag | v20260415-v2.6.0 |
controller.resources.limits.cpu |
CPU limit | 500m |
controller.resources.limits.memory |
Memory limit | 384Mi |
controller.resources.requests.cpu |
CPU request | 10m |
controller.resources.requests.memory |
Memory request | 64Mi |
| Parameter | Description | Default |
|---|---|---|
webhook.replicas |
Number of webhook replicas | 1 |
webhook.image.registry |
Webhook image registry | gcr.io |
webhook.image.repository |
Webhook image repository | k8s-staging-kmm/kernel-module-management-webhook-server |
webhook.image.tag |
Webhook image tag | v20260415-v2.6.0 |
webhook.resources.limits.cpu |
CPU limit | 500m |
webhook.resources.limits.memory |
Memory limit | 384Mi |
webhook.resources.requests.cpu |
CPU request | 10m |
webhook.resources.requests.memory |
Memory request | 64Mi |
| Parameter | Description | Default |
|---|---|---|
worker.image.registry |
Worker image registry | gcr.io |
worker.image.repository |
Worker image repository | k8s-staging-kmm/kernel-module-management-worker |
worker.image.tag |
Worker image tag | v20260415-v2.6.0 |
| Parameter | Description | Default |
|---|---|---|
sign.image.registry |
Sign image registry | gcr.io |
sign.image.repository |
Sign image repository | k8s-staging-kmm/kernel-module-management-signimage |
sign.image.tag |
Sign image tag | v20260415-v2.6.0 |
| Parameter | Description | Default |
|---|---|---|
build.image.registry |
Build (Kaniko) image registry | gcr.io |
build.image.repository |
Build image repository | kaniko-project/executor |
build.image.tag |
Build image tag | latest |
helm uninstall kmm-operator --namespace kmm-operator-system
Note: By default, CRDs are not automatically removed. To remove them manually:
kubectl delete crd modules.kmm.sigs.x-k8s.io
kubectl delete crd modulebuildsignconfigs.kmm.sigs.x-k8s.io
kubectl delete crd moduleimagesconfigs.kmm.sigs.x-k8s.io
kubectl delete crd nodemodulesconfigs.kmm.sigs.x-k8s.io
kubectl delete crd preflightvalidations.kmm.sigs.x-k8s.io
helm upgrade kmm-operator ./default \
--namespace kmm-operator-system
Use the provided sync script to update the chart with a new upstream version:
./sync_script.sh v2.6.0 default
This will:
After syncing, review and test the changes before deploying.
helm install kmm-operator ./default \
--namespace my-namespace \
--create-namespace
# custom-values.yaml
global:
imageRegistry: my-registry.example.com
# custom-values.yaml
controller:
image:
tag: v2.6.0
webhook:
image:
tag: v2.6.0
worker:
image:
tag: v2.6.0
# custom-values.yaml
controller:
resources:
limits:
cpu: 2000m
memory: 1Gi
requests:
cpu: 200m
memory: 256Mi
# custom-values.yaml
controller:
replicas: 3
webhook:
replicas: 2
kubectl logs -n kmm-operator-system -l control-plane=controller
helm lint ./default
helm install kmm-operator ./default \
--namespace kmm-operator-system \
--dry-run --debug
This Helm chart is provided as-is. The Kernel Module Management operator is licensed under Apache License 2.0.