123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- ---
- apiVersion: batch/v1
- kind: Job
- metadata:
- name: {{ template "horovod.fullname" . }}
- labels:
- app: {{ template "horovod.name" . }}
- chart: {{ template "horovod.chart" . }}
- release: {{ .Release.Name }}
- heritage: {{ .Release.Service }}
- role: driver
- spec:
- template:
- metadata:
- labels:
- app: {{ template "horovod.name" . }}
- release: {{ .Release.Name }}
- role: driver
- spec:
- {{- if .Values.useHostNetwork }}
- hostNetwork: {{ .Values.useHostNetwork }}
- dnsPolicy: ClusterFirstWithHostNet
- {{- end }}
- {{- if .Values.useHostPID }}
- hostPID: {{ .Values.useHostPID }}
- {{- end }}
- restartPolicy: OnFailure
- volumes:
- - name: {{ template "horovod.fullname" . }}-cm
- configMap:
- name: {{ template "horovod.fullname" . }}
- items:
- - key: hostfile.config
- path: hostfile
- mode: 438
- - key: driver.waitWorkerReady
- path: waitWorkersReady.sh
- mode: 365
- - key: driver.run
- path: run.sh
- mode: 365
- {{- if .Values.ssh.useSecrets }}
- - name: {{ template "horovod.fullname" . }}-secret
- secret:
- secretName: {{ template "horovod.fullname" . }}
- defaultMode: 448
- items:
- - key: host-key
- path: id_rsa
- - key: host-key-pub
- path: authorized_keys
- {{- end }}
- {{- if .Values.volumes }}
- {{ toYaml .Values.volumes | indent 6 }}
- {{- end }}
- containers:
- - name: horovod-driver
- image: "{{ .Values.driver.image.repository }}:{{ .Values.driver.image.tag }}"
- imagePullPolicy: {{ .Values.driver.image.pullPolicy }}
- env:
- - name: SSHPORT
- value: "{{ .Values.ssh.port }}"
- {{- if .Values.ssh.useSecrets }}
- - name: USESECRETS
- value: "{{ .Values.ssh.useSecrets }}"
- {{- end }}
- {{- if .Values.driver.env }}
- {{- range $key, $value := .Values.driver.env }}
- - name: "{{ $key }}"
- value: "{{ $value }}"
- {{- end }}
- {{- end }}
- {{- if .Values.driver.privileged }}
- securityContext:
- privileged: true
- {{- end }}
- ports:
- - containerPort: {{ .Values.ssh.port }}
- volumeMounts:
- - name: {{ template "horovod.fullname" . }}-cm
- mountPath: /horovod/generated
- {{- if .Values.ssh.useSecrets }}
- - name: {{ template "horovod.fullname" . }}-secret
- readOnly: true
- mountPath: "/etc/secret-volume"
- {{- end }}
- {{- if .Values.volumeMounts }}
- {{ toYaml .Values.volumeMounts | indent 8 }}
- {{- end }}
- command:
- - /horovod/generated/run.sh
- args:
- {{ toYaml .Values.driver.args | indent 10 }}
- resources:
- {{ toYaml .Values.resources | indent 10 }}
- {{- if .Values.ssh.useSecrets }}
- initContainers:
- - name: wait-workers
- image: "{{ .Values.driver.image.repository }}:{{ .Values.driver.image.tag }}"
- imagePullPolicy: {{ .Values.driver.image.pullPolicy }}
- env:
- - name: SSHPORT
- value: "{{ .Values.ssh.port }}"
- {{- if .Values.ssh.useSecrets }}
- - name: USESECRETS
- value: "{{ .Values.ssh.useSecrets }}"
- {{- end }}
- {{- if .Values.driver.env }}
- {{- range $key, $value := .Values.driver.env }}
- - name: "{{ $key }}"
- value: "{{ $value }}"
- {{- end }}
- {{- end }}
- command:
- - /horovod/generated/waitWorkersReady.sh
- args:
- - /horovod/generated/hostfile
- volumeMounts:
- - name: {{ template "horovod.fullname" . }}-cm
- mountPath: /horovod/generated
- {{- if .Values.ssh.useSecrets }}
- - name: {{ template "horovod.fullname" . }}-secret
- readOnly: true
- mountPath: "/etc/secret-volume"
- {{- end }}
- {{- end }}
|