kubernetes/apps/media/plex/app/helmrelease.yaml
1
---
2
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s-labs/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
3
apiVersion: helm.toolkit.fluxcd.io/v2
4
kind: HelmRelease
5
metadata:
6
name: plex
7
spec:
8
chartRef:
9
kind: OCIRepository
10
name: plex
11
interval: 1h
12
values:
13
controllers:
14
plex:
15
annotations:
16
reloader.stakater.com/auto: "true"
17
containers:
18
app:
19
image:
20
repository: ghcr.io/home-operations/plex-next
21
tag: 1.43.3.10896@sha256:bbf0f4390ab8fb68ada361c41f43c7b906c9879f15331210bc59bfd732fd9144
22
env:
23
PLEX_ADVERTISE_URL: https://plex.janpuc.com:443,http://192.168.69.60:32400,http://plex.media.svc.cluster.local:32400
24
PLEX_NO_AUTH_NETWORKS: 192.168.69.0/24
25
probes:
26
liveness:
27
enabled: true
28
spec:
29
periodSeconds: 30
30
timeoutSeconds: 5
31
failureThreshold: 5
32
readiness:
33
enabled: true
34
custom: true
35
spec:
36
httpGet:
37
path: /identity
38
port: &port 32400
39
periodSeconds: 10
40
timeoutSeconds: 5
41
failureThreshold: 5
42
startup:
43
enabled: true
44
spec:
45
failureThreshold: 30
46
periodSeconds: 10
47
securityContext:
48
allowPrivilegeEscalation: false
49
readOnlyRootFilesystem: true
50
capabilities: { drop: ["ALL"] }
51
resources:
52
claims:
53
- name: gpu
54
requests:
55
cpu: 100m
56
memory: 1Gi
57
limits:
58
memory: 8Gi
59
defaultPodOptions:
60
resourceClaims:
61
- name: gpu
62
resourceClaimTemplateName: plex-gpu
63
securityContext:
64
runAsNonRoot: true
65
runAsUser: 1000
66
runAsGroup: 1000
67
fsGroup: 1000
68
fsGroupChangePolicy: OnRootMismatch
69
service:
70
app:
71
type: LoadBalancer
72
annotations:
73
lbipam.cilium.io/ips: 192.168.69.60
74
externalTrafficPolicy: Cluster
75
ports:
76
http:
77
port: *port
78
route:
79
app:
80
annotations:
81
gatus.home-operations.com/endpoint: |-
82
path: /identity
83
hostnames:
84
- "{{ .Release.Name }}.janpuc.com"
85
parentRefs:
86
- name: envoy-external
87
namespace: network
88
rules:
89
- backendRefs:
90
- identifier: app
91
port: *port
92
filters:
93
- type: RequestHeaderModifier
94
requestHeaderModifier:
95
remove:
96
- Range
97
matches:
98
- path:
99
type: PathPrefix
100
value: /library/streams
101
- backendRefs:
102
- identifier: app
103
port: *port
104
persistence:
105
config:
106
existingClaim: "{{ .Release.Name }}"
107
media:
108
type: nfs
109
server: bigmouth.internal
110
path: /mnt/Vault/Media
111
globalMounts:
112
- path: /media
113
readOnly: true
114
tmpfs:
115
type: emptyDir
116
advancedMounts:
117
plex:
118
app:
119
- path: /config/Library/Application Support/Plex Media Server/Logs
120
subPath: logs
121
- path: /transcode
122
subPath: transcode
123
- path: /tmp
124
subPath: tmp