apiVersion: v1
kind: Pod
metadata:
  name: smarter-device-management
  namespace: default
spec:
  # Mark this pod as a critical add-on; when enabled, the critical add-on
  # scheduler reserves resources for critical add-on pods so that they can
  # be rescheduled after a failure.
  # See https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/
  priorityClassName: "system-node-critical"
  hostNetwork: true
  dnsPolicy: ClusterFirstWithHostNet
  hostname: smarter-device-management
  nodeName: <replace with node to run>
  containers:
  - name: smarter-device-manager
    image: registry.gitlab.com/arm-research/smarter/smarter-device-manager:v1.1.2
    imagePullPolicy: IfNotPresent
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop: ["ALL"]
    resources:
      limits:
        cpu: 100m
        memory: 10Mi
      requests:
        cpu: 10m
        memory: 10Mi
    volumeMounts:
      - name: device-plugin
        mountPath: /var/lib/kubelet/device-plugins
      - name: dev-dir
        mountPath: /dev
      - name: sys-dir
        mountPath: /sys
  volumes:
    - name: device-plugin
      hostPath:
        path: /var/lib/rancher/k3s/agent/kubelet/device-plugins
    - name: dev-dir
      hostPath:
            path: /dev
    - name: sys-dir
      hostPath:
            path: /sys
  terminationGracePeriodSeconds: 30
