This is a very thin device plugin which just exposing device files in host to containers.
Those device files are assumed to be non limited resources, things like "capabilitites" of a host (i.e. /dev/kvm).
However, due to kubernetes/kubernetes#59380, current device plugin(v1beta1
) doesn't support unlimited extended resources. Currently a hack would be to set the number of resources advertised by the device plugin to a very high mumber.
$KUBEERNETES_VERSION
-K8S_HOST_DEVICE_PLUGIN_VERSION
see example folder.
cd example
# create configmap with key=`config.json`, value=config json
# this config
# - resource name: github.com/everpeace-random
# - host device file: /dev/random
# - container path to be mounted: /dev/everpeace-mount
# - permission: "r"
# - number of devices: 100 # please make this value sufficiently large,
# # in this case, capacity is `github.com/everpeace-random: 100`
kubectl create -f host-devices.yaml
# deploy device plugin
kubectl create -f host-device-plugin.yaml
# create test pod
# this requests 10 everpeace-random resources. (10 is meaningless.)
kubectl create -f test-pod.yaml
If you wanted to expose infiniband devices, please look into ib-example directory
first release
just bump k8s version for 0.0.1
just bump k8s version for 0.0.1
support checking device existence #3
- support light-weight glob support #8
- upgrade kubernetes version to 1.21.3 #7
- make it go module #6
- Send only changes of health #4
- upgrade kubernetes version to 1.22.4 #11
- upgrade kubernets 1.23.5 and golang 1.17 #13
- upgrade kubernetes 1.24.4 and golang 1.19 #16