diff --git a/external-services/plex.yaml b/external-services/plex.yaml deleted file mode 100644 index 6132604..0000000 --- a/external-services/plex.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: plex - namespace: external-services -spec: - externalName: 172.16.18.1 - type: ExternalName - ports: - - name: http - protocol: TCP - port: 32400 ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: plex - namespace: external-services -spec: - ingressClassName: haproxy - rules: - - host: plex.strudelline.net - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: plex - port: - number: 32400 diff --git a/plex/.gitignore b/plex/.gitignore new file mode 100644 index 0000000..413d4a3 --- /dev/null +++ b/plex/.gitignore @@ -0,0 +1 @@ +/charts diff --git a/plex/deploy.sh b/plex/deploy.sh new file mode 100644 index 0000000..dbc0c7b --- /dev/null +++ b/plex/deploy.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +kustomize build --enable-helm | kubectl apply -f - diff --git a/plex/diff.sh b/plex/diff.sh new file mode 100644 index 0000000..0917878 --- /dev/null +++ b/plex/diff.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +kustomize build --enable-helm | kubectl diff -f - diff --git a/plex/kustomization.yaml b/plex/kustomization.yaml new file mode 100644 index 0000000..f8b0185 --- /dev/null +++ b/plex/kustomization.yaml @@ -0,0 +1,101 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: plex + +helmCharts: +- name: plex-media-server + repo: https://raw.githubusercontent.com/plexinc/pms-docker/gh-pages + version: 0.1.8 + releaseName: plex + namespace: plex + includeCRDs: true + valuesInline: + fullnameOverride: plex + ingress: + enabled: true + # note put a domain name that points to your ip address here + url: https://plex.strudelline.net + ingressClassName: haproxy + pms: + storageClassName: ssd + configStorage: 200Gi + service: + type: LoadBalancer + 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 only valid for a few minutes + PLEX_CLAIM: "claim" + extraVolumeMounts: + - name: youtube + mountPath: /volume1/youtube + - name: kideos + mountPath: /volume1/kideos + - name: youtube + mountPath: /volume1/youtube + - name: audiobooks + mountPath: /volume1/audiobooks + - name: tv-shows + mountPath: /volume1/tv shows + - name: dropbox + mountPath: /volume1/dropbox + - name: cache + mountPath: /transcode + extraVolumes: + - name: dropbox + nfs: + path: /volume1/dropbox + server: 172.16.18.1 + - name: tv-shows + nfs: + path: /volume1/tv shows + server: 172.16.18.1 + - name: kideos + nfs: + path: /volume1/kideos + server: 172.16.18.1 + - name: youtube + nfs: + path: /volume1/youtube + server: 172.16.18.1 + - name: music + nfs: + path: /volume1/music + server: 172.16.18.1 + - name: audiobooks + nfs: + path: /volume1/audiobooks + server: 172.16.18.1 + - name: cache + emptyDir: + sizeLimit: 50Gi + initContainer: + script: | + #!/bin/sh + + if [ -d "/config/Library" ]; then + echo "PMS library already exists, exiting." + exit 0 + fi + + echo "fetching pre-existing pms database to import..." + cd /config + tar xvf /volume1/dropbox/PlexLibrary.tar + mv Library Library + + echo "Done." + +patches: +- target: + kind: StatefulSet + patch: |- + apiVersion: v1 + kind: StatefulSet + metadata: + name: meaningless + spec: + template: + spec: + runtimeClassName: nvidia + nodeSelector: + nvidia.com/gpu.family: pascal diff --git a/plex/uninstall.sh b/plex/uninstall.sh new file mode 100644 index 0000000..5ec4377 --- /dev/null +++ b/plex/uninstall.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +kustomize build --enable-helm | kubectl delete -f -