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