+++ /dev/null
----
-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: master
-spec:
- template:
- metadata:
- labels:
- app: {{ template "horovod.name" . }}
- release: {{ .Release.Name }}
- role: master
- 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: master.waitWorkerReady
- path: waitWorkersReady.sh
- mode: 365
- - key: master.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-master
- image: "{{ .Values.master.image.repository }}:{{ .Values.master.image.tag }}"
- imagePullPolicy: {{ .Values.master.image.pullPolicy }}
- env:
- - name: SSHPORT
- value: "{{ .Values.ssh.port }}"
- {{- if .Values.ssh.useSecrets }}
- - name: USESECRETS
- value: "{{ .Values.ssh.useSecrets }}"
- {{- end }}
- {{- if .Values.master.env }}
- {{- range $key, $value := .Values.master.env }}
- - name: "{{ $key }}"
- value: "{{ $value }}"
- {{- end }}
- {{- end }}
- - name: AWS_ACCESS_KEY_ID
- valueFrom:
- secretKeyRef:
- name: {{ if .Values.minio.existingSecret }}{{ .Values.minio.existingSecret }}{{ else }}{{ template "horovod.fullname" . }}-minio{{ end }}
- key: accesskey
- - name: AWS_SECRET_ACCESS_KEY
- valueFrom:
- secretKeyRef:
- name: {{ if .Values.minio.existingSecret }}{{ .Values.minio.existingSecret }}{{ else }}{{ template "horovod.fullname" . }}-minio{{ end }}
- key: secretkey
- {{- range $key, $val := .Values.minio.environment }}
- - name: {{ $key }}
- value: {{ $val | quote }}
- {{- end}}
-{{- if .Values.master.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.master.args | indent 10 }}
- resources:
-{{ toYaml .Values.resources | indent 10 }}
-{{- if .Values.ssh.useSecrets }}
- initContainers:
- - name: wait-workers
- image: "{{ .Values.master.image.repository }}:{{ .Values.master.image.tag }}"
- imagePullPolicy: {{ .Values.master.image.pullPolicy }}
- env:
- - name: SSHPORT
- value: "{{ .Values.ssh.port }}"
- {{- if .Values.ssh.useSecrets }}
- - name: USESECRETS
- value: "{{ .Values.ssh.useSecrets }}"
- {{- end }}
- {{- if .Values.master.env }}
- {{- range $key, $value := .Values.master.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 }}