video-iac/k8s/webrtc-be/templates/deployment.yml

87 lines
2.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: webrtc-be
namespace: webrtc-be
labels:
app: webrtc-be
app.kubernetes.io/name: webrtc-be
app.kubernetes.io/component: backend
spec:
selector:
matchLabels:
app: webrtc-be
replicas: 1
template:
metadata:
generateName: webrtc-be-
labels:
app: webrtc-be
app.kubernetes.io/name: webrtc-be
app.kubernetes.io/component: backend
spec:
hostNetwork: true
imagePullSecrets:
- name: gcr-json-key
containers:
- name: webrtc-be
image: gcr.io/tough-craft-276813/webrtc_be:{{ .Values.webrtc_tag }}
imagePullPolicy: Always
#resources:
#requests:
# memory: "3800Mi"
# cpu: "1200m"
#limits:
# memory: "3800Mi"
env:
- name: RTC_MIN_PORT
value: "30000"
- name: RTC_MAX_PORT
value: "32768"
- name: BACKEND_URL
value: {{ .Values.backendUrl }}
{{ if .Values.auth }}
- name: RESTRICT_AUTH
value: "true"
{{ end }}
- name: ENABLE_DIE_ENDPOINT
value: "{{ .Values.enableDieEndpoint }}"
- name: MEDIASOUP_LISTEN_IP
value: {{ .Values.mediasoup.listenIp | default "0.0.0.0" | quote }}
- name: MEDIASOUP_ANNOUNCED_IP
value: {{ .Values.mediasoup.announcedIp | default "" | quote }}
- name: MEDIASOUP_USE_NETWORK_INTERFACE_IP
value: {{ .Values.mediasoup.useNetworkInterfaceIP | default "false" | quote }}
- name: SESSION_HEALTH_CHECK_INTERVAL
value: {{ .Values.sessionHealthCheckInterval | default "60000" | quote }}
- name: SESSION_OVER_GRACE_PERIOD
value: {{ .Values.sessionOverGracePeriod | default "300000" | quote }}
ports:
- name: websocket-port
containerPort: 5001
livenessProbe:
httpGet:
path: /healthcheck
port: 5001
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
readinessProbe:
httpGet:
path: /healthcheck
port: 5001
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3