---
kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
  name: contiv-cleanup
  namespace: kube-system
  labels:
    k8s-app: contiv-cleanup
spec:
  selector:
    matchLabels:
      k8s-app: contiv-cleanup
  template:
    metadata:
      labels:
        k8s-app: contiv-cleanup
      annotations:
        # Mark pod as critical for rescheduling (Will have no effect starting with kubernetes 1.12)
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
{% if kube_version is version('v1.11.1', '>=') %}
      priorityClassName: system-node-critical
{% endif %}
      hostNetwork: true
      hostPID: true
      tolerations:
        - operator: Exists
        # Mark pod as critical for rescheduling (Will have no effect starting with kubernetes 1.12)
        - key: CriticalAddonsOnly
          operator: "Exists"
      serviceAccountName: contiv-netplugin
      containers:
      - name: contiv-ovs-cleanup
        image: {{ contiv_ovs_image_repo }}:{{ contiv_ovs_image_tag }}
        command: ["/opt/cni/bin/cleanup"]
        securityContext:
          privileged: true
        volumeMounts:
         - mountPath: /etc/openvswitch
           name: etc-openvswitch
           readOnly: false
         - mountPath: /var/run
           name: var-run
           readOnly: false
         - mountPath: /opt/cni/bin
           name: cni-bin-dir
           readOnly: false
        readinessProbe:
          exec:
            command:
            - cat
            - /tmp/cleanup.done
          initialDelaySeconds: 3
          periodSeconds: 3
          successThreshold: 1
      volumes:
        - name: etc-openvswitch
          hostPath:
            path: /etc/openvswitch
        - name: var-run
          hostPath:
            path: /var/run
        - name: cni-bin-dir
          hostPath:
            path: /opt/cni/bin
