Files
helm-charts/charts/tdarr/templates/deployment.yaml
2024-03-16 09:29:07 -06:00

163 lines
5.4 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: tdarr-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: tdarr-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: tdarr-server
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.server.replicas }}
strategy:
type: {{ .Values.server.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: tdarr-server
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: tdarr-server
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
automountServiceAccountToken: true
containers:
- name: tdarr-server
image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}"
imagePullPolicy: {{ .Values.server.image.pullPolicy }}
ports:
- name: api
containerPort: {{ .Values.server.service.api.port }}
protocol: TCP
- name: web
containerPort: {{ .Values.server.service.web.port }}
protocol: TCP
env:
{{- with (concat .Values.global.env .Values.server.env) }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: internalNode
value: "false"
- name: inContainer
value: "true"
- name: nodeName
value: tdarr-server
- name: serverIP
value: 0.0.0.0
- name: serverPort
value: "{{ .Values.server.service.api.port }}"
- name: webUIPort
value: "{{ .Values.server.service.web.port }}"
volumeMounts:
- name: tdarr-server-config
mountPath: /app/configs
- name: tdarr-server-server
mountPath: /app/server
- name: tdarr-server-cache
mountPath: /tcache
- name: media-storage
mountPath: {{ .Values.global.persistence.media.mountPath }}
resources:
{{- toYaml .Values.server.resources | nindent 12 }}
livenessProbe:
tcpSocket:
port: {{ .Values.server.service.api.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
tcpSocket:
port: {{ .Values.server.service.api.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
tcpSocket:
port: {{ .Values.server.service.api.port }}
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
volumes:
- name: tdarr-server-config
persistentVolumeClaim:
claimName: tdarr-server-config
- name: tdarr-server-server
persistentVolumeClaim:
claimName: tdarr-server-server
- name: tdarr-server-cache
emptyDir:
sizeLimit: {{ .Values.node.persistence.cache.size }}
- name: media-storage
persistentVolumeClaim:
claimName: {{ .Values.global.persistence.media.claimName }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tdarr-node
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: tdarr-node
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: tdarr-node
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.node.replicas }}
strategy:
type: {{ .Values.node.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: tdarr-node
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: tdarr-node
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
automountServiceAccountToken: true
containers:
- name: tdarr-node
image: "{{ .Values.node.image.repository }}:{{ .Values.node.image.tag }}"
imagePullPolicy: {{ .Values.node.image.pullPolicy }}
env:
{{- with (concat .Values.global.env .Values.node.env) }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: inContainer
value: "true"
- name: nodeName
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: serverIP
value: tdarr-server-api
- name: serverPort
value: "{{ .Values.server.service.api.port }}"
volumeMounts:
- name: tdarr-node-cache
mountPath: /tcache
- name: media-storage
mountPath: {{ .Values.global.persistence.media.mountPath }}
resources:
{{- toYaml .Values.node.resources | nindent 12 }}
volumes:
- name: tdarr-node-cache
emptyDir:
sizeLimit: {{ .Values.node.persistence.cache.size }}
- name: media-storage
persistentVolumeClaim:
claimName: {{ .Values.global.persistence.media.claimName }}