/devdirectory, such as microphones, security chips, usb cameras, and so on. Udev can be used to find devices that are attached to or embedded in Linux nodes.
agent.full=trueis set. By default, a slim Agent without any embedded Discovery Handlers is deployed and the required Discovery Handlers can be deployed as DaemonSets. This documentation will use that strategy, deploying udev Discovery Handlers by specifying
udev.discovery.enabled=truewhen installing Akri.
helm inspect values akri-helm-charts/akri). To apply the udev Configuration to your cluster, simply set
udev.configuration.enabled=truewhen installing Akri. Be sure to also specify one or more udev rules for the Configuration, as explained below.
IMPORTin the udev rules. You should only use match operations ("==", "!=") and the following udev fields:
TAGS. To see some examples, reference our example supported rules and unsupported rules that we run some tests against.
udev.configuration.capacitysetting to reflect the correct number. For example, if your high availability needs are met by having 1 redundant pod, you can update the Configuration like this by setting
udevadm. For example, to find all devices in the sound subsystem, you could run:
Great Vendor. You set the following udev rule under the udev Discovery Handler in your Configuration:
/etc/udev/rules.ddirectory, and add your udev rule(s) to it. For this example, we will be testing the rule
SUBSYSTEM=="sound", KERNEL=="card[0-9]*". Add
TAG+="akri_tag"to the end of each rule. Note how 90 is the prefix to the file name. This makes sure these rules are run after the others in the default
70-snap.core.rules, preventing them from being overwritten. Feel free to explore
70-snap.core.rulesto see numerous examples of udev rules.
/devdirectory). These device node paths will be mounted into broker Pods so the brokers can utilize the devices.
-=-- and reload and trigger the udev rules. Alternatively, if you are trying to discover devices with fields that Akri does not yet support, such as
ATTRS, you could leave the tag and add it to the rule in your Configuration with
kubectl get akrii. Note
akriiis a short name for Akri Instance. All the instances will be named in the format
<configuration-name>-<hash>. You could change the name of the Configuration and resultant Instances to be
--set udev.configuration.name=sound-devicesto your installation command. Now, you can schedule pods that request these Instances as resources, as explained in the requesting akri resources document.
UDEV_DEVNODEwhich contains the devnode path for that device (ie:
/dev/snd/pcmC0D0c). The broker can grab this environment variable and proceed to interact with the device. To add a broker to the udev configuration, set the
udev.configuration.brokerPod.image.repositoryvalue to point to your image. As an example, the installation below will deploy an empty nginx pod for each instance. Instead, you can point to your image, say
udev.configuration.brokerPod.image.tagto specify an image tag (defaults to
TAG), which are yet to be supported (
TAGS), and which fields will never be supported, mainly due to be assignment rather than matching fields (such as