Description of problem:
kmm-hub failing to build driver
Version-Release number of selected component (if applicable):
OCP 4.14.11 kernel-module-management-hub.v2.0.2
How reproducible:
Steps to Reproduce:
1. Deploy OCP 4.14.11 cluster with ACM
[root@cnfdt17-installer ~]# oc get node
NAME STATUS ROLES AGE VERSION
dhcp-97-113.lab.eng.tlv2.redhat.com Ready control-plane,master,virtual 2d5h v1.27.10+28ed2d7
dhcp-97-138.lab.eng.tlv2.redhat.com Ready control-plane,master,virtual 2d5h v1.27.10+28ed2d7
dhcp-97-152.lab.eng.tlv2.redhat.com Ready worker 2d4h v1.27.10+28ed2d7
dhcp-97-217.lab.eng.tlv2.redhat.com Ready worker 2d4h v1.27.10+28ed2d7
dhcp-97-98.lab.eng.tlv2.redhat.com Ready control-plane,master,virtual 2d5h v1.27.10+28ed2d7
[root@cnfdt17-installer ~]# oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.14.11 True False 2d4h Cluster version is 4.14.11
2. Deploy SNO 4.14.11 and import to the hub cluster
[kni@cnfdt2 sabina]$ oc get node
NAME STATUS ROLES AGE VERSION
cnfdt12.lab.eng.tlv2.redhat.com Ready control-plane,master,worker 2d v1.27.10+28ed2d7
[root@cnfdt17-installer ~]# oc get managedcluster
4NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE
cnfdt12 true https://api.cnfdt12.lab.eng.tlv2.redhat.com:6443 True True 30h
local-cluster true https://api.cnfdt17.lab.eng.tlv2.redhat.com:6443 True True 2d4h
3. Install kmm-hub:
https://docs.openshift.com/container-platform/4.14/hardware_enablement/kmm-kernel-module-management.html#kmm-hub-installing-kmm-hub-creating-resources_kernel-module-management-operator
4. Use RHACM policy to install KMM on the spoke cluster:
https://docs.openshift.com/container-platform/4.14/hardware_enablement/kmm-kernel-module-management.html#kmm-hub-running-kmm-on-the-spoke_kernel-module-management-operator
5. Apply the following to build and sign the kmm-ci driver
---
apiVersion: v1
kind: ConfigMap
metadata:
name: example-module-dockerfile
namespace: default
data:
dockerfile: |
ARG DTK_AUTO
ARG KERNEL_VERSION
FROM ${DTK_AUTO} as builder
WORKDIR /build/
RUN git clone -b main --single-branch https://github.com/rh-ecosystem-edge/kernel-module-management.git
WORKDIR kernel-module-management/ci/kmm-kmod/
RUN make
FROM registry.access.redhat.com/ubi9/ubi:latest
ARG KERNEL_VERSION
RUN yum -y install kmod && yum clean all
RUN mkdir -p /opt/lib/modules/${KERNEL_VERSION}
COPY --from=builder /build/kernel-module-management/ci/kmm-kmod/*.ko /opt/lib/modules/${KERNEL_VERSION}/
RUN /usr/sbin/depmod -b /opt
---
apiVersion: hub.kmm.sigs.x-k8s.io/v1beta1
kind: ManagedClusterModule
metadata:
name: example-module
spec:
moduleSpec:
moduleLoader:
container:
modprobe:
moduleName: kmm_ci_a
kernelMappings:
- regexp: '^.*\.x86_64$'
containerImage: quay.io/saledort/kmm-ci-driver:final-default_example-module_kmm_unsigned
build:
dockerfileConfigMap:
name: example-module-dockerfile
sign:
keySecret:
name: kmm-kmod-signing-key
certSecret:
name: kmm-kmod-signing-cert
filesToSign:
- /opt/lib/modules/5.14.0-284.48.1.el9_2.x86_64/kmm_ci_a.ko
imageRepoSecret:
name: saledort-repo-pull-secret
selector: # top-level selector
kubernetes.io/arch: amd64
spokeNamespace: cnfdt12
selector:
name: cnfdt12
Actual results:
1. kmm-hub controller expecting both the repo secret and the configmap be in openshift-kmm-hub namespace resulting these errors:
mm_unsigned: cannot get keychain from the registry auth getter: cannot find secret openshift-kmm-hub/saledort-repo-pull-secret: Secret \"saledort-repo-pull-secret\" not found" "ManagedClusterModule"={"name":"example-module"} "cluster"="cnfdt12" "controller"="ManagedClusterModule" "controllerGroup"="hub.kmm.sigs.x-k8s.io" "controllerKind"="ManagedClusterModule" "name"="example-module" "namespace"="" "reconcileID"="947c3bb2-cac3-44c2-9f14-abe9516cf6e0"
ClusterModule"={"name":"example-module"} "controller"="ManagedClusterModule" "controllerGroup"="hub.kmm.sigs.x-k8s.io" "controllerKind"="ManagedClusterModule" "name"="example-module" "namespace"="" "reconcileID"="788bd98a-813d-4d1a-9e2e-419d4d65e12f"E0221 14:30:28.790993 1 managedclustermodule_reconciler.go:112] kmm-hub "msg"="failed to build" "error"="could not synchronize the build: could not make Build template: failed to get dockerfile data from configmap: failed to get dockerfile ConfigMap openshift-kmm-hub/example-module-dockerfile: ConfigMap \"example-module-dockerfile\" not found" "ManagedClusterModule"={"name":"example-module"} "cluster"="cnfdt12" "controller"="ManagedClusterModule" "controllerGroup"="hub.kmm.sigs.x-k8s.io" "controllerKind"="ManagedClusterModule" "name"="example-module" "namespace"="" "reconcileID"="788bd98a-813d-4d1a-9e2e-419d4d65e12f"
2. Building the driver failing with the following error even tough both hub and spoke are on the same OCP version and kernel
[root@cnfdt17-installer ~]# oc get node dhcp-97-113.lab.eng.tlv2.redhat.com -o jsonpath={.status.nodeInfo.kernelVersion}
5.14.0-284.50.1.el9_2.x86_64
[kni@cnfdt2 sabina]$ oc get node cnfdt12.lab.eng.tlv2.redhat.com -o jsonpath={.status.nodeInfo.kernelVersion}
5.14.0-284.50.1.el9_2.x86_64
I0221 14:55:16.327067 1 managedclustermodule_reconciler.go:99] kmm-hub "msg"="Requested KMMO ManagedClusterModule" "ManagedClusterModule"={"name":"example-module"} "controller"="ManagedClusterModule" "controllerGroup"="hub.kmm.sigs.x-k8s.io" "controllerKind"="ManagedClusterModule" "name"="example-module" "namespace"="" "reconcileID"="f3bb3b8a-c361-46dd-8621-200608cccd1a"E0221 14:55:17.599713 1 managedclustermodule_reconciler.go:112] kmm-hub "msg"="failed to build" "error"="could not synchronize the build: could not make Build template: could not get DTK image for kernel 5.14.0-284.50.1.el9_2.x86_64: could not find kernel 5.14.0-284.50.1.el9_2.x86_64 in kernel --> OS mapping" "ManagedClusterModule"={"name":"example-module"} "cluster"="cnfdt12" "controller"="ManagedClusterModule" "controllerGroup"="hub.kmm.sigs.x-k8s.io" "controllerKind"="ManagedClusterModule" "name"="example-module" "namespace"="" "reconcileID"="f3bb3b8a-c361-46dd-8621-200608cccd1a"
Expected results:
The driver should be built and signed
Additional info:
- links to
-
RHBA-2024:127292
Red Hat OpenShift kernel module management 2.1 operator/operand containers