charts/charts/stable/smarter-device-manager
2021-07-12 08:35:58 +00:00
..
templates [multiple] Migrate to common v3 (#1070) 2021-06-29 08:54:49 -04:00
.helmignore [meta] Split incubator / stable charts (#688) 2021-03-18 13:11:24 +01:00
Chart.yaml chore(deps): update helm chart common to v3.3.0 (#1086) 2021-07-12 10:33:02 +02:00
README_CHANGELOG.md.gotmpl [multiple] Migrate to common v3 (#1070) 2021-06-29 08:54:49 -04:00
README_CONFIG.md.gotmpl [smarter-device-manager] Bump app, update chart features (#918) 2021-05-19 07:41:46 -04:00
README.md Auto-generate chart README [no ci] 2021-07-12 08:35:58 +00:00
README.md.gotmpl [smarter-device-manager] Bump app, update chart features (#918) 2021-05-19 07:41:46 -04:00
values.yaml [multiple] Migrate to common v3 (#1070) 2021-06-29 08:54:49 -04:00

smarter-device-manager

Version: 5.1.0 AppVersion: 1.20.7

Manage hardware resource allocation without a need for privileged containers

This chart is not maintained by the upstream project and any issues with the chart should be raised here

Source Code

Requirements

Kubernetes: >=1.16.0-0

Dependencies

Repository Name Version
https://library-charts.k8s-at-home.com common 3.3.0

TL;DR

helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm repo update
helm install smarter-device-manager k8s-at-home/smarter-device-manager

Installing the Chart

To install the chart with the release name smarter-device-manager

helm install smarter-device-manager k8s-at-home/smarter-device-manager

Uninstalling the Chart

To uninstall the smarter-device-manager deployment

helm uninstall smarter-device-manager

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 common library.

Specify each parameter using the --set key=value[,key=value] argument to helm install.

helm install smarter-device-manager \
  --set env.TZ="America/New York" \
    k8s-at-home/smarter-device-manager

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.

helm install smarter-device-manager k8s-at-home/smarter-device-manager -f values.yaml

Custom configuration

Please consider overriding the default configuration through values.yaml file. For example:

config: |
  - devicematch: ^snd$
    nummaxdevices: 20
  - devicematch: ^rtc0$
    nummaxdevices: 20
  - devicematch: ^video[0-9]*$
    nummaxdevices: 20
  - devicematch: ^ttyACM[0-9]*$
    nummaxdevices: 1  

The above configuration allows up to twenty pods to make use of /dev/snd, /dev/rtc0 and each of /dev/video[0-9]* devices. Only one pod at a time can use any of the discovered host /dev/ttyACM[0-9]* devices. This means that if a pod has reserved a dongle at /dev/ttyACM0, another pod requesting the same device will stay pending.

Once the devices are discovered, they will be added as allocatable resources to the nodes:

 $ kubectl describe nodes
...
Capacity:
  cpu:                                  4
  memory:                               16104560Ki
  pods:                                 110
  smarter-devices/gpiochip0:            0
  smarter-devices/i2c-0:                0
  smarter-devices/snd:                  20
  smarter-devices/ttyUSB-Z-Stick-Gen5:  1

The hardware is requested by pods through resources, e.g.:

  resources:
    limits:
      smarter-devices/ttyUSB-Conbee-2: 1
    requests:
      smarter-devices/ttyUSB-Conbee-2: 1

In this case host device /dev/ttyUSB-Conbee-2 will be given at the same path, and the pod will only be created when this device is available.

Values

Important: When deploying an application Helm chart you can add more values from our common library chart here

Key Type Default Description
config string See values.yaml Override default configuration See project repo for configuration examples.
dnsPolicy string nil Defaults to "ClusterFirst" if hostNetwork is false and "ClusterFirstWithHostNet" if hostNetwork is true.
hostNetwork bool true When using hostNetwork make sure you set dnsPolicy to ClusterFirstWithHostNet
image.pullPolicy string "IfNotPresent" image pull policy
image.repository string "registry.gitlab.com/arm-research/smarter/smarter-device-manager" image repository
image.tag string "v1.20.7" image tag
persistence object See values.yaml Configure persistence settings for the chart under this key.
priorityClassName string "system-node-critical" Custom priority class for different treatment by the scheduler Setting this is not necessary, but it is recommended. [ref]
securityContext object See values.yaml Configure the securityContext for this pod [ref]

Changelog

All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

5.0.0

Changed

  • BREAKING: Upgraded the common library dependency to version 3.2.0. This introduces several breaking changes (service, ingress and persistence keys have been refactored). Be sure to check out the library chart for the up-to-date values.

4.0.0

Changed

  • BREAKING: The config key has been replaced with a multiline string
  • BREAKING: The chart now uses the hostPathMounts feature to mount the host paths
  • The app version has been bumped to v1.20.7, this should allow better support of /dev subfolders.

3.3.2

Added

  • Added icon url.

Changed

  • N/A

Removed

  • N/A

1.0.0

Added

  • N/A

Changed

  • N/A

Removed

  • N/A

Support


Autogenerated from chart metadata using helm-docs v1.5.0