{{- if .Values.worker.enable }} apiVersion: apps/v1 kind: DaemonSet metadata: name: {{ include "node-feature-discovery.fullname" . }}-worker namespace: {{ include "node-feature-discovery.namespace" . }} labels: {{- include "node-feature-discovery.labels" . | nindent 4 }} role: worker {{- with .Values.worker.daemonsetAnnotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: selector: matchLabels: {{- include "node-feature-discovery.selectorLabels" . | nindent 6 }} role: worker template: metadata: labels: {{- include "node-feature-discovery.selectorLabels" . | nindent 8 }} role: worker {{- with .Values.worker.annotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: dnsPolicy: ClusterFirstWithHostNet {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ include "node-feature-discovery.worker.serviceAccountName" . }} securityContext: {{- toYaml .Values.worker.podSecurityContext | nindent 8 }} containers: - name: worker securityContext: {{- toYaml .Values.worker.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_UID valueFrom: fieldRef: fieldPath: metadata.uid resources: {{- toYaml .Values.worker.resources | nindent 12 }} command: - "nfd-worker" args: {{- if not .Values.enableNodeFeatureApi }} - "-server={{ include "node-feature-discovery.fullname" . }}-master:{{ .Values.master.service.port }}" - "-enable-nodefeature-api=false" {{- end }} {{- if .Values.tls.enable }} - "-ca-file=/etc/kubernetes/node-feature-discovery/certs/ca.crt" - "-key-file=/etc/kubernetes/node-feature-discovery/certs/tls.key" - "-cert-file=/etc/kubernetes/node-feature-discovery/certs/tls.crt" {{- end }} - "-metrics={{ .Values.worker.metricsPort | default "8081"}}" ports: - name: metrics containerPort: {{ .Values.worker.metricsPort | default "8081"}} volumeMounts: - name: host-boot mountPath: "/host-boot" readOnly: true - name: host-os-release mountPath: "/host-etc/os-release" readOnly: true - name: host-sys mountPath: "/host-sys" readOnly: true - name: host-usr-lib mountPath: "/host-usr/lib" readOnly: true - name: host-lib mountPath: "/host-lib" readOnly: true {{- if .Values.worker.mountUsrSrc }} - name: host-usr-src mountPath: "/host-usr/src" readOnly: true {{- end }} - name: source-d mountPath: "/etc/kubernetes/node-feature-discovery/source.d/" readOnly: true - name: features-d mountPath: "/etc/kubernetes/node-feature-discovery/features.d/" readOnly: true - name: nfd-worker-conf mountPath: "/etc/kubernetes/node-feature-discovery" readOnly: true {{- if .Values.tls.enable }} - name: nfd-worker-cert mountPath: "/etc/kubernetes/node-feature-discovery/certs" readOnly: true {{- end }} volumes: - name: host-boot hostPath: path: "/boot" - name: host-os-release hostPath: path: "/etc/os-release" - name: host-sys hostPath: path: "/sys" - name: host-usr-lib hostPath: path: "/usr/lib" - name: host-lib hostPath: path: "/lib" {{- if .Values.worker.mountUsrSrc }} - name: host-usr-src hostPath: path: "/usr/src" {{- end }} - name: source-d hostPath: path: "/etc/kubernetes/node-feature-discovery/source.d/" - name: features-d hostPath: path: "/etc/kubernetes/node-feature-discovery/features.d/" - name: nfd-worker-conf configMap: name: {{ include "node-feature-discovery.fullname" . }}-worker-conf items: - key: nfd-worker.conf path: nfd-worker.conf {{- if .Values.tls.enable }} - name: nfd-worker-cert secret: secretName: nfd-worker-cert {{- end }} {{- with .Values.worker.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.worker.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.worker.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.worker.priorityClassName }} priorityClassName: {{ . | quote }} {{- end }} {{- end }}