apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ include "node-feature-discovery.fullname" . }}-prune
  namespace: {{ include "node-feature-discovery.namespace" . }}
  labels:
    {{- include "node-feature-discovery.labels" . | nindent 4 }}
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: {{ include "node-feature-discovery.fullname" . }}-prune
  labels:
    {{- include "node-feature-discovery.labels" . | nindent 4 }}
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  - nodes/status
  verbs:
  - get
  - patch
  - update
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: {{ include "node-feature-discovery.fullname" . }}-prune
  labels:
    {{- include "node-feature-discovery.labels" . | nindent 4 }}
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: {{ include "node-feature-discovery.fullname" . }}-prune
subjects:
- kind: ServiceAccount
  name: {{ include "node-feature-discovery.fullname" . }}-prune
  namespace: {{ include "node-feature-discovery.namespace" .  }}
---
apiVersion: batch/v1
kind: Job
metadata:
  name:  {{ include "node-feature-discovery.fullname" . }}-prune
  namespace: {{ include "node-feature-discovery.namespace" . }}
  labels:
    {{- include "node-feature-discovery.labels" . | nindent 4 }}
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
spec:
  template:
    metadata:
      labels:
        {{- include "node-feature-discovery.labels" . | nindent 8 }}
        role: prune
    spec:
      serviceAccountName: {{ include "node-feature-discovery.fullname" . }}-prune
      containers:
        - name: nfd-master
          securityContext:
            {{- toYaml .Values.master.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          command:
            - "nfd-master"
          args:
            - "-prune"
            {{- if .Values.master.instance | empty | not }}
            - "-instance={{ .Values.master.instance }}"
            {{- end }}
      restartPolicy: Never
      {{- with .Values.master.nodeSelector }}
      nodeSelector:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.master.affinity }}
      affinity:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.master.tolerations }}
      tolerations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
