apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-problem-detector
  namespace: kube-system
  labels:
    app: node-problem-detector
spec:
  selector:
    matchLabels:
      app: node-problem-detector
  template:
    metadata:
      labels:
        app: node-problem-detector
    spec:
      serviceAccount: node-problem-detector
      containers:
        - name: node-problem-detector
          command:
            - /node-problem-detector
            - --logtostderr
            - --apiserver-wait-timeout=10s
            - --config.system-log-monitor=/config/kernel-monitor.json,/config/docker-monitor.json
          image: k8s.gcr.io/node-problem-detector:v0.8.1
          resources:
            limits:
              cpu: 10m
              memory: 80Mi
            requests:
              cpu: 10m
              memory: 80Mi
          imagePullPolicy: Always
          securityContext:
            privileged: true
          env:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
          volumeMounts:
            - name: log
              mountPath: /run/log
              readOnly: true
            - name: kmsg
              mountPath: /dev/kmsg
              readOnly: true
            # Make sure node problem detector is in the same timezone
            # with the host.
            - name: localtime
              mountPath: /etc/localtime
              readOnly: true
            - name: config
              mountPath: /config
              readOnly: true
      volumes:
        - name: log
          # Config `log` to your system log directory
          hostPath:
            path: /run/log/
        - name: kmsg
          hostPath:
            path: /dev/kmsg
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: config
          configMap:
            name: node-problem-detector-config
            items:
              - key: kernel-monitor.json
                path: kernel-monitor.json
              - key: docker-monitor.json
                path: docker-monitor.json