{{- if .Values.node.enableWindows }} kind: DaemonSet apiVersion: apps/v1 metadata: name: ebs-csi-node-windows namespace: {{ .Release.Namespace }} labels: {{- include "aws-ebs-csi-driver.labels" . | nindent 4 }} spec: selector: matchLabels: app: ebs-csi-node {{- include "aws-ebs-csi-driver.selectorLabels" . | nindent 6 }} updateStrategy: {{ toYaml .Values.node.updateStrategy | nindent 4 }} template: metadata: labels: app: ebs-csi-node {{- include "aws-ebs-csi-driver.labels" . | nindent 8 }} {{- if .Values.node.podLabels }} {{- toYaml .Values.node.podLabels | nindent 8 }} {{- end }} {{- with .Values.node.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} spec: {{- with .Values.node.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} nodeSelector: kubernetes.io/os: windows {{- with .Values.node.nodeSelector }} {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ .Values.node.serviceAccount.name }} priorityClassName: {{ .Values.node.priorityClassName | default "system-node-critical" }} tolerations: {{- if .Values.node.tolerateAllTaints }} - operator: Exists {{- else }} {{- with .Values.node.tolerations }} {{- toYaml . | nindent 8 }} {{- end }} {{- end }} containers: - name: ebs-plugin image: {{ printf "%s:%s" .Values.image.repository (default (printf "v%s" .Chart.AppVersion) (toString .Values.image.tag)) }} imagePullPolicy: {{ .Values.image.pullPolicy }} args: - node - --endpoint=$(CSI_ENDPOINT) {{- with .Values.node.volumeAttachLimit }} - --volume-attach-limit={{ . }} {{- end }} - --logtostderr - --v={{ .Values.node.logLevel }} env: - name: CSI_ENDPOINT value: unix:/csi/csi.sock - name: CSI_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName {{- if .Values.proxy.http_proxy }} {{- include "aws-ebs-csi-driver.http-proxy" . | nindent 12 }} {{- end }} {{- with .Values.node.env }} {{- . | toYaml | nindent 12 }} {{- end }} volumeMounts: - name: kubelet-dir mountPath: C:\var\lib\kubelet mountPropagation: "None" - name: plugin-dir mountPath: C:\csi - name: csi-proxy-disk-pipe mountPath: \\.\pipe\csi-proxy-disk-v1 - name: csi-proxy-volume-pipe mountPath: \\.\pipe\csi-proxy-volume-v1 - name: csi-proxy-filesystem-pipe mountPath: \\.\pipe\csi-proxy-filesystem-v1 ports: - name: healthz containerPort: 9808 protocol: TCP livenessProbe: httpGet: path: /healthz port: healthz initialDelaySeconds: 10 timeoutSeconds: 3 periodSeconds: 10 failureThreshold: 5 {{- with .Values.node.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} - name: node-driver-registrar image: {{ printf "%s:%s" .Values.sidecars.nodeDriverRegistrar.image.repository .Values.sidecars.nodeDriverRegistrar.image.tag }} imagePullPolicy: {{ default .Values.image.pullPolicy .Values.sidecars.nodeDriverRegistrar.image.pullPolicy }} args: - --csi-address=$(ADDRESS) - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - --v={{ .Values.sidecars.nodeDriverRegistrar.logLevel }} env: - name: ADDRESS value: unix:/csi/csi.sock - name: DRIVER_REG_SOCK_PATH value: C:\var\lib\kubelet\plugins\ebs.csi.aws.com\csi.sock {{- if .Values.proxy.http_proxy }} {{- include "aws-ebs-csi-driver.http-proxy" . | nindent 12 }} {{- end }} {{- with .Values.sidecars.nodeDriverRegistrar.env }} {{- . | toYaml | nindent 12 }} {{- end }} volumeMounts: - name: plugin-dir mountPath: C:\csi - name: registration-dir mountPath: C:\registration {{- with default .Values.node.resources .Values.sidecars.nodeDriverRegistrar.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} - name: liveness-probe image: {{ printf "%s:%s" .Values.sidecars.livenessProbe.image.repository .Values.sidecars.livenessProbe.image.tag }} imagePullPolicy: {{ default .Values.image.pullPolicy .Values.sidecars.livenessProbe.image.pullPolicy }} args: - --csi-address=unix:/csi/csi.sock volumeMounts: - name: plugin-dir mountPath: C:\csi {{- with default .Values.node.resources .Values.sidecars.livenessProbe.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} {{- if .Values.imagePullSecrets }} imagePullSecrets: {{- range .Values.imagePullSecrets }} - name: {{ . }} {{- end }} {{- end }} volumes: - name: kubelet-dir hostPath: path: C:\var\lib\kubelet type: Directory - name: plugin-dir hostPath: path: C:\var\lib\kubelet\plugins\ebs.csi.aws.com type: DirectoryOrCreate - name: registration-dir hostPath: path: C:\var\lib\kubelet\plugins_registry type: Directory - name: csi-proxy-disk-pipe hostPath: path: \\.\pipe\csi-proxy-disk-v1 type: "" - name: csi-proxy-volume-pipe hostPath: path: \\.\pipe\csi-proxy-volume-v1 type: "" - name: csi-proxy-filesystem-pipe hostPath: path: \\.\pipe\csi-proxy-filesystem-v1 type: "" {{- end }}