123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: {{ template "horovod.fullname" . }}
- labels:
- app: {{ template "horovod.name" . }}
- chart: {{ template "horovod.chart" . }}
- release: {{ .Release.Name }}
- heritage: {{ .Release.Service }}
- role: worker
- spec:
- selector:
- matchLabels:
- app: {{ template "horovod.name" . }}
- release: {{ .Release.Name }}
- heritage: {{ .Release.Service }}
- role: worker
- serviceName: {{ template "horovod.fullname" . }}
- podManagementPolicy: {{ .Values.worker.podManagementPolicy }}
- replicas: {{.Values.worker.number}}
- template:
- metadata:
- labels:
- app: {{ template "horovod.name" . }}
- chart: {{ template "horovod.chart" . }}
- release: {{ .Release.Name }}
- heritage: {{ .Release.Service }}
- role: worker
- spec:
- {{- if .Values.useHostNetwork }}
- hostNetwork: {{ .Values.useHostNetwork }}
- dnsPolicy: ClusterFirstWithHostNet
- {{- end }}
- {{- if .Values.useHostPID }}
- hostPID: {{ .Values.useHostPID }}
- {{- end }}
- volumes:
- - name: {{ template "horovod.fullname" . }}-cm
- configMap:
- name: {{ template "horovod.fullname" . }}
- items:
- - key: hostfile.config
- path: hostfile
- mode: 438
- - key: ssh.readiness
- path: check.sh
- mode: 365
- - key: worker.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: worker
- image: "{{ .Values.worker.image.repository }}:{{ .Values.worker.image.tag }}"
- imagePullPolicy: {{ .Values.worker.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.worker.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
- {{- if .Values.ssh.useSecrets }}
- readinessProbe:
- exec:
- command:
- - /horovod/generated/check.sh
- initialDelaySeconds: 1
- periodSeconds: 2
- {{- end }}
- resources:
- {{ toYaml .Values.resources | indent 10 }}
|