Skip to content

Instantly share code, notes, and snippets.

@jaredallard
Last active February 25, 2018 05:05
Show Gist options
  • Save jaredallard/163b4450538fe96bb3758d23469c7250 to your computer and use it in GitHub Desktop.
Save jaredallard/163b4450538fe96bb3758d23469c7250 to your computer and use it in GitHub Desktop.
Hack to mount /mnt/media-v1 into kubelet in rancher, docker-enter: docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
#!/bin/sh
set -e
CONTAINER=r-kubernetes-kubelet-3-59fec1df
HOSTPATH=/mnt/media-v1
CONTPATH=/mnt/media-v1
REALPATH=$(readlink -f $HOSTPATH)
FILESYS=$(df -P $REALPATH | tail -n 1 | awk '{print $6}')
while read DEV MOUNT JUNK
do [ $MOUNT = $FILESYS ] && break
done </proc/mounts
[ $MOUNT = $FILESYS ] # Sanity check!
while read A B C SUBROOT MOUNT JUNK
do [ $MOUNT = $FILESYS ] && break
done < /proc/self/mountinfo
[ $MOUNT = $FILESYS ] # Moar sanity check!
SUBPATH=$(echo $REALPATH | sed s,^$FILESYS,,)
DEVDEC=$(printf "%d %d" $(stat --format "0x%t 0x%T" $DEV))
docker-enter $CONTAINER -- sh -c \
"[ -b $DEV ] || mknod --mode 0600 $DEV b $DEVDEC"
docker-enter $CONTAINER -- mkdir /tmpmnt
docker-enter $CONTAINER -- mount $DEV /tmpmnt
docker-enter $CONTAINER -- mkdir -p $CONTPATH
docker-enter $CONTAINER -- mount -o bind /tmpmnt/$SUBROOT/$SUBPATH $CONTPATH
docker-enter $CONTAINER -- umount /tmpmnt
docker-enter $CONTAINER -- rmdir /tmpmnt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment