Generic Device Plugin configuration reference

This section provides a detailed reference for the configuration parameters available for the Generic Device Plugin within the MicroShift config.yaml file.

Table 14. GDP configuration fields definitions table
Parameter Description

genericDevicePlugin

The genericDevicePlugin section of the MicroShift configuration file defines the configurable parameters for the implementation of the MicroShift GenericDevicePlugin API. All of the following parameters in this table are subsections in the genericDevicePlugin section of the MicroShift configuration.

devices

Is a subgroup that lists the device definitions to be exposed by the plugin. Each Device entry contains a 'name' and a list of groups.

devices.groups

Lists device groups. Devices within a group comprise a pool of devices under a common name. When you request a device from that pool, you can receive a device from different defined paths.

devices.groups.count

Specifies how many times this group of devices can be mounted concurrently. If unspecified, Count defaults to 1. Setting a high count, for example, 1000 for /dev/fuse, is possible because are no inherent limits, but performance might be impacted depending on the host’s capabilities and the nature of the device.

devices.groups.paths

Lists the host device file paths. Paths can be glob patterns, for example, /dev/ttyUSB*, in which case each matched device is schedulable Count times. This field is exclusive with usbs; you cannot define both in the same device group.

devices.groups.paths.limit

Specifies up to how many times this device can be used in the group concurrently when other devices in the group yield more matches. For example, if one path in the group matches 5 devices and another matches 1 device but has a limit of 10, then the group provides 5 pairs of devices. When unspecified, the limit defaults to 1.

devices.groups.paths.mountPath

The file path at which the host device should be mounted within the container. When unspecified, mountPath defaults to path.

devices.groups.paths.path

The file path of a device on the host, for example, /dev/video0, /dev/ttyUSB*.

devices.groups.paths.permissions

The file-system permissions given to the mounted device. Applies only to mounts of type Device. Can be one or more of:

* r - allows the container to read from the specified device.

* w - allows the container to write to the specified device.

* m - allows the container to create device files that do not yet exist.

When unspecified, Permissions defaults to mrw.

devices.groups.paths.readOnly

Specifies whether the path should be mounted read-only. The values are true or false. Applies only to mounts of type Mount.

devices.groups.path.type

Describes what type of file-system node this path represents and thus how it should be mounted. The type can be Device or Mount. When unspecified, type defaults to Device.

devices.groups.usbs

Lists the USB specifications that this device group consists of. The vendor and product IDs must always match. The serial ID must match if provided, or skipped if the ID is empty, The usbs field is exclusive with paths.

devices.groups.usbs.product

The USB Product ID of the device to match on, for example, 0x7523.

devices.groups.usbs.serial

The serial number of the device to match on. A USB device must match exactly on all the given attributes to pass.

devices.groups.usbs.vendor

The USB Vendor ID of the device to match on, for example, 0x1a86

devices.name

A unique string representing the kind of device this specification describes, for example, serial, video, or fuse. This name is used in pod resource requests, for example, device.microshift.io/serial.

domain

domain is a subgroup that specifies the domain prefix with which devices are advertised and present in the node. For example, device.microshift.io/serial. The default value is device.microshift.io.

status

status is a subgroup that specifies the default GDP status. Enabled or Disabled are valid values.