charts/datalore/templates/statefulset.yaml (195 lines of code) (raw):

apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "datalore.fullname" . }} labels: {{- include "datalore.labels" . | nindent 4 }} spec: replicas: 1 serviceName: {{ include "datalore.fullname" . }} selector: matchLabels: {{- include "datalore.selectorLabels" . | nindent 6 }} {{- with .Values.volumeClaimTemplates }} volumeClaimTemplates: {{- toYaml . | nindent 4 }} {{- end }} template: metadata: {{- with .Values.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: {{- include "datalore.selectorLabels" . | nindent 8 }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ include "datalore.serviceAccountName" . }} securityContext: {{- toYaml .Values.securityContext | nindent 8 }} containers: - name: datalore securityContext: {{- toYaml .Values.dataloreSecurityContext | nindent 12 }} image: "{{ .Values.serverImage.repository }}:{{ include "datalore.serverImage.version" . }}" imagePullPolicy: {{ .Values.serverImage.pullPolicy }} ports: - name: http containerPort: 8080 - name: http-internal containerPort: 8081 - name: agents-manager containerPort: {{ .Values.agentsManagerPort }} - name: computation containerPort: {{ .Values.computationPort }} - name: external-server containerPort: {{ .Values.externalServerPort }} livenessProbe: initialDelaySeconds: 120 httpGet: path: /health port: http env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: {{ include "datalore.databaseSecretName" . }} key: {{ quote .Values.databaseSecret.key }} - name: DATABASES_CONNECTION_CHECKER_K8S_YAML value: file:///opt/datalore/configs/databases/connection_checker.yaml - name: DATABASES_INTROSPECTION_K8S_YAML value: file:///opt/datalore/configs/databases/introspection.yaml - name: DATABASES_NAMESPACES_LOADER_K8S_YAML value: file:///opt/datalore/configs/databases/namespaces_loader.yaml - name: SQL_SESSION_K8S_YAML value: file:///opt/datalore/configs/databases/sql_session.yaml - name: GIT_FETCH_TASK_K8S_YAML value: file:///opt/datalore/configs/git/fetch_job.yaml - name: GIT_CLONE_TASK_K8S_YAML value: file:///opt/datalore/configs/git/clone_job.yaml - name: GIT_BACKUP_TASK_K8S_YAML value: file:///opt/datalore/configs/git/backup_job.yaml - name: GIT_DIFF_TASK_K8S_YAML value: file:///opt/datalore/configs/git/diff_job.yaml - name: DATALORE_NAMESPACE value: {{ .Release.Namespace }} - name: DATALORE_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name {{- if .Values.plansConfig }} - name: DATALORE_PLANS_CONFIGURATION value: file:///opt/datalore/configs/plans_config.yaml {{- end }} {{- if .Values.sqlCellsApiHost }} - name: SQL_CELLS_API_HOST value: {{ .Values.sqlCellsApiHost }} {{- end }} {{- if .Values.sqlCellsApiPort }} - name: SQL_CELLS_API_PORT value: {{ quote .Values.sqlCellsApiPort }} {{- end }} {{- if .Values.dataloreEnvRaw }} {{- toYaml .Values.dataloreEnvRaw | nindent 12 }} {{- end }} envFrom: - secretRef: name: {{ include "datalore.fullname" . }}-user-env {{- if .Values.dataloreEnvExternalSecret }} - secretRef: name: {{ .Values.dataloreEnvExternalSecret }} {{- end }} volumeMounts: - mountPath: /opt/datalore/configs/agents-config.yaml name: agents-config subPath: agents-config.yaml - mountPath: /opt/datalore/configs/databases name: databases-configs - mountPath: /opt/datalore/configs/git name: git-configs {{- if .Values.logbackConfig }} - mountPath: /opt/datalore/tomcat/conf/logback.xml name: logback-config subPath: logback.xml {{- end }} - mountPath: /opt/data name: storage {{- if .Values.customEnvs }} - mountPath: /opt/datalore/configs/environment_info name: envs {{- end }} {{- if .Values.plansConfig }} - mountPath: /opt/datalore/configs/plans_config.yaml name: plans-config subPath: plans_config.yaml {{- end }} {{- if .Values.volumeMounts }} {{- toYaml .Values.volumeMounts | nindent 12 }} {{- end }} resources: {{- toYaml .Values.dataloreResources | nindent 12 }} {{- if .Values.internalDatabase }} - name: postgres securityContext: {{- toYaml .Values.postgresSecurityContext | nindent 12 }} image: "{{ .Values.postgresImage.repository }}:{{ .Values.postgresImage.version }}" imagePullPolicy: {{ .Values.postgresImage.pullPolicy }} ports: - containerPort: 5432 env: - name: PGDATA value: /var/lib/postgresql/data/db-data - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: {{ include "datalore.databaseSecretName" . }} key: {{ quote .Values.databaseSecret.key }} volumeMounts: - mountPath: /var/lib/postgresql/data name: postgresql-data resources: {{- toYaml .Values.postgresResources | nindent 12 }} {{- end }} volumes: - name: agents-config configMap: name: {{ include "datalore.fullname" . }}-agents-config {{- if .Values.logbackConfig }} - name: logback-config configMap: name: {{ include "datalore.fullname" . }}-logback-config {{- end }} {{- if .Values.customEnvs }} - name: envs configMap: name: {{ include "datalore.fullname" . }}-envs-config {{- end }} {{- if .Values.plansConfig }} - name: plans-config configMap: name: {{ include "datalore.fullname" . }}-plans-config {{- end }} - name: databases-configs configMap: name: {{ include "datalore.fullname" . }}-databases-config - name: git-configs configMap: name: {{ include "datalore.fullname" . }}-git-config {{- if .Values.volumes }} {{- toYaml .Values.volumes | nindent 8 }} {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}