--- apiVersion: apps/v1 kind: Deployment metadata: name: node-feature-discovery-master namespace: {{ node_feature_discovery_namespace }} labels: app.kubernetes.io/name: node-feature-discovery role: master spec: replicas: {{ node_feature_discovery_master_replicas }} selector: matchLabels: app.kubernetes.io/name: node-feature-discovery role: master template: metadata: labels: app.kubernetes.io/name: node-feature-discovery role: master spec: serviceAccountName: node-feature-discovery enableServiceLinks: false containers: - name: master securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true image: {{ node_feature_discovery_image_repo }}:{{ node_feature_discovery_image_tag }} imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 10 periodSeconds: 10 readinessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 5 periodSeconds: 10 failureThreshold: 10 ports: - containerPort: 8080 name: http env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName command: - "nfd-master" args: - "-port=8080" {% if node_feature_discovery_master_replicas > 1 %} - "-enable-leader-election" {% endif %} volumeMounts: - name: nfd-master-conf mountPath: "/etc/kubernetes/node-feature-discovery" readOnly: true volumes: - name: nfd-master-conf configMap: name: node-feature-discovery-master-conf items: - key: nfd-master.conf path: nfd-master.conf affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/master operator: In values: - "" weight: 1 - preference: matchExpressions: - key: node-role.kubernetes.io/control-plane operator: In values: - "" weight: 1 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Equal - effect: NoSchedule key: node-role.kubernetes.io/control-plane operator: Equal