{{- if .Values.master.enable }} apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "node-feature-discovery.fullname" . }}-master namespace: {{ include "node-feature-discovery.namespace" . }} labels: {{- include "node-feature-discovery.labels" . | nindent 4 }} role: master {{- with .Values.master.deploymentAnnotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: replicas: {{ .Values.master.replicaCount }} selector: matchLabels: {{- include "node-feature-discovery.selectorLabels" . | nindent 6 }} role: master template: metadata: labels: {{- include "node-feature-discovery.selectorLabels" . | nindent 8 }} role: master {{- with .Values.master.annotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ include "node-feature-discovery.master.serviceAccountName" . }} enableServiceLinks: false securityContext: {{- toYaml .Values.master.podSecurityContext | nindent 8 }} containers: - name: master securityContext: {{- toYaml .Values.master.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} livenessProbe: grpc: port: 8080 initialDelaySeconds: 10 periodSeconds: 10 readinessProbe: grpc: port: 8080 initialDelaySeconds: 5 periodSeconds: 10 failureThreshold: 10 ports: - containerPort: {{ .Values.master.port | default "8080" }} name: grpc - containerPort: {{ .Values.master.metricsPort | default "8081" }} name: metrics env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName command: - "nfd-master" resources: {{- toYaml .Values.master.resources | nindent 12 }} args: {{- if .Values.master.instance | empty | not }} - "-instance={{ .Values.master.instance }}" {{- end }} {{- if not .Values.enableNodeFeatureApi }} - "-port={{ .Values.master.port | default "8080" }}" - "-enable-nodefeature-api=false" {{- else if gt (int .Values.master.replicaCount) 1 }} - "-enable-leader-election" {{- end }} {{- if .Values.master.extraLabelNs | empty | not }} - "-extra-label-ns={{- join "," .Values.master.extraLabelNs }}" {{- end }} {{- if .Values.master.denyLabelNs | empty | not }} - "-deny-label-ns={{- join "," .Values.master.denyLabelNs }}" {{- end }} {{- if .Values.master.resourceLabels | empty | not }} - "-resource-labels={{- join "," .Values.master.resourceLabels }}" {{- end }} {{- if .Values.master.enableTaints }} - "-enable-taints" {{- end }} {{- if .Values.master.crdController | kindIs "invalid" | not }} - "-crd-controller={{ .Values.master.crdController }}" {{- else }} ## By default, disable crd controller for other than the default instances - "-crd-controller={{ .Values.master.instance | empty }}" {{- end }} {{- if .Values.master.featureRulesController | kindIs "invalid" | not }} - "-featurerules-controller={{ .Values.master.featureRulesController }}" {{- end }} {{- if .Values.master.resyncPeriod }} - "-resync-period={{ .Values.master.resyncPeriod }}" {{- end }} {{- if .Values.master.nfdApiParallelism | empty | not }} - "-nfd-api-parallelism={{ .Values.master.nfdApiParallelism }}" {{- 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.master.metricsPort | default "8081" }}" volumeMounts: {{- if .Values.tls.enable }} - name: nfd-master-cert mountPath: "/etc/kubernetes/node-feature-discovery/certs" readOnly: true {{- end }} - name: nfd-master-conf mountPath: "/etc/kubernetes/node-feature-discovery" readOnly: true volumes: {{- if .Values.tls.enable }} - name: nfd-master-cert secret: secretName: nfd-master-cert {{- end }} - name: nfd-master-conf configMap: name: {{ include "node-feature-discovery.fullname" . }}-master-conf items: - key: nfd-master.conf path: nfd-master.conf {{- 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 }} {{- end }}