Files
openebs/charts/mayastor/templates/mayastor/apis/api-rest-deployment.yaml
T

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 }}