Skip to content

Helm Install of cert-manager-csi-driver Fails on Minikube with /dev/bus/usb Errors #385

@roberts-github-name

Description

@roberts-github-name

Hi all, I encountered an odd installation issue where cert-manager-csi-driver seems to try and fail to mount a USB device.

I'm running a minikube cluster on Xubuntu with rootless Docker. Here's how I installed Docker:

# rooted and rootless docker installation
curl -o install.sh -fsSL https://get.docker.com # uses apt-get under the hood
sudo sh install.sh
dockerd-rootless-setuptool.sh install

Then to create the minikube cluster with minikube v1.35.0 I used this:

minikube start \
  --addons=dashboard,metrics-server,registry \
  --insecure-registry=192.168.49.2:5000 \
  --driver=docker \
  --container-runtime=containerd \
  --nodes=3 \
  --memory=no-limit \
  --cpus=no-limit

Then I try to install cert-manager and cert-manager-csi-driver with Helm:

helm repo add jetstack https://charts.jetstack.io --force-update

helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.17.0 \
  --set crds.enabled=true

helm install cert-manager-csi-driver jetstack/cert-manager-csi-driver \
  --namespace cert-manager \
  --wait

Installing cert-manager succeeds after waiting a minute or two.

But installing cert-manager-csi-driver times out. In my cluster's dashboard I can see that the DaemonSet has errors. The pods it tries to start fail and the dashboard reports the error is this:

Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error creating device nodes: mount src=/dev/bus/usb/001/021, dst=/run/containerd/io.containerd.runtime.v2.task/k8s.io/cert-manager-csi-driver/rootfs/dev/bus/usb/001/021, dstFd=/proc/thread-self/fd/8, flags=0x1000: no such file or directory: unknown

Back-off restarting failed container cert-manager-csi-driver in pod cert-manager-csi-driver-jm4ln_cert-manager(b4b5cdcd-bf53-4d49-8808-b22e8e364b58)

I briefly searched online for cert-manager errors related to /dev/bus/usb, and also searched the source code briefly for "usb" but didn't find anything that looked relevant.

Any ideas? From the docs I read that the CSI driver's goal is to mount dynamically issued certificates in memory which is awesome, but I'm surprised to see /dev/bus/usb involved!

I admit my minikube cluster is not in a pristine state, I have some (supposedly) unrelated pods and StatefulSets running, and earlier followed some of the cert-manager guides on making self-signed (Cluster)Issuers and Certificates. Conceivably those might contribute to the error. Tomorrow I'll try burning down my whole k8s cluster and repeating the above steps on a fresh minikube cluster to see if that helps. I thought I'd post anyway though because I assume most others install the CSI driver on non-pristine k8s clusters too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions