apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "clearml.fullname" . }}-apiserver labels: {{- include "clearml.labels" . | nindent 4 }} spec: replicas: {{ .Values.apiserver.replicaCount }} selector: matchLabels: {{- include "clearml.selectorLabelsApiServer" . | nindent 6 }} template: metadata: annotations: checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }} {{- with .Values.apiserver.podAnnotations }} {{- toYaml . | nindent 8 }} {{- end }} labels: {{- include "clearml.selectorLabelsApiServer" . | nindent 8 }} spec: {{- if .Values.imageCredentials.enabled }} imagePullSecrets: {{- if .Values.imageCredentials.existingSecret }} - name: {{ .Values.imageCredentials.existingSecret }} {{- else }} - name: clearml-agent-registry-key {{- end }} {{- end }} containers: - name: {{ .Chart.Name }} image: "{{ .Values.apiserver.image.repository }}:{{ .Values.apiserver.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.apiserver.image.pullPolicy }} ports: - name: http containerPort: 8008 protocol: TCP env: - name: CLEARML_ELASTIC_SERVICE_HOST {{- if .Values.elasticsearch.enabled }} value: "{{ .Values.elasticsearch.clusterName }}-master" {{- else }} value: "{{ .Values.externalServices.elasticsearchHost }}" {{- end }} - name: CLEARML_ELASTIC_SERVICE_PORT {{- if .Values.elasticsearch.enabled }} value: "{{ .Values.elasticsearch.httpPort }}" {{- else }} value: "{{ .Values.externalServices.elasticsearchPort }}" {{- end }} - name: CLEARML_MONGODB_SERVICE_HOST {{- if .Values.mongodb.enabled }} value: "{{ tpl .Values.mongodb.service.name . }}" {{- else }} value: "{{ .Values.externalServices.mongodbHost }}" {{- end }} - name: CLEARML_MONGODB_SERVICE_PORT {{- if .Values.mongodb.enabled }} value: "{{ .Values.mongodb.service.port }}" {{- else }} value: "{{ .Values.externalServices.mongodbPort }}" {{- end }} - name: CLEARML_REDIS_SERVICE_HOST {{- if .Values.redis.enabled }} value: "{{ tpl .Values.redis.master.name . }}" {{- else }} value: "{{ .Values.externalServices.redisHost }}" {{- end }} - name: CLEARML_REDIS_SERVICE_PORT {{- if .Values.redis.enabled }} value: "{{ .Values.redis.master.port }}" {{- else }} value: "{{ .Values.externalServices.redisPort }}" {{- end }} - name: CLEARML__APISERVER__PRE_POPULATE__ENABLED value: "{{ .Values.apiserver.prepopulateEnabled }}" - name: CLEARML__APISERVER__PRE_POPULATE__ZIP_FILES value: "{{ .Values.apiserver.prepopulateZipFiles }}" - name: CLEARML_SERVER_DEPLOYMENT_TYPE value: "helm-cloud" - name: CLEARML__APISERVER__AUTH__COOKIES__MAX_AGE value: "{{ .Values.apiserver.authCookiesMaxAge }}" - name: CLEARML_CONFIG_DIR value: /opt/clearml/config - name: CLEARML__APISERVER__DEFAULT_COMPANY value: {{ .Values.clearml.defaultCompany }} - name: CLEARML__SECURE__HTTP__SESSION_SECRET__APISERVER valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: http_session - name: CLEARML__SECURE__AUTH__TOKEN_SECRET valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: auth_token - name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_KEY valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: apiserver_key - name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_SECRET valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: apiserver_secret - name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_KEY valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: tests_user_key - name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_SECRET valueFrom: secretKeyRef: name: {{ default "clearml-conf" .Values.secret.existingSecret }} key: tests_user_secret {{- if .Values.apiserver.extraEnvs }} {{ toYaml .Values.apiserver.extraEnvs | nindent 10 }} {{- end }} args: - apiserver livenessProbe: initialDelaySeconds: {{ .Values.apiserver.livenessDelay }} httpGet: path: /debug.ping port: 8008 readinessProbe: initialDelaySeconds: {{ .Values.apiserver.readinessDelay }} failureThreshold: 8 httpGet: path: /debug.ping port: 8008 {{- if or .Values.apiserver.configuration.additionalConfigs .Values.apiserver.configuration.configRefName .Values.apiserver.configuration.secretRefName }} volumeMounts: - name: apiserver-config mountPath: /opt/clearml/config {{- end }} resources: {{- toYaml .Values.apiserver.resources | nindent 12 }} {{- if or .Values.apiserver.configuration.additionalConfigs .Values.apiserver.configuration.configRefName .Values.apiserver.configuration.secretRefName }} volumes: - name: apiserver-config {{- if or .Values.apiserver.configuration.configRefName }} configMap: name: {{ .Values.apiserver.configuration.configRefName }} {{- else if or .Values.apiserver.configuration.secretRefName }} secret: secretName: {{ .Values.apiserver.configuration.secretRefName }} {{- else if or .Values.apiserver.configuration.additionalConfigs }} configMap: name: "{{ include "clearml.fullname" . }}-apiserver-configmap" {{- end }} {{- end }} {{- with .Values.apiserver.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.apiserver.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.apiserver.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}