122 lines
5.7 KiB
YAML
122 lines
5.7 KiB
YAML
{{- $globalTls := .Values.security.tls -}}
|
|
{{- $restTls := .Values.apis.rest.security.tls -}}
|
|
{{- $mutualAuth := dig "mutualAuth" $globalTls.mutualAuth $restTls -}}
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: {{ .Release.Name }}-api-rest
|
|
labels:
|
|
app: api-rest
|
|
{{ include "label_prefix" . }}/release: {{ .Release.Name }}
|
|
{{ include "label_prefix" . }}/version: {{ .Chart.Version }}
|
|
spec:
|
|
replicas: {{ .Values.apis.rest.replicaCount }}
|
|
selector:
|
|
matchLabels:
|
|
app: api-rest
|
|
{{ include "label_prefix" . }}/release: {{ .Release.Name }}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: api-rest
|
|
{{ include "label_prefix" . }}/release: {{ .Release.Name }}
|
|
{{ include "label_prefix" . }}/version: {{ .Chart.Version }}
|
|
{{ include "label_prefix" . }}/logging: "true"
|
|
{{- if $globalTls.enabled }}
|
|
annotations:
|
|
openebs.io/rest-tls: {{ include "rest_api_tls_annotation" . }}
|
|
{{- end }}
|
|
spec:
|
|
imagePullSecrets:
|
|
{{- include "base_pull_secrets" . }}
|
|
initContainers:
|
|
{{- include "base_init_containers" . }}
|
|
{{- if $pcName := include "priority_class_with_default" (dict "template" . "localPriorityClass" .Values.apis.rest.priorityClassName) }}
|
|
priorityClassName: {{ $pcName }}
|
|
{{- end }}
|
|
{{- if $nodeSelector := include "node_selector" (dict "template" . "localNodeSelector" .Values.apis.rest.nodeSelector) }}
|
|
nodeSelector: {{ $nodeSelector }}
|
|
{{- end }}
|
|
{{- if $tolerations := include "_tolerations_with_early_eviction" (dict "template" . "localTolerations" .Values.apis.rest.tolerations) }}
|
|
tolerations: {{ $tolerations }}
|
|
{{- end }}
|
|
containers:
|
|
- name: api-rest
|
|
resources:
|
|
limits:
|
|
cpu: {{ .Values.apis.rest.resources.limits.cpu | quote }}
|
|
memory: {{ .Values.apis.rest.resources.limits.memory | quote }}
|
|
requests:
|
|
cpu: {{ .Values.apis.rest.resources.requests.cpu | quote }}
|
|
memory: {{ .Values.apis.rest.resources.requests.memory | quote }}
|
|
image: "{{ default .Values.image.registry .Values.global.imageRegistry }}/{{ .Values.image.repo }}/{{ include "image_prefix" . }}-api-rest:{{ default .Values.image.tag .Values.image.repoTags.controlPlane }}"
|
|
imagePullPolicy: {{ default .Values.image.pullPolicy .Values.global.imagePullPolicy}}
|
|
args:
|
|
{{- if not $globalTls.enabled }}
|
|
- "--dummy-certificates"
|
|
- "--http=[::]:8081"
|
|
{{- else if and $globalTls.autoGenerated.enabled (eq $globalTls.autoGenerated.engine "pod") }}
|
|
- "--auto-tls"
|
|
- "--http-probes=[::]:8081"
|
|
{{- else }}
|
|
- "--http-probes=[::]:8081"
|
|
- "--tls-cert-file=/etc/tls/server/tls.crt"
|
|
- "--tls-key-file=/etc/tls/server/tls.key"
|
|
{{- if $mutualAuth }}
|
|
- "--tls-ca-file=/etc/tls/server/ca.crt"
|
|
{{- end }}
|
|
{{- end }}
|
|
- "--no-auth"
|
|
- "--request-timeout={{ .Values.base.default_req_timeout }}"{{ if .Values.base.jaeger.enabled }}
|
|
- "--jaeger={{ include "jaeger_url" . }}"{{ end }}
|
|
- "--core-grpc=https://{{ .Release.Name }}-agent-core:50051"
|
|
- "--ansi-colors={{ .Values.base.logging.color }}"
|
|
- "--fmt-style={{ include "logFormat" . }}"
|
|
{{- if .Values.apis.rest.healthProbes.readiness.enabled }}
|
|
- "--core-health-freq={{ .Values.apis.rest.healthProbes.readiness.agentCoreProbeFreq }}"
|
|
{{- end }}
|
|
ports:
|
|
- containerPort: 8080
|
|
{{- if not .Values.security.tls.enabled }}
|
|
- containerPort: 8081
|
|
{{- end }}
|
|
env:
|
|
- name: RUST_LOG
|
|
value: {{ .Values.apis.rest.logLevel }}
|
|
{{- if default .Values.base.logging.silenceLevel .Values.apis.rest.logSilenceLevel }}
|
|
- name: RUST_LOG_SILENCE
|
|
value: {{ default .Values.base.logging.silenceLevel .Values.apis.rest.logSilenceLevel }}
|
|
{{- end }}
|
|
{{- if .Values.apis.rest.healthProbes.readiness.enabled }}
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /ready
|
|
port: 8081
|
|
failureThreshold: {{ .Values.apis.rest.healthProbes.readiness.failureThreshold }}
|
|
initialDelaySeconds: {{ .Values.apis.rest.healthProbes.readiness.initialDelaySeconds }}
|
|
periodSeconds: {{ .Values.apis.rest.healthProbes.readiness.periodSeconds }}
|
|
timeoutSeconds: {{ .Values.apis.rest.healthProbes.readiness.timeoutSeconds }}
|
|
{{- end }}
|
|
{{- if .Values.apis.rest.healthProbes.liveness.enabled }}
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /live
|
|
port: 8081
|
|
failureThreshold: {{ .Values.apis.rest.healthProbes.liveness.failureThreshold }}
|
|
initialDelaySeconds: {{ .Values.apis.rest.healthProbes.liveness.initialDelaySeconds }}
|
|
periodSeconds: {{ .Values.apis.rest.healthProbes.liveness.periodSeconds }}
|
|
timeoutSeconds: {{ .Values.apis.rest.healthProbes.liveness.timeoutSeconds }}
|
|
{{- end }}
|
|
{{- if and $globalTls.enabled (or (not $globalTls.autoGenerated.enabled) (ne $globalTls.autoGenerated.engine "pod")) }}
|
|
volumeMounts:
|
|
- name: api-rest-ca-crt
|
|
mountPath: /etc/tls/server
|
|
readOnly: true
|
|
{{- end }}
|
|
{{- if and $globalTls.enabled (or (not $globalTls.autoGenerated.enabled) (ne $globalTls.autoGenerated.engine "pod")) }}
|
|
volumes:
|
|
- name: api-rest-ca-crt
|
|
secret:
|
|
secretName: {{ include "rest_api_tls_secret_name" . }}
|
|
{{- end }}
|