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