Generic Device Plugin¶
The generic-device-plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods
This chart is not maintained by the upstream project and any issues with the chart should be raised here
Source Code¶
Requirements¶
Kubernetes: >=1.22.0-0
Dependencies¶
Repository | Name | Version |
---|---|---|
https://bjw-s.github.io/helm-charts | common | 1.5.1 |
Installing the Chart¶
To install the chart with the release name generic-device-plugin
OCI (Recommended)¶
Traditional¶
helm repo add gabe565 https://charts.gabe565.com
helm repo update
helm install generic-device-plugin gabe565/generic-device-plugin
Uninstalling the Chart¶
To uninstall the generic-device-plugin
deployment
The command removes all the Kubernetes components associated with the chart including persistent volumes and deletes the release.
Configuration¶
Read through the values.yaml file. It has several commented out suggested values. Other values may be used from the values.yaml from the bjw-s common library.
Specify each parameter using the --set key=value[,key=value]
argument to helm install
.
helm install generic-device-plugin \
--set env.TZ="America/New York" \
gabe565/generic-device-plugin
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
Custom configuration¶
Configuring Devices¶
Generic Device Plugin will only expose whitelisted devices. To add a device with this Helm chart, add it to config.data
in the following format:
Device Spec¶
- Multiple paths can be given for each type. Paths can be globs.
- Should be provided in the form:
Device Definition¶
- The device definition can be either a path to a device file or a USB device. You cannot define both in the same group.
- For device files, use something like:
- For example, to expose serial devices with different names:
- For USB devices, use something like:
- For example, to expose a CH340 serial converter:
- The device flag can specify lists of devices that should be grouped and mounted into a container together as one single meta-device.
- For example, to allocate and mount an audio capture device:
- A "count" can be specified to allow a discovered device group to be scheduled multiple times.
- For example, to permit allocation of the FUSE device 10 times:
- Note: if omitted, "count" is assumed to be 1
See values.yaml for an example configuration file.
Values¶
Important: When deploying an application Helm chart you can add more values from the bjw-s common library chart here
Key | Type | Default | Description |
---|---|---|---|
config.data | string | See values.yaml | generic-device-plugin config file [ref] |
config.enabled | bool | true | Enables the config file ConfigMap |
controller.type | string | "daemonset" | Sets the controller type |
env | object | See values.yaml | Environment variables [ref] |
env.DOMAIN | string | "squat.ai" | The domain to use when declaring devices |
image.pullPolicy | string | "Always" | Image pull policy |
image.repository | string | "ghcr.io/squat/generic-device-plugin" | Image repository |
image.tag | string | "latest" | Image tag |
persistence.dev | object | See values.yaml | Host path volume bind to the dev dir |
persistence.device-plugins | object | See values.yaml | Host path volume bind to the Kubelet plugin directory |
probes.liveness | object | {"path":"/health","type":"HTTP"} | Configures liveness probe |
probes.readiness | object | {"path":"/health","type":"HTTP"} | Configures readiness probe |
probes.startup | object | {"path":"/health","type":"HTTP"} | Configures startup probe |
securityContext.privileged | bool | true | Privileged mode is required to access devices |
service.main | object | See values.yaml | Configures health/metrics service settings for the chart. |
serviceMonitor.main.enabled | bool | false | Enables or disables the serviceMonitor. |
serviceMonitor.main.endpoints | list | See values.yaml | Configures the endpoints for the serviceMonitor. |
Autogenerated from chart metadata using helm-docs