Files
2019-12-01 12:23:04 -08:00

141 lines
5.2 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "cloudserver.fullname" . }}
labels:
app: {{ template "cloudserver.name" . }}
chart: {{ template "cloudserver.chart" . }}
component: api
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
{{- if not .Values.api.autoscaling.enabled }}
replicas: {{ .Values.api.replicaCount }}
{{- end }}
selector:
matchLabels:
app: {{ template "cloudserver.name" . }}
component: api
release: {{ .Release.Name }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/api-configmap.yaml") . | sha256sum }}
labels:
app: {{ template "cloudserver.name" . }}
component: api
release: {{ .Release.Name }}
spec:
serviceAccountName: {{ template "cloudserver.serviceAccountName.api" . }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
terminationMessagePolicy: FallbackToLogsOnError
ports:
- name: http
containerPort: 8000
env:
- name: REMOTE_MANAGEMENT_DISABLE
value: "1"
{{- range $key, $value := .Values.env }}
- name: {{ $key | upper | replace "." "_" }}
value: {{ $value | quote }}
{{- end }}
- name: S3METADATA
value: "mongodb"
- name: MONGODB_HOSTS
value: "{{ template "mongodb-replicaset.url" . }}"
- name: MONGODB_RS
value: "{{ default "rs0" (index .Values "mongodb-replicaset" "replicaSet") }}"
- name: S3_LOCATION_FILE
value: "/etc/config/locationConfig.json"
- name: DATA_HOST
value: {{ template "cloudserver.localdata.fullname" . }}
- name: REDIS_HOST
value: "{{- printf "%s-%s" .Release.Name "redis-ha" | trunc 63 | trimSuffix "-" -}}"
- name: REDIS_PORT
value: "6379"
- name: REDIS_SENTINELS
value: "{{ template "redis-ha.url" . }}"
- name: REDIS_HA_NAME
value: "{{ index .Values "redis-ha" "redis" "masterGroupName" }}"
- name: LOG_LEVEL
value: {{ .Values.api.logLevel }}
- name: ENDPOINT
value: "{{ template "cloudserver.fullname" . }},{{ .Values.api.endpoint }}"
- name: HEALTHCHECKS_ALLOWFROM
value: "0.0.0.0/0"
{{- if .Values.api.proxy.http }}
- name: http_proxy
value: "{{ .Values.api.proxy.http }}"
- name: HTTP_PROXY
value: "{{ .Values.api.proxy.http }}"
- name: https_proxy
value: "{{- if .Values.api.proxy.https }}{{ .Values.api.proxy.https }}{{- else }}{{ .Values.api.proxy.http }}{{- end }}"
- name: HTTPS_PROXY
value: "{{- if .Values.api.proxy.https }}{{ .Values.api.proxy.https }}{{- else }}{{ .Values.api.proxy.http }}{{- end }}"
{{- else if .Values.api.proxy.https }}
- name: https_proxy
value: "{{ .Values.api.proxy.https }}"
- name: HTTPS_PROXY
value: "{{ .Values.api.proxy.https }}"
{{- end }}
{{- if .Values.api.proxy.caCert }}
- name: NODE_EXTRA_CA_CERTS
value: "/ssl/ca.crt"
{{- end }}
{{- if .Values.api.proxy.no_proxy }}
- name: no_proxy
value: "{{ .Values.api.proxy.no_proxy }}"
- name: NO_PROXY
value: "{{ .Values.api.proxy.no_proxy }}"
{{- end }}
- name: SCALITY_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: {{ template "cloudserver.fullname" . }}
key: accessKey
- name: SCALITY_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: {{ template "cloudserver.fullname" . }}
key: secretKey
args: ['npm', 'run', 'start_s3server']
livenessProbe:
httpGet:
path: /_/healthcheck
port: http
initialDelaySeconds: 60
volumeMounts:
- name: location-config
mountPath: /etc/config
{{- if .Values.api.proxy.caCert }}
- name: proxy-cert
mountPath: "/ssl"
readOnly: true
{{- end }}
resources:
{{ toYaml .Values.api.resources | indent 12 }}
{{- with .Values.api.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- if .Values.api.affinity }}
affinity:
{{ toYaml .Values.api.affinity | indent 8 }}
{{- end }}
{{- with .Values.api.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
volumes:
- name: location-config
configMap:
name: {{ template "cloudserver.fullname" . }}
{{- if .Values.api.proxy.caCert }}
- name: proxy-cert
secret:
secretName: {{ template "cloudserver.fullname" . }}-cacert
{{- end }}