mirror of
https://github.com/clearml/clearml-helm-charts
synced 2025-01-31 17:16:47 +00:00
19a6785a03
* Allowing auth secrets to be optional * Add value secret.existingSecret for clearml chart. * Add value clearml.existingAgentk8sglueSecret for clearml-agent chart. * Add value clearml.existingClearmlConfigSecret for clearml-agent chart. * Split Secret clearml-agent-conf in clearml-agent chart into two Secrets: clearml-agent-conf (agent.conf file) and clearml-agent-k8sglue (environment variables). * Update helm-docs
121 lines
5.4 KiB
YAML
121 lines
5.4 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: {{ include "agentk8sglue.referenceName" . }}
|
|
labels:
|
|
{{- include "clearml.labels" . | nindent 4 }}
|
|
spec:
|
|
replicas: {{ .Values.agentk8sglue.replicaCount }}
|
|
selector:
|
|
matchLabels:
|
|
{{- include "agentk8sglue.selectorLabels" . | nindent 6 }}
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: {{ printf "%s%s" .Values.clearml .Values.agentk8sglue | sha256sum }}
|
|
labels:
|
|
{{- include "agentk8sglue.selectorLabels" . | nindent 8 }}
|
|
spec:
|
|
{{- if .Values.imageCredentials.enabled }}
|
|
imagePullSecrets:
|
|
{{- if .Values.imageCredentials.existingSecret }}
|
|
- name: .Values.imageCredentials.existingSecret
|
|
{{- else }}
|
|
- name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-registry-key
|
|
{{- end }}
|
|
{{- end }}
|
|
initContainers:
|
|
- name: init-k8s-glue
|
|
image: "{{ .Values.agentk8sglue.image.repository }}:{{ .Values.agentk8sglue.image.tag }}"
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- >
|
|
set -x;
|
|
while [ $(curl {{ if not .Values.agentk8sglue.clearmlcheckCertificate }}--insecure{{ end }} -sw '%{http_code}' "{{.Values.agentk8sglue.apiServerUrlReference}}/debug.ping" -o /dev/null) -ne 200 ] ; do
|
|
echo "waiting for apiserver" ;
|
|
sleep 5 ;
|
|
done;
|
|
while [[ $(curl {{ if not .Values.agentk8sglue.clearmlcheckCertificate }}--insecure{{ end }} -sw '%{http_code}' "{{.Values.agentk8sglue.fileServerUrlReference}}/" -o /dev/null) =~ 403|405 ]] ; do
|
|
echo "waiting for fileserver" ;
|
|
sleep 5 ;
|
|
done;
|
|
while [ $(curl {{ if not .Values.agentk8sglue.clearmlcheckCertificate }}--insecure{{ end }} -sw '%{http_code}' "{{.Values.agentk8sglue.webServerUrlReference}}/" -o /dev/null) -ne 200 ] ; do
|
|
echo "waiting for webserver" ;
|
|
sleep 5 ;
|
|
done
|
|
containers:
|
|
- name: k8s-glue
|
|
image: "{{ .Values.agentk8sglue.image.repository }}:{{ .Values.agentk8sglue.image.tag }}"
|
|
imagePullPolicy: IfNotPresent
|
|
command: ["/bin/bash", "-c", "export PATH=$PATH:$HOME/bin; source /root/.bashrc && /root/entrypoint.sh"]
|
|
volumeMounts:
|
|
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
|
mountPath: /root/template
|
|
{{- if or .Values.clearml.clearmlConfig .Values.clearml.existingClearmlConfigSecret }}
|
|
- name: k8sagent-clearml-conf-volume
|
|
mountPath: /root/clearml.conf
|
|
subPath: clearml.conf
|
|
readOnly: true
|
|
{{- end }}
|
|
env:
|
|
- name: CLEARML_API_HOST
|
|
value: "{{.Values.agentk8sglue.apiServerUrlReference}}"
|
|
- name: CLEARML_WEB_HOST
|
|
value: "{{.Values.agentk8sglue.webServerUrlReference}}"
|
|
- name: CLEARML_FILES_HOST
|
|
value: "{{.Values.agentk8sglue.fileServerUrlReference}}"
|
|
- name: K8S_GLUE_MAX_PODS
|
|
value: "{{.Values.agentk8sglue.maxPods}}"
|
|
- name: K8S_GLUE_QUEUE
|
|
value: "{{.Values.agentk8sglue.queue}}"
|
|
- name: K8S_GLUE_EXTRA_ARGS
|
|
value: "--namespace {{ .Release.Namespace }} --template-yaml /root/template/template.yaml"
|
|
- name: K8S_DEFAULT_NAMESPACE
|
|
value: "{{ .Release.Namespace }}"
|
|
- name: CLEARML_API_ACCESS_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
|
{{- else }}
|
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
|
{{- end }}
|
|
key: agentk8sglue_key
|
|
- name: CLEARML_API_SECRET_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
|
{{- else }}
|
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
|
{{- end }}
|
|
key: agentk8sglue_secret
|
|
- name: CLEARML_WORKER_ID
|
|
value: "{{.Values.agentk8sglue.id}}"
|
|
- name: CLEARML_AGENT_UPDATE_REPO
|
|
value: ""
|
|
- name: FORCE_CLEARML_AGENT_REPO
|
|
value: ""
|
|
- name: CLEARML_DOCKER_IMAGE
|
|
value: "{{.Values.agentk8sglue.defaultContainerImage}}"
|
|
{{- if .Values.agentk8sglue.extraEnvs }}
|
|
{{ toYaml .Values.agentk8sglue.extraEnvs | nindent 10 }}
|
|
{{- end }}
|
|
volumes:
|
|
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
|
configMap:
|
|
name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
|
{{- if or .Values.clearml.clearmlConfig .Values.clearml.existingClearmlConfigSecret }}
|
|
- name: k8sagent-clearml-conf-volume
|
|
secret:
|
|
{{- if .Values.clearml.existingClearmlConfigSecret }}
|
|
secretName: {{ .Values.clearml.existingClearmlConfigSecret }}
|
|
{{- else }}
|
|
secretName: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
|
{{- end }}
|
|
items:
|
|
- key: clearml.conf
|
|
path: clearml.conf
|
|
{{ end }}
|