apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "litmus-portal.fullname" . }}-server namespace: {{ .Release.Namespace }} labels: app.kubernetes.io/component: {{ include "litmus-portal.name" . }}-server {{- include "litmus-portal.labels" . | nindent 4 }} {{- if .Values.portal.server.customLabels }} {{ toYaml .Values.portal.server.customLabels | nindent 4 }} {{- end }} spec: replicas: {{ .Values.portal.server.replicas }} {{- if .Values.portal.server.updateStrategy }} strategy: {{- toYaml .Values.portal.server.updateStrategy | nindent 4 }} {{- end }} selector: matchLabels: app.kubernetes.io/component: {{ include "litmus-portal.name" . }}-server template: metadata: labels: app.kubernetes.io/component: {{ include "litmus-portal.name" . }}-server {{- include "litmus-portal.labels" . | nindent 8 }} {{- if .Values.portal.server.customLabels }} {{ toYaml .Values.portal.server.customLabels | nindent 8 }} {{- end }} {{- if include "litmus-portal.podannotations.graphql-server" . }} annotations: {{- include "litmus-portal.podannotations.graphql-server" . | indent 8 }} {{- end}} spec: automountServiceAccountToken: {{ .Values.portal.server.graphqlServer.automountServiceAccountToken }} {{- if .Values.image.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.image.imagePullSecrets | indent 8 }} {{- end }} volumes: {{- toYaml .Values.portal.server.graphqlServer.volumes | default "" | nindent 8 }} {{- if .Values.internalTLS.enabled }} - name: graphql-server-internal-certs secret: secretName: {{ template "litmus-portal.internalTLS.graphqlServer.secretName" . }} {{- end }} initContainers: - name: wait-for-mongodb image: {{ .Values.image.imageRegistryName }}/{{ .Values.portal.server.waitForMongodb.image.repository }}:{{ .Values.portal.server.waitForMongodb.image.tag }} imagePullPolicy: {{ .Values.portal.server.waitForMongodb.image.pullPolicy }} command: ["/bin/bash", "-c"] env: - name: DB_PASSWORD {{- if .Values.mongodb.enabled }} {{- if not .Values.mongodb.auth.existingSecret }} value: {{ .Values.mongodb.auth.rootPassword | quote }} {{- else }} valueFrom: secretKeyRef: name: {{ .Values.mongodb.auth.existingSecret }} key: mongodb-root-password {{- end }} {{- else }} valueFrom: secretKeyRef: name: {{ include "litmus-portal.secretname" . }} key: DB_PASSWORD {{- end }} - name: DB_USER {{- if .Values.mongodb.enabled }} value: {{ .Values.mongodb.auth.rootUser }} {{- else }} valueFrom: secretKeyRef: name: {{ include "litmus-portal.secretname" . }} key: DB_USER {{- end }} - name: DB_SERVER valueFrom: configMapKeyRef: name: {{ include "litmus-portal.fullname" . }}-admin-config key: DB_SERVER args: [ "until [[ $(mongosh -u ${DB_USER} -p ${DB_PASSWORD} ${DB_SERVER} --eval 'rs.status()' | grep 'ok' | wc -l) -eq 1 ]]; do sleep 5; echo 'Waiting for the MongoDB to be ready...'; done; echo 'Connection with MongoDB established'", ] resources: {{- toYaml .Values.portal.server.waitForMongodb.resources | nindent 12 }} securityContext: {{- toYaml .Values.portal.server.waitForMongodb.securityContext | nindent 12 }} containers: - name: graphql-server image: {{ .Values.image.imageRegistryName }}/{{ .Values.portal.server.graphqlServer.image.repository }}:{{ .Values.portal.server.graphqlServer.image.tag }} volumeMounts: {{- toYaml .Values.portal.server.graphqlServer.volumeMounts | default "" | nindent 12 }} {{- if .Values.internalTLS.enabled }} - name: graphql-server-internal-certs mountPath: {{ .Values.internalTLS.certMountPath }} {{- end }} imagePullPolicy: {{ .Values.portal.server.graphqlServer.image.pullPolicy }} ports: {{- toYaml .Values.portal.server.graphqlServer.ports | nindent 12 }} resources: {{- toYaml .Values.portal.server.graphqlServer.resources | nindent 12 }} securityContext: {{- toYaml .Values.portal.server.graphqlServer.securityContext | nindent 12 }} envFrom: - secretRef: name: {{ include "litmus-portal.secretname" . }} - configMapRef: name: {{ include "litmus-portal.fullname" . }}-admin-config env: - name: DB_PASSWORD {{- if .Values.mongodb.enabled }} {{- if not .Values.mongodb.auth.existingSecret }} value: {{ .Values.mongodb.auth.rootPassword | quote}} {{- else }} valueFrom: secretKeyRef: name: {{ .Values.mongodb.auth.existingSecret }} key: mongodb-root-password {{- end }} {{- else }} valueFrom: secretKeyRef: name: {{ include "litmus-portal.secretname" . }} key: DB_PASSWORD {{- end }} - name: DB_USER {{- if .Values.mongodb.enabled }} value: {{ .Values.mongodb.auth.rootUser }} {{- else }} valueFrom: secretKeyRef: name: {{ include "litmus-portal.secretname" . }} key: DB_USER {{- end }} - name: LITMUS_AUTH_GRPC_ENDPOINT value: '{{ include "litmus-portal.fullname" . }}-auth-server-service' - name: "LITMUS_AUTH_GRPC_PORT" value: "{{ .Values.portal.server.authServer.service.authRpcServer.port }}" {{- if .Values.internalTLS.enabled }} - name: ENABLE_INTERNAL_TLS value: "true" - name: TLS_CERT_PATH value: "{{ .Values.internalTLS.certMountPath }}/tls.crt" - name: TLS_KEY_PATH value: "{{ .Values.internalTLS.certMountPath }}/tls.key" - name: CA_CERT_TLS_PATH value: "{{ .Values.internalTLS.certMountPath }}/ca.crt" {{- else }} - name: ENABLE_INTERNAL_TLS value: "false" {{- end }} - name: REST_PORT value: "{{ (index .Values.portal.server.graphqlServer.ports 0).containerPort }}" - name: GRPC_PORT value: "{{ (index .Values.portal.server.graphqlServer.ports 1).containerPort }}" - name: ALLOWED_ORIGINS value: "{{ .Values.allowedOrigins }}" {{- if has "gql-server" .Values.proxy.components }} - name: HTTP_PROXY value: "{{ .Values.proxy.httpProxy }}" - name: HTTPS_PROXY value: "{{ .Values.proxy.httpsProxy }}" - name: NO_PROXY value: "{{ .Values.proxy.noProxy }}" {{- end }} {{- $imageRegistry := .Values.image.imageRegistryName -}} {{- range $key, $val := .Values.portal.server.graphqlServer.imageEnv }} - name: {{ $key }} value: {{ $imageRegistry }}/{{ $val }} {{- end }} {{- range $key, $val := .Values.portal.server.graphqlServer.genericEnv }} - name: {{ $key }} value: {{ $val | quote }} {{- end }} {{- with .Values.portal.server.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.portal.server.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.portal.server.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}