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 }}