k8s.io/test-infra@v0.0.0-20240520184403-27c6b4c223d8/config/prow/cluster/build/create-loop-devs_daemonset.yaml (about) 1 # A daemonset to create /dev/loopX device nodes before they are 2 # needed. 3 # 4 # Normally, new nodes are created dynamically by the kernel. But nodes 5 # in a KIND cluster are started with a copy of /dev from the host and 6 # loop devices created later on do not show up in that static /dev 7 # (https://github.com/kubernetes-sigs/kind/issues/1248). Creating 8 # "enough" (1000 in this daemonset) in advance avoids running out of 9 # loop devices. 10 apiVersion: apps/v1 11 kind: DaemonSet 12 metadata: 13 name: create-loop-devs 14 namespace: kube-system 15 labels: 16 app: create-loop-devs 17 spec: 18 selector: 19 matchLabels: 20 name: create-loop-devs 21 updateStrategy: 22 type: RollingUpdate 23 rollingUpdate: 24 maxUnavailable: "10%" 25 template: 26 metadata: 27 labels: 28 name: create-loop-devs 29 spec: 30 tolerations: 31 - operator: Exists 32 effect: NoSchedule 33 containers: 34 - name: loopdev 35 command: 36 - sh 37 - -c 38 - | 39 while true; do 40 for i in $(seq 0 1000); do 41 if ! [ -e /dev/loop$i ]; then 42 mknod /dev/loop$i b 7 $i 43 fi 44 done 45 sleep 100000000 46 done 47 image: alpine:20231219 48 imagePullPolicy: IfNotPresent 49 resources: {} 50 securityContext: 51 privileged: true 52 volumeMounts: 53 - name: dev 54 mountPath: /dev 55 volumes: 56 - name: dev 57 hostPath: 58 path: /dev