clusterplex
clusterplex copied to clipboard
Working K8S deployment with helm
Wanted to post my working helm values file, since others who seem to get it working don't. My config:
4x Dell 5060/7060 boxes with either i5-8600 or i7-8700 processors running Talos Linux (1.6.9). This means Intel iGPU's (915). I have the intel driver operator installed in kubernetes as well. I'm actually using Traefik and cloudflare tunnel as ingresses, but did not want an ingress for Plex, so just changed the service to LoadBalancer type. My data drive is 250GB because I have chapter thumbnails turned on, would probably be 1/4-1/3 that if i turned it off.
global:
plexImage:
tag: 1.40.2
imagePullPolicy: IfNotPresent
timezone: America/Los_Angeles
sharedStorage:
transcode:
enabled: true
storageClass: "-"
existingClaim: plextranscode-pvc
subPath: "clusterplex"
media:
enabled: true
storageClass: "-"
existingClaim: plexmedia-pvc
additionalMediaVolumes:
cache:
enabled: true
existingClaim: clusterplex-cache-pvc
mountPath: /config/Library/Application Support/Plex Media Server/Cache
drivers:
enabled: true
existingClaim: clusterplex-drivers-pvc
mountPath: /config/Library/Application Support/Plex Media Server/Drivers
pms:
enabled: true
securityContext:
privileged: true
env:
FFMPEG_HWACCEL: vaapi
TRANSCODE_OPERATING_MODE: remote
PLEX_CLAIM:
valueFrom:
secretKeyRef:
name: plex-claim-token
key: claim_token
config:
transcoderVerbose: 1
transcodeOperatingMode: remote
version: docker
port: 32400
localRelayEnabled: true
relayPort: 32499
pmsIP: ""
serviceConfig:
type: LoadBalancer
externalTrafficPolicy:
annotations: {}
labels: {}
ingressConfig:
enabled: false
annotations:
{}
labels: {}
ingressClassName: # "nginx"
hosts:
- # -- Host address. Helm template can be passed.
host: chart-example.local
## Configure the paths for the host
paths:
- # -- Path. Helm template can be passed.
path: /
pathType: Prefix
service:
# -- Overrides the service name reference for this path
name:
# -- Overrides the service port reference for this path
port:
tls: []
configVolume:
enabled: true
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 250Gi
retain: true
healthProbes:
startup: true
readiness: true
liveness: true
resources:
requests:
# -- CPU Request amount
cpu: 2000m
# Memory Request Amount
memory: 2Gi
limits:
# -- CPU Limit amount
cpu: 4000m
# -- Memory Limit amount
memory: 4Gi
orchestrator:
enableGrafanaDashboard: true
prometheusServiceMonitor:
enabled: true
worker:
env:
FFMPEG_HWACCEL: vaapi
securityContext:
privileged: true
resources:
requests:
cpu: 2
memory: 3Gi
gpu.intel.com/i915: "1"
limits:
cpu: 4
memory: 4Gi
gpu.intel.com/i915: "1"
Few things: I'm running this on talos Linux, and needed priviliedged to see the gpus on my boxes (Dell 7060 Micro PC's with i5-8500 or i7-8700 processors). I'm using MetalLB to do BGP routing, so "LoadBalancer" gives me a static IP for the service so I can configure outside access. and per one of the other issues here, I found I had to share both the "drivers" and "cache" folders to the workers, hence using 2 extra PV's. I'm using a mixture of Ceph for the config storage and NFS mounts for Media, transcoding (sharing a optane drive over NFS) and the cache/drivers temp mount