values.yaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. # Default values
  2. # This is a YAML-formatted file.
  3. # Declare variables to be passed into your templates.
  4. # The Image to use for PLEX
  5. image:
  6. repository: plexinc/pms-docker
  7. tag: 1.20.2.3402-0fec14d92
  8. pullPolicy: IfNotPresent
  9. ##### START --> Official PLEX container environment variables
  10. # Override this with the plex claim token from plex.tv/claim
  11. claimToken: ""
  12. # Set the timezone of the plex server
  13. timezone: "UTC"
  14. # add your pod network subnet to the `List of IP addresses and networks that are allowed without auth`
  15. # This will override the manual settings, so only use this if you will not need to change it manually.
  16. # This list will be automatically converted to a command seperated string when passed to the container.
  17. # You would specify this when using helm CLI with --set allowedNetworks="{127.0.0.1,10.54.2.0/24}"
  18. # allowedNetworks:
  19. # - 127.0.0.1
  20. # - 10.54.2.0/24
  21. # Instruct the Plex Media Server Container to Change the Configuration Directory Ownership
  22. # Default is true, you would only need to set this if you want to disable it.
  23. # changeConfigDirOwnership: true
  24. # advertiseIp This variable defines the additional IPs on which the server may be be found.
  25. # For example: http://10.1.1.23:32400.
  26. # This adds to the list where the server advertises that it can be found.
  27. # See https://hub.docker.com/r/plexinc/pms-docker/ for details
  28. # advertiseIp: "http://10.1.1.23:32400"
  29. # Set The user id of the plex user created inside the container.
  30. # See https://hub.docker.com/r/plexinc/pms-docker/ for details
  31. # plexUid: 1000
  32. # Set The group id of the plex group created inside the container
  33. # See https://hub.docker.com/r/plexinc/pms-docker/ for details
  34. # plexGid: 1000
  35. ##### END --> Official PLEX container environment variables
  36. # You can add as many Additional ENV variables here
  37. # The following is the same as --set extraEnv.TMPDIR="/transcode"
  38. # extraEnv:
  39. # TMPDIR: /transcode
  40. # upgrade strategy type (e.g. Recreate or RollingUpdate)
  41. strategyType: Recreate
  42. imagePullSecrets: []
  43. nameOverride: ""
  44. fullnameOverride: ""
  45. podSecurityContext: {}
  46. # fsGroup: 2000
  47. securityContext: {}
  48. # capabilities:
  49. # drop:
  50. # - ALL
  51. # readOnlyRootFilesystem: true
  52. # runAsNonRoot: true
  53. # runAsUser: 1000
  54. serviceTCP:
  55. type: ClusterIP
  56. port: 32400
  57. ## Specify the nodePort value for the LoadBalancer and NodePort service types.
  58. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  59. ##
  60. # nodePort:
  61. ## Provide any additional annotations which may be required. This can be used to
  62. ## set the LoadBalancer service type to internal only.
  63. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  64. ##
  65. annotations: {}
  66. # metallb.universe.tf/allow-shared-ip: plex-svc
  67. labels: {}
  68. ## Use loadBalancerIP to request a specific static IP,
  69. ## otherwise leave blank
  70. ##
  71. loadBalancerIP:
  72. # loadBalancerSourceRanges: []
  73. ## Set the externalTrafficPolicy in the Service to either Cluster or Local
  74. # externalTrafficPolicy: Cluster
  75. serviceUDP:
  76. type: ClusterIP
  77. ## Provide any additional annotations which may be required. This can be used to
  78. ## set the LoadBalancer service type to internal only.
  79. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  80. ##
  81. annotations: {}
  82. # metallb.universe.tf/allow-shared-ip: plex-svc
  83. labels: {}
  84. ## Use loadBalancerIP to request a specific static IP,
  85. ## otherwise leave blank
  86. ##
  87. loadBalancerIP:
  88. # loadBalancerSourceRanges: []
  89. ## Set the externalTrafficPolicy in the Service to either Cluster or Local
  90. # externalTrafficPolicy: Cluster
  91. ingress:
  92. enabled: false
  93. annotations: {}
  94. # kubernetes.io/ingress.class: nginx
  95. # kubernetes.io/tls-acme: "true"
  96. path: /
  97. hosts:
  98. - chart-example.local
  99. tls: []
  100. # - secretName: chart-example-tls
  101. # hosts:
  102. # - chart-example.local
  103. plexPreferences:
  104. # Enable init script that will read all environment variables starting with PLEX_PREFERENCE_
  105. # and take the value (of PLEX_PREFERENCE_<whatever>) as the Key:Value option to set in Plex Preference.xml
  106. # You can use extraEnv to add the addtional ENV's to the container.
  107. # NOTE: Plex preference options are camelCase and CASE SENSITIVE!
  108. # You can do horrible things to your PLEX configuration if you are not careful.
  109. # --set extraEnv.PLEX_PREFERENCE_1="FriendlyName=plex-kubeernetes-test1" `
  110. # --set extraEnv.PLEX_PREFERENCE_2="EnableIPv6=0" `
  111. # --set extraEnv.PLEX_PREFERENCE_3="logDebug=0" `
  112. # --set extraEnv.PLEX_PREFERENCE_4="DisableTLSv1_0=1" `
  113. # --set extraEnv.PLEX_PREFERENCE_5="LanNetworksBandwidth=xxx.xxx.xxx.0/18\,xxx.xxx.xxx.0/24\,xxx.xxx.xxx.0/24" `
  114. # --set extraEnv.PLEX_PREFERENCE_6="TranscoderQuality=2" `
  115. # --set extraEnv.PLEX_PREFERENCE_7="TreatWanIpAsLocal=0" `
  116. # --set extraEnv.PLEX_PREFERENCE_8="TranscoderH264BackgroundPreset=fast"
  117. # Why not use a single ENV?
  118. # I thought using multiple environment variables would be less confusing
  119. # It should work easily with CLI and value.yaml usage
  120. # There is only minimal parsing required on the ENV value, as the only deliminator is =
  121. # From what I can see, all the PLEX preferences that are NOT currently supported by the OFFICIAL
  122. # Container are simple enough to work with this.
  123. enabled: false
  124. configmap:
  125. labels: {}
  126. annotations: {}
  127. # Right now you can't really change this, additionally the configmap data is
  128. # not configurable.
  129. name: 41-plex-preferences
  130. volume:
  131. name: 41-plex-preferences
  132. defaultMode: 493 # 0755 in octal permission notation
  133. # Using mountPath & SubPath allow you to volume mount a configMap AS A FILE
  134. # Unfortunately this also means that updates to the configMap are not automtically
  135. # propagated to the file contents. But it's better then replacing the entire
  136. # /etc/cont-init.d/ directory which is the "normal" behavior when doing volume
  137. # mounts.
  138. mountPath: /etc/cont-init.d/41-plex-preferences
  139. subPath: 41-plex-preferences
  140. hostNetwork: false
  141. persistence:
  142. transcode:
  143. # We want to enable a transcode pvc
  144. enabled: false
  145. # Optionally specify claimName to manually override the PVC to be used for
  146. # the transcode directory. If claimName is specified, storageClass and size
  147. # are ignored.
  148. ## claimName: "plex-transcode-pvc"
  149. # Optionally specify a storage class to be used for the transcode directory.
  150. # If not specified and claimName is not specified, the default storage
  151. # class will be used.
  152. storageClass: ""
  153. # subPath: some-subpath
  154. # The requested size of the volume to be used when creating a
  155. # PersistentVolumeClaim.
  156. size: 20Gi
  157. # Access mode for this volume
  158. accessMode: ReadWriteOnce
  159. # If not using a transcode PVC, specify emptyDir.medium="Memory" to use a tmpfs (in-memory)
  160. # Volume for /transcode. Warning! this will greatly increase the amount of memory the plex pod is using
  161. # AND it will count toward any ram pod/namespace limits. Additionally all data will be lost if/when the
  162. # pod is moved to another node. --set persistence.transcode.emptyDir.medium="Memory" `
  163. emptyDir:
  164. medium: ""
  165. # medium: "Memory"
  166. data:
  167. # We want to enable a data pvc
  168. enabled: true
  169. # Optionally specify claimName to manually override the PVC to be used for
  170. # the data directory. If claimName is specified, storageClass and size are
  171. # ignored.
  172. ## claimName: "plex-data-pvc"
  173. # Optionally specify a storage class to be used for the data directory.
  174. # If not specified and claimName is not specified, the default storage
  175. # class will be used.
  176. storageClass: ""
  177. # subPath: some-subpath
  178. # The requested size of the volume to be used when creating a
  179. # PersistentVolumeClaim.
  180. size: 40Gi
  181. # Access mode for this volume
  182. accessMode: ReadWriteOnce
  183. extraData: []
  184. # Optionally specifify additional Data mounts. These will be mounted as
  185. # /data-${name}. This should be in the same format as the above 'data',
  186. # with the additional field 'name'
  187. # - claimName: "special-tv"
  188. # name: 'foo'
  189. # subPath: optional/sub/path
  190. extraMounts: []
  191. ## Include additional claims that can be mounted inside the
  192. ## pod. This is useful if you wish to use different paths with categories
  193. ## Claim will me mounted as /{mountPath} if specified. If no {mountPath} is given,
  194. ## mountPath will default to {name}
  195. # - name: video
  196. # # if claimName is specified the a new volume will mounted, if omitted the mount will be considered to be associated with one of the standard volumes (e.g data, config, transcode).
  197. # # This useful to mount data to a different subPath
  198. # claimName: optional-claim
  199. # mountPath: /mnt/path/in/pod
  200. # subPath: optional/sub/path
  201. config:
  202. # Optionally specify claimName to manually override the PVC to be used for
  203. # the config directory. If claimName is specified, storageClass and size
  204. # are ignored.
  205. ## claimName: "plex-config-pvc"
  206. # Optionally specify a storage class to be used for the config directory.
  207. # If not specified and claimName is not specified, the default storage
  208. # class will be used.
  209. # subPath: some-subpath
  210. storageClass: ""
  211. # The requested size of the volume to be used when creating a
  212. # PersistentVolumeClaim.
  213. size: 20Gi
  214. # Access mode for this volume
  215. accessMode: ReadWriteOnce
  216. # Certificate(s) in Plex
  217. certificate:
  218. # Assuming you have a kubernetes certificate secret (say from cert-manager) that has a tls.crt and tls.key but NO PFX!
  219. # pkcsMangler to the rescue. The pkcsMangler part will add the supplied pfxPassword to a kubernetes secret
  220. # This is so it's not in the clear in the YAML of the deployment in the kubernetes api.
  221. # We will then use an OpenSSL init container to create a pfx file using the supplied secret (only available in container)
  222. # Then we will use an init script (via configMap) to move the pfx file out of /shared (it's temporary storage) to
  223. # the location specified in pfxInContainerPath.
  224. pkcsMangler:
  225. enabled: false
  226. # The Image to use for pkcsMangler
  227. image:
  228. repository: tlsprint/openssl
  229. tag: 1.1.1f
  230. configmap:
  231. labels: {}
  232. annotations: {}
  233. # Right now you can't really change this, additionally the configmap data is
  234. # not configurable.
  235. name: 42-pkcs-mangler
  236. volume:
  237. name: 42-pkcs-mangler
  238. defaultMode: 493 # 0755 in octal permission notation
  239. # Using mountPath & SubPath allow you to volume mount a configMap AS A FILE
  240. # Unfortunately this also means that updates to the configMap are not automtically
  241. # propagated to the file contents. But it's better then replacing the entire
  242. # /etc/cont-init.d/ directory which is the "normal" behavior when doing volume
  243. # mounts.
  244. mountPath: /etc/cont-init.d/42-pkcs-mangler
  245. subPath: 42-pkcs-mangler
  246. setPlexPreferences:
  247. enabled: true # Set Plex Preferences related to Certificates
  248. customCertificateDomain: "" # If not empty, Set the Plex Preference customCertificateDomain
  249. # Use spec.certificate.pkcsMangler.pfxPassword.value to Set the Plex Preference customCertificateKey
  250. # Use spec.certificate.pkcsMangler.pfxInContainerPath to Set the Plex Preference customCertificatePath
  251. pfxPassword:
  252. value: "setpassword"
  253. # We wlll create a Kubernetes Secret for spec.certificate.pkcsMangler.pfxPassword.value
  254. # These are your options.
  255. secretName: "plex-media-server-pfx-password"
  256. passwordKey: "pfx-password"
  257. labels: {}
  258. annotations: {}
  259. pfxInContainerPath: "/config/plex.pfx" # This is full path in the container pkcsMangler will copy the pfx file to
  260. # This is the SSL Certificate Secret that will provide our crt and key file. If you used cert-manager to create
  261. # the certificate, these defaults should work for you. This Secret (and volume details) are only used by the
  262. # pkcsMangler Init Container.
  263. certificateSecret:
  264. name: ""
  265. keyName: "tls.key"
  266. crtName: "tls.crt"
  267. volume:
  268. name: plex-certs
  269. mountPath: /etc/plex-certs
  270. # Logging configuration
  271. logging:
  272. promtail:
  273. enabled: false
  274. image:
  275. repository: grafana/promtail
  276. tag: 1.6.0
  277. pullPolicy: IfNotPresent
  278. loki:
  279. url: http://loki.logs.svc.cluster.local:3100/loki/api/v1/push
  280. # Probes configuration
  281. probes:
  282. liveness:
  283. failureThreshold: 5
  284. periodSeconds: 10
  285. readiness:
  286. failureThreshold: 5
  287. periodSeconds: 10
  288. startup:
  289. initialDelaySeconds: 5
  290. failureThreshold: 30
  291. periodSeconds: 10
  292. resources: {}
  293. # We usually recommend not to specify default resources and to leave this as a conscious
  294. # choice for the user. This also increases chances charts run on environments with little
  295. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  296. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  297. # limits:
  298. # cpu: 100m
  299. # memory: 128Mi
  300. # requests:
  301. # cpu: 100m
  302. # memory: 128Mi
  303. nodeSelector: {}
  304. tolerations: []
  305. affinity: {}
  306. podAnnotations: {}
  307. deploymentAnnotations: {}
  308. proxy:
  309. # This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover
  310. enabled: false
  311. # http: "http://proxy:8080"
  312. # https: "https://proxy:8080"
  313. # noproxy: "localhost,127.0.0.1,10.96.0.0/12,10.244.0.0/12"