Properly use host network when configured
This commit is contained in:
@@ -127,6 +127,21 @@ questions:
|
|||||||
- value: "Recreate"
|
- value: "Recreate"
|
||||||
description: "Kill existing pods before creating new ones"
|
description: "Kill existing pods before creating new ones"
|
||||||
|
|
||||||
|
# Port configuration
|
||||||
|
- variable: plexServiceTCP
|
||||||
|
label: "Configure Plex TCP Service"
|
||||||
|
group: "Networking"
|
||||||
|
schema:
|
||||||
|
type: dict
|
||||||
|
attrs:
|
||||||
|
- variable: port
|
||||||
|
label: "Port to expose for Plex UI"
|
||||||
|
schema:
|
||||||
|
type: int
|
||||||
|
min: 9000
|
||||||
|
max: 65535
|
||||||
|
default: 32400
|
||||||
|
|
||||||
# Persistence
|
# Persistence
|
||||||
- variable: persistence
|
- variable: persistence
|
||||||
label: "Configure Persistent Storage"
|
label: "Configure Persistent Storage"
|
||||||
@@ -151,7 +166,6 @@ questions:
|
|||||||
schema:
|
schema:
|
||||||
type: hostpath
|
type: hostpath
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
|
||||||
- variable: volume
|
- variable: volume
|
||||||
label: "Configure iXVolume"
|
label: "Configure iXVolume"
|
||||||
schema:
|
schema:
|
||||||
@@ -190,7 +204,6 @@ questions:
|
|||||||
schema:
|
schema:
|
||||||
type: hostpath
|
type: hostpath
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
|
||||||
- variable: volume
|
- variable: volume
|
||||||
label: "Configure iXVolume"
|
label: "Configure iXVolume"
|
||||||
schema:
|
schema:
|
||||||
@@ -229,7 +242,6 @@ questions:
|
|||||||
schema:
|
schema:
|
||||||
type: hostpath
|
type: hostpath
|
||||||
required: true
|
required: true
|
||||||
default: ""
|
|
||||||
- variable: volume
|
- variable: volume
|
||||||
label: "Configure iXVolume"
|
label: "Configure iXVolume"
|
||||||
schema:
|
schema:
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ spec:
|
|||||||
protocol: TCP
|
protocol: TCP
|
||||||
containerPort: 32400
|
containerPort: 32400
|
||||||
{{- if .Values.hostNetwork }}
|
{{- if .Values.hostNetwork }}
|
||||||
hostPort: {{ .Values.serviceTCP.port }}
|
hostPort: {{ .Values.plexServiceTCP.port }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: plex-dlna
|
- name: plex-dlna
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
@@ -110,21 +110,21 @@ spec:
|
|||||||
httpGet:
|
httpGet:
|
||||||
path: /identity
|
path: /identity
|
||||||
port: 32400
|
port: 32400
|
||||||
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
|
failureThreshold: 5
|
||||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
periodSeconds: 15
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /identity
|
path: /identity
|
||||||
port: 32400
|
port: 32400
|
||||||
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
|
failureThreshold: 5
|
||||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
periodSeconds: 15
|
||||||
startupProbe:
|
startupProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /identity
|
path: /identity
|
||||||
port: 32400
|
port: 32400
|
||||||
initialDelaySeconds: {{ .Values.probes.startup.initialDelaySeconds }}
|
initialDelaySeconds: 5
|
||||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
failureThreshold: 40
|
||||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
periodSeconds: 15
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: data
|
- name: data
|
||||||
mountPath: /data
|
mountPath: /data
|
||||||
@@ -136,12 +136,6 @@ spec:
|
|||||||
mountPath: /shared
|
mountPath: /shared
|
||||||
- name: shared-logs
|
- name: shared-logs
|
||||||
mountPath: "/config/Library/Application Support/Plex Media Server/Logs"
|
mountPath: "/config/Library/Application Support/Plex Media Server/Logs"
|
||||||
{{- if .Values.plexPreferences.enabled }}
|
|
||||||
- name: {{ .Values.plexPreferences.volume.name }}
|
|
||||||
mountPath: {{ .Values.plexPreferences.volume.mountPath }}
|
|
||||||
subPath: {{ .Values.plexPreferences.volume.subPath }}
|
|
||||||
{{- end }}
|
|
||||||
##### VOLUMES START #####
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
hostPath:
|
hostPath:
|
||||||
@@ -156,10 +150,3 @@ spec:
|
|||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
- name: shared-logs
|
- name: shared-logs
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
{{- if .Values.plexPreferences.enabled }}
|
|
||||||
- name: {{ .Values.plexPreferences.volume.name }}
|
|
||||||
configMap:
|
|
||||||
name: {{ .Values.plexPreferences.configmap.name }}
|
|
||||||
defaultMode: {{ .Values.plexPreferences.volume.defaultMode }}
|
|
||||||
{{- end }}
|
|
||||||
##### VOLUMES END #####
|
|
||||||
|
|||||||
@@ -1,25 +1,27 @@
|
|||||||
{{- if eq .Values.hostNetwork false }}
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
{{- if .Values.hostNetwork }}
|
||||||
|
name: {{ include "plex.fullname" . }}-tcp-cluster-ip
|
||||||
|
{{- else }}
|
||||||
name: {{ include "plex.fullname" . }}-tcp
|
name: {{ include "plex.fullname" . }}-tcp
|
||||||
|
{{- end }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "plex.labels" . | nindent 4 }}
|
{{- include "plex.labels" . | nindent 4 }}
|
||||||
{{- if .Values.serviceTCP.labels }}
|
|
||||||
{{ toYaml .Values.serviceTCP.labels | indent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.serviceTCP.annotations }}
|
|
||||||
annotations:
|
|
||||||
{{ toYaml . | indent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
spec:
|
||||||
|
{{- if .Values.hostNetwork }}
|
||||||
|
type: ClusterIP
|
||||||
|
{{- else }}
|
||||||
type: NodePort
|
type: NodePort
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: pms
|
- name: pms
|
||||||
port: {{ .Values.serviceTCP.port }}
|
port: {{ .Values.plexServiceTCP.port }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: pms
|
targetPort: pms
|
||||||
nodePort: {{.Values.serviceTCP.nodePort}}
|
{{- if eq .Values.hostNetwork false }}
|
||||||
|
nodePort: {{.Values.plexServiceTCP.port}}
|
||||||
|
{{- end }}
|
||||||
- name: http
|
- name: http
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: pms
|
targetPort: pms
|
||||||
@@ -31,4 +33,3 @@ spec:
|
|||||||
targetPort: plex-dlna
|
targetPort: plex-dlna
|
||||||
selector:
|
selector:
|
||||||
{{- include "plex.selectorLabels" . | nindent 4 }}
|
{{- include "plex.selectorLabels" . | nindent 4 }}
|
||||||
{{- end }}
|
|
||||||
|
|||||||
@@ -52,75 +52,18 @@ timezone: "UTC"
|
|||||||
# upgrade strategy type (e.g. Recreate or RollingUpdate)
|
# upgrade strategy type (e.g. Recreate or RollingUpdate)
|
||||||
strategyType: Recreate
|
strategyType: Recreate
|
||||||
|
|
||||||
nameOverride: ""
|
plexServiceTCP:
|
||||||
fullnameOverride: ""
|
|
||||||
|
|
||||||
serviceTCP:
|
|
||||||
port: 32400
|
port: 32400
|
||||||
|
|
||||||
plexPreferences:
|
|
||||||
# Enable init script that will read all environment variables starting with PLEX_PREFERENCE_
|
|
||||||
# and take the value (of PLEX_PREFERENCE_<whatever>) as the Key:Value option to set in Plex Preference.xml
|
|
||||||
# You can use extraEnv to add the addtional ENV's to the container.
|
|
||||||
# NOTE: Plex preference options are camelCase and CASE SENSITIVE!
|
|
||||||
# You can do horrible things to your PLEX configuration if you are not careful.
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_1="FriendlyName=plex-kubeernetes-test1" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_2="EnableIPv6=0" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_3="logDebug=0" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_4="DisableTLSv1_0=1" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_5="LanNetworksBandwidth=xxx.xxx.xxx.0/18\,xxx.xxx.xxx.0/24\,xxx.xxx.xxx.0/24" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_6="TranscoderQuality=2" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_7="TreatWanIpAsLocal=0" `
|
|
||||||
# --set extraEnv.PLEX_PREFERENCE_8="TranscoderH264BackgroundPreset=fast"
|
|
||||||
# Why not use a single ENV?
|
|
||||||
# I thought using multiple environment variables would be less confusing
|
|
||||||
# It should work easily with CLI and value.yaml usage
|
|
||||||
# There is only minimal parsing required on the ENV value, as the only deliminator is =
|
|
||||||
# From what I can see, all the PLEX preferences that are NOT currently supported by the OFFICIAL
|
|
||||||
# Container are simple enough to work with this.
|
|
||||||
enabled: false
|
|
||||||
configmap:
|
|
||||||
labels: {}
|
|
||||||
annotations: {}
|
|
||||||
# Right now you can't really change this, additionally the configmap data is
|
|
||||||
# not configurable.
|
|
||||||
name: 41-plex-preferences
|
|
||||||
volume:
|
|
||||||
name: 41-plex-preferences
|
|
||||||
defaultMode: 493 # 0755 in octal permission notation
|
|
||||||
# Using mountPath & SubPath allow you to volume mount a configMap AS A FILE
|
|
||||||
# Unfortunately this also means that updates to the configMap are not automtically
|
|
||||||
# propagated to the file contents. But it's better then replacing the entire
|
|
||||||
# /etc/cont-init.d/ directory which is the "normal" behavior when doing volume
|
|
||||||
# mounts.
|
|
||||||
mountPath: /etc/cont-init.d/41-plex-preferences
|
|
||||||
subPath: 41-plex-preferences
|
|
||||||
|
|
||||||
hostNetwork: false
|
hostNetwork: false
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
transcode:
|
transcode:
|
||||||
hostPathEnabled: false
|
hostPathEnabled: false
|
||||||
hostPath: ""
|
|
||||||
data:
|
data:
|
||||||
hostPathEnabled: false
|
hostPathEnabled: false
|
||||||
hostPath: ""
|
|
||||||
config:
|
config:
|
||||||
hostPathEnabled: false
|
hostPathEnabled: false
|
||||||
hostPath: ""
|
|
||||||
|
|
||||||
# Probes configuration
|
|
||||||
probes:
|
|
||||||
liveness:
|
|
||||||
failureThreshold: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
readiness:
|
|
||||||
failureThreshold: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
startup:
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
failureThreshold: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
|
|
||||||
proxy:
|
proxy:
|
||||||
# This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover
|
# This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover
|
||||||
|
|||||||
Reference in New Issue
Block a user