Properly use host network when configured

This commit is contained in:
Waqar Ahmed 2020-12-07 20:07:30 +05:00
parent 8da36972d8
commit 36eee5eccb
4 changed files with 36 additions and 93 deletions

View File

@ -127,6 +127,21 @@ questions:
- value: "Recreate"
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
- variable: persistence
label: "Configure Persistent Storage"
@ -151,7 +166,6 @@ questions:
schema:
type: hostpath
required: true
default: ""
- variable: volume
label: "Configure iXVolume"
schema:
@ -190,7 +204,6 @@ questions:
schema:
type: hostpath
required: true
default: ""
- variable: volume
label: "Configure iXVolume"
schema:
@ -229,7 +242,6 @@ questions:
schema:
type: hostpath
required: true
default: ""
- variable: volume
label: "Configure iXVolume"
schema:

View File

@ -32,7 +32,7 @@ spec:
protocol: TCP
containerPort: 32400
{{- if .Values.hostNetwork }}
hostPort: {{ .Values.serviceTCP.port }}
hostPort: {{ .Values.plexServiceTCP.port }}
{{- end }}
- name: plex-dlna
protocol: TCP
@ -110,21 +110,21 @@ spec:
httpGet:
path: /identity
port: 32400
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
failureThreshold: 5
periodSeconds: 15
livenessProbe:
httpGet:
path: /identity
port: 32400
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
failureThreshold: 5
periodSeconds: 15
startupProbe:
httpGet:
path: /identity
port: 32400
initialDelaySeconds: {{ .Values.probes.startup.initialDelaySeconds }}
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
initialDelaySeconds: 5
failureThreshold: 40
periodSeconds: 15
volumeMounts:
- name: data
mountPath: /data
@ -136,12 +136,6 @@ spec:
mountPath: /shared
- name: shared-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:
- name: data
hostPath:
@ -156,10 +150,3 @@ spec:
emptyDir: {}
- name: shared-logs
emptyDir: {}
{{- if .Values.plexPreferences.enabled }}
- name: {{ .Values.plexPreferences.volume.name }}
configMap:
name: {{ .Values.plexPreferences.configmap.name }}
defaultMode: {{ .Values.plexPreferences.volume.defaultMode }}
{{- end }}
##### VOLUMES END #####

View File

@ -1,25 +1,27 @@
{{- if eq .Values.hostNetwork false }}
apiVersion: v1
kind: Service
metadata:
{{- if .Values.hostNetwork }}
name: {{ include "plex.fullname" . }}-tcp-cluster-ip
{{- else }}
name: {{ include "plex.fullname" . }}-tcp
{{- end }}
labels:
{{- 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:
{{- if .Values.hostNetwork }}
type: ClusterIP
{{- else }}
type: NodePort
{{- end }}
ports:
- name: pms
port: {{ .Values.serviceTCP.port }}
port: {{ .Values.plexServiceTCP.port }}
protocol: TCP
targetPort: pms
nodePort: {{.Values.serviceTCP.nodePort}}
{{- if eq .Values.hostNetwork false }}
nodePort: {{.Values.plexServiceTCP.port}}
{{- end }}
- name: http
port: 80
targetPort: pms
@ -31,4 +33,3 @@ spec:
targetPort: plex-dlna
selector:
{{- include "plex.selectorLabels" . | nindent 4 }}
{{- end }}

View File

@ -52,75 +52,18 @@ timezone: "UTC"
# upgrade strategy type (e.g. Recreate or RollingUpdate)
strategyType: Recreate
nameOverride: ""
fullnameOverride: ""
serviceTCP:
plexServiceTCP:
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
persistence:
transcode:
hostPathEnabled: false
hostPath: ""
data:
hostPathEnabled: false
hostPath: ""
config:
hostPathEnabled: false
hostPath: ""
# Probes configuration
probes:
liveness:
failureThreshold: 5
periodSeconds: 10
readiness:
failureThreshold: 5
periodSeconds: 10
startup:
initialDelaySeconds: 5
failureThreshold: 30
periodSeconds: 10
proxy:
# This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover