apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fpgadeviceplugin
  namespace: system
  labels:
    app: intel-fpga-plugin
spec:
  selector:
    matchLabels:
      app: intel-fpga-plugin
  template:
    metadata:
      labels:
        app: intel-fpga-plugin
    spec:
      initContainers:
      - name: intel-fpga-initcontainer
        image: intel/intel-fpga-initcontainer:devel
        imagePullPolicy: IfNotPresent
        securityContext:
          readOnlyRootFilesystem: true
        volumeMounts:
        - mountPath: /opt/intel/fpga-sw
          name: intel-fpga-sw
        - mountPath: /etc/containers/oci/hooks.d
          name: oci-hooks-config
      containers:
      - name: intel-fpga-plugin
        env:
          - name: NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
        image: intel/intel-fpga-plugin:devel
        imagePullPolicy: IfNotPresent
        args:
          - -mode=af
        terminationMessagePath: /tmp/termination-log
        securityContext:
          readOnlyRootFilesystem: true
        volumeMounts:
        - name: devfs
          mountPath: /dev
          readOnly: true
        - name: sysfs
          mountPath: /sys/class
          readOnly: true
        - name: kubeletsockets
          mountPath: /var/lib/kubelet/device-plugins
      volumes:
      - name: devfs
        hostPath:
          path: /dev
      - name: sysfs
        hostPath:
          path: /sys/class
      - name: kubeletsockets
        hostPath:
          path: /var/lib/kubelet/device-plugins
      - name: intel-fpga-sw
        hostPath:
          path: /opt/intel/fpga-sw
          type: DirectoryOrCreate
      - name: oci-hooks-config
        hostPath:
          path: /etc/containers/oci/hooks.d
          type: DirectoryOrCreate
