Files
peanutflix/values.yaml
2025-12-11 08:28:18 +11:00

337 lines
10 KiB
YAML

# -- The docker image information for the pms application
image:
# -- The public dockerhub registry
registry: index.docker.io
repository: plexinc/pms-docker
# renovate: datasource=custom.plex depName=plex versioning=loose
tag: "1.42.2.10156-f737b826c"
sha: ""
pullPolicy: IfNotPresent
global:
# -- Allow parent charts to override registry hostname
imageRegistry: ""
# -- Optional DNS configuration for the Pod
dnsConfig: {}
# -- Specifies the Pod's DNS policy. Default is typically 'ClusterFirst'.
# If 'hostNetwork: true' is used, you may need to set this to 'ClusterFirstWithHostNet'.
# Allowed values are ClusterFirst, Default, None, or ClusterFirstWithHostNet.
dnsPolicy:
# -- Set to true to run the Pod in the host's network namespace.
# This may be required for specific networking setups or accessing local resources.
hostNetwork: false
ingress:
# -- Specify if an ingress resource for the pms server should be created or not
enabled: false
# -- The ingress class that should be used
ingressClassName: "openshift-default"
# -- The url to use for the ingress reverse proxy to point at this pms instance
url: "peanutflix.apilab.us"
# -- Optional TLS configuration to provide valid https connections
# using an existing SSL certificate
tls:
- hosts:
- peanutflix.apilab.us
secretName: peanutflix-tls
# -- Custom annotations to put on the ingress resource
annotations:
kubernetes.io/tls-acme: "true"
cert-manager.io/cluster-issuer: "letsencrypt-dns01-cloudflare"
pms:
# -- The storage class to use when provisioning the pms config volume
# this needs to be created manually, null will use the default
storageClassName: local-nvme-retain
# -- The volume size to provision for the PMS database
configStorage: 2Gi
# -- Name of an existing `PersistentVolumeClaim` for the PMS database
# NOTE: When set, 'configStorage' and 'storageClassName' are ignored.
#configExistingClaim: "plex-config"
# Providing both name and key will add in the PLEX_CLAIM environment variable
# with the correct secretKeyRef configuration
# Clashes with providing PLEX_CLAIM via `extraEnv` so only provide one or the other!
claimSecret:
name: ""
key: ""
# Enabling this will add nvidia.com/gpu: 1 to limits, and will set
# environment for the nvidia operator
gpu:
nvidia:
enabled: false
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
#limits:
# amd.com/gpu: 1
# -- Security context for PMS pods
securityContext: {}
containerSecurityContext:
runAsNonRoot: true
allowPrivilegeEscalation: false
seccompProfile:
type: RuntimeDefault
capabilities:
drop:
- ALL
# -- Enable process namespace sharing within the pod.
shareProcessNamespace: false
# -- Add kubernetes liveness probe to pms container.
livenessProbe:
{}
# httpGet:
# path: /identity
# port: 32400
# initialDelaySeconds: 60
# periodSeconds: 60
# timeoutSeconds: 1
# failureThreshold: 3
# -- Add kubernetes readiness probe to pms container.
readinessProbe:
{}
# httpGet:
# path: /identity
# port: 32400
# initialDelaySeconds: 60
# periodSeconds: 60
# timeoutSeconds: 1
# failureThreshold: 3
# -- A basic image that will convert the configmap to a file in the rclone config volume
# this is ignored if rclone is not enabled
initContainer:
image:
# -- The public dockerhub registry
registry: index.docker.io
repository: alpine
# -- If unset use latest
tag: "3.22"
sha: ""
pullPolicy: IfNotPresent
# -- A custom script that will be run in an init container to do any setup before the PMS service starts up
# This will be run every time the pod starts, make sure that some mechanism is included to prevent
# this from running more than once if it should only be run on the first startup.
#script: ""
#script: |-
#!/bin/sh
#chmod 777 /var/run/s6
###
### Example init script that will import a pre-existing pms database if one has not already been setup
### This pms database must be available through a URL (or some other mechanism to be pulled into the container)
# script: |-
# #!/bin/sh
# echo "fetching pre-existing pms database to import..."
#
# if [ -d "/config/Library" ]; then
# echo "PMS library already exists, exiting."
# exit 0
# fi
#
# apk --update add curl
# curl http://example.com/pms.tgz -o pms.tgz
# tar -xvzf pms.tgz -C /config
# cp -r /config/data/Library /config/Library
# rm -rf /config/data pms.tgz
#
# echo "Done."
extraInitContainers: {}
# extraContainers:
# - name: <container name>
# args:
# - ...
# image: <docker images>
# imagePullPolicy: IfNotPresent
# resources:
# limits:
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# volumeMounts:
# - ...
# -- Specify your own runtime class name eg use gpu
runtimeClassName: ""
# -- The settings specific to rclone
rclone:
# -- If the rclone sidecar should be created
enabled: false
# -- The rclone image that should be used
image:
# -- The public dockerhub registry
registry: index.docker.io
repository: rclone/rclone
# -- If unset use latest
tag: 1.70.3
sha: ""
pullPolicy: IfNotPresent
# -- The name of the secret that contains the rclone configuration file.
# The rclone config key must be called `rclone.conf` in the secret
#
# All keys in configSecret will be available in /etc/rclone/. This might
# be useful if other files are needed, such as a private key for sftp mode.
configSecret: ""
# -- The remote drive that should be mounted using rclone
# this must be in the form of `name:[/optional/path]`
# this remote will be mounted at `/data/name` in the PMS container
remotes: []
# -- If the remote volumes should be mounted as read only
readOnly: true
# -- Additional arguments to give to rclone when mounting the volume
additionalArgs: []
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# -- Specifies whether a service account should be created
create:
# -- If the service account token should be auto mounted
automountServiceAccountToken: false
# -- Annotations to add to the service account
annotations: {}
# -- The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "peanutflix-sa"
statefulSet:
# -- Optional extra annotations to add to the service resource
annotations: {}
# -- Optional extra annotations to add to the pods in the statefulset
podAnnotations: {}
service:
type: NodePort
port: 32400
# -- Deprecated: Pre-defined IP address of the PMS service.
# Used by cloud providers to connect the resulting load balancer service to a
# pre-existing static IP.
# Users are encouraged to use implementation-specific annotations when available instead.
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
# loadBalancerIP: ""
# Port to use when type of service is "NodePort" (32400 by default)
nodePort: 32400
# when NodePort is used, plex is unable to determine user IP
# all traffic seems to come from within the cluster
# setting this to 'Local' will allow Plex to determine the actual IP of user.
# used to determine bitrate for remote transcoding
# but the pods can only be accessed by the Node IP where the pod is running
# Read more here: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
# https://access.redhat.com/solutions/7028639
# externalTrafficPolicy: Local
# -- Optional extra annotations to add to the service resource
annotations: {}
nodeSelector: {}
tolerations: []
affinity: {}
priorityClassName: ""
# -- Common Labels for all resources created by this chart.
commonLabels: {}
extraEnv: {}
# extraEnv:
# This claim is optional, and is only used for the first startup of PMS
# The claim is obtained from https://www.plex.tv/claim/ is is only valid for a few minutes
# PLEX_CLAIM: "claim"
# HOSTNAME: "PlexServer"
# TZ: "Etc/UTC"
# PLEX_UPDATE_CHANNEL: "5"
# PLEX_UID: "uid of plex user"
# PLEX_GID: "group id of plex user"
# a list of CIDRs that can use the server without authentication
# this is only used for the first startup of PMS
# ALLOWED_NETWORKS: "0.0.0.0/0"
# -- Optionally specify additional volume mounts for the PMS and init containers.
# type: Directory
extraVolumeMounts:
# extraVolumeMounts:
- name: dev-dri
mountPath: /dev/dri
- name: pms
mountPath: /mnt/nfs
# -- Optionally specify additional volumes for the pod.
extraVolumes:
# extraVolumes:
- name: dev-dri
hostPath:
path: /dev/dri
type: Directory
- name: pms
persistentVolumeClaim:
claimName: plex
extraContainers: []
# extraContainers:
# - name: <container name>
# args:
# - ...
# image: <docker images>
# imagePullPolicy: IfNotPresent
# resources:
# limits:
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# volumeMounts:
# - ...