From 302f349f5fa7a7c20a232013a95ce05dab50c1fa Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Fri, 24 Mar 2023 23:20:22 +0200 Subject: [PATCH] Move plex to ix-dev (#1042) * move plex to ixdev * update ci paths * update lock file * use the builtin http probe * indent lists --- charts/plex/1.7.32/Chart.lock | 6 -- charts/plex/1.7.32/Chart.yaml | 17 ---- charts/plex/1.7.32/charts/common-2207.0.0.tgz | Bin 4976 -> 0 bytes charts/plex/1.7.32/default_values.yaml | 84 ------------------ .../plex/1.7.32/templates/probe_config.yaml | 8 -- .../templates/tests/deployment-check.yaml | 21 ----- .../ix-dev/charts/plex}/.helmignore | 0 library/ix-dev/charts/plex/Chart.lock | 6 ++ library/ix-dev/charts/plex/Chart.yaml | 23 +++++ .../ix-dev/charts/plex}/README.md | 0 .../ix-dev/charts/plex}/app-readme.md | 0 .../charts/plex/charts/common-2207.0.0.tgz | Bin 0 -> 4975 bytes .../ix-dev/charts/plex/ci/test-values.yaml | 4 - .../ix-dev/charts}/plex/item.yaml | 0 .../plex}/migrations/migrate_from_1.0.0 | 0 .../ix-dev/charts/plex}/questions.yaml | 0 .../ix-dev/charts/plex}/templates/NOTES.txt | 0 .../charts/plex}/templates/deployment.yaml | 44 ++++----- .../charts/plex}/templates/service-tcp.yaml | 0 .../charts/plex}/templates/service-udp.yaml | 0 .../ix-dev/charts}/plex/upgrade_info.json | 0 .../ix-dev/charts}/plex/upgrade_strategy | 0 .../ix-dev/charts/plex/values.yaml | 0 23 files changed, 51 insertions(+), 162 deletions(-) delete mode 100644 charts/plex/1.7.32/Chart.lock delete mode 100644 charts/plex/1.7.32/Chart.yaml delete mode 100644 charts/plex/1.7.32/charts/common-2207.0.0.tgz delete mode 100644 charts/plex/1.7.32/default_values.yaml delete mode 100644 charts/plex/1.7.32/templates/probe_config.yaml delete mode 100644 charts/plex/1.7.32/templates/tests/deployment-check.yaml rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/.helmignore (100%) create mode 100644 library/ix-dev/charts/plex/Chart.lock create mode 100644 library/ix-dev/charts/plex/Chart.yaml rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/README.md (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/app-readme.md (100%) create mode 100644 library/ix-dev/charts/plex/charts/common-2207.0.0.tgz rename charts/plex/1.7.32/test_values.yaml => library/ix-dev/charts/plex/ci/test-values.yaml (87%) rename {charts => library/ix-dev/charts}/plex/item.yaml (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/migrations/migrate_from_1.0.0 (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/questions.yaml (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/templates/NOTES.txt (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/templates/deployment.yaml (84%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/templates/service-tcp.yaml (100%) rename {charts/plex/1.7.32 => library/ix-dev/charts/plex}/templates/service-udp.yaml (100%) rename {charts => library/ix-dev/charts}/plex/upgrade_info.json (100%) rename {charts => library/ix-dev/charts}/plex/upgrade_strategy (100%) rename charts/plex/1.7.32/ix_values.yaml => library/ix-dev/charts/plex/values.yaml (100%) diff --git a/charts/plex/1.7.32/Chart.lock b/charts/plex/1.7.32/Chart.lock deleted file mode 100644 index ed178dfc29..0000000000 --- a/charts/plex/1.7.32/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: file://../../../library/common/2207.0.0 - version: 2207.0.0 -digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506 -generated: "2022-07-25T00:20:48.105219554+05:00" diff --git a/charts/plex/1.7.32/Chart.yaml b/charts/plex/1.7.32/Chart.yaml deleted file mode 100644 index b70dca3262..0000000000 --- a/charts/plex/1.7.32/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: 1.31.2.6810 -dependencies: -- name: common - repository: file://../../../library/common/2207.0.0 - version: 2207.0.0 -description: Plex Media Server -home: https://plex.tv/ -icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png -keywords: -- plex -name: plex -sources: -- https://hub.docker.com/r/plexinc/pms-docker/ -- https://github.com/k8s-at-home/charts/tree/master/charts/plex -upstream_version: 2.1.0 -version: 1.7.32 diff --git a/charts/plex/1.7.32/charts/common-2207.0.0.tgz b/charts/plex/1.7.32/charts/common-2207.0.0.tgz deleted file mode 100644 index 2adf94b4383245692b6eecaf85bbd43bd62e89de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4976 zcmV-$6OZg4iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PH>ebKAC({aJs-9+S?qb2TN)vVG&3&YaKAd-XJRGI1vFb#884 zh=e56B)|Zm99`=B+i&nif?tws$4b%)KiDFF-Lp>k>VDZFb?Ej@Om;K5kU!@A&C+; z?NOBC6EKX`lZyADX=zZz_|J93?e~Hs9K@yApwZME%B8;MlvfDrzG z4>^+I$#uKbaIX8c6dqMQKuh-ik)`zYQm%lu4vqOb_uMC^qVb@ot>d zXldz1jR5~jWH>r0iP~WtcJPOCf`YRo7ZUS}H^DCK;53tq;^FSD!DoEj0O9WOJE2Ler7{6g$20j^@11vHO%^55fM^U3q4NZU z7HpAc8RHViK&TUG{RR+pO>T|9YT_L#Y$AZ2m_!l+OKjkE%#27-2<9&Q0g{u{o7tgh z&e`l$%)P?6d$#@0W7^j$EA9Wao~=iD0W0kP{$O-ev;W7(hr_M?-$c>&|1G95Hs)QK zZ9U^!A)q)WO39++jlQRyfSL=iwpn*_?^#yQyxX7NLqmpVAEBM7b3~^Y zo?mMO21*0%X)yE7pnf?EArYTq`KEYQUi(IQCS?}5Dj8>zMJ%z%?3EAx?(9tgT^MNX z9CRXehDZ&+wnSl5-|xZ>Wzw0WklOpZ&L9D}Ted-`*Gt1)QP|Eksb2j>HR4~ZH1vN$ z#(izw``4b6^_2R5uz!3|*Z)TcTm8S0;>Uk(8NW#wihb|8Q@MLEMx}F>Bv!+5MB~#W zo1x1*g+o6O^Cyg;eA{K2{6{E5W0DX_@S_yKD*tadY{>ud@L((dn<&=*lQ}mb8NJg{%e1D83YN7K>i^N~5 zEYtrsbn@s0fK~ec;IJA0AMJ1T|0as>|JmrRm?4g1KoMs`td@QkJyxPS!$}&7nPH$M z%X>C_7#f#w{g_=Dx(`jp%4w0W06JKng*W*abBZMvAz}R@;Xu6xH>$Karma{~M9~z- zd*elQtNMR4`a%hDM z*Ji?!#$wnEl1dIz6~F3p<>@+{+$7UyR;`fZ#e`20s@&j3R|RET>X9*L6P{|UG~5G+rU_^QLLJM_ZA&7Z?BBiqy`29= zdk*vC#?aaO=J2&r;E90^ztu$1IRS08J1Jcy_mxJ<9LvFSk8I^UC`ryZ7I?|N6pu8N zBrm`ES@AN2JEs8CdHbf7mHg)j^K)jG&B2$pMBDNu%1Zx_q-grcO+c&izm5)$>-is} zgRTF!k>YX!IKguada@y6bV8;%*V$b`nzMF4?B(*S}j zPm(t*AyMIXY3fcO@OEC5_2BNV;~hI=Lb@01J+H34Z!20|dg1{{G=;mnz_k0OAg8kR zqoi`%<%p8O-_-&NNs=b{>dEYtOEvcBh? zDlg^Z4<=b(>xmNh!OBA8YEcy~SwB$dEafJ(UPs9Hs=56dO_|_tHgWmYJgCZjmtya0 z6hqRC3F-E3x!)cZcT4LPKUu$t$*i*6-Iec58Urgu~AjerkA|(1kawPF|(Rb+9>8H7KEixS0Jr5S0rng9A*e@2)+;eSIT$3mMUfrTn z@D`gL^g&TO&y-=ivem#K@ix4sNJg_)Pdi{9M`SGio46NWWGw#5c%!;=ybV)jU(3CQ z$}Ze_BUW*w?!jP@_wwW)0MIs8>*TTP@iRvUlqvFUiI=T19ah44TaV#SRa)&o#qyT% z8$zf3>-dqI|JI2A9E=+KfA&X5Tl>F>Vlp8vui$JgT~%^M7*kQH6O@U;>RB1jC@xI$ zbmdtkW7pO+SZz&nVK#LaCw!DZwF4oxX}|X^t@6*YU^$Pl=wC z7Hga){cOFF{3=H9xg7$XxAyRXYDC*R=Avk>(!OeZisgOl`lmBBD9-Y6LZTAfR1f`` zYbHimpp26_lK2KUV)`(-~K`4 z{NKZE{C6|O?6XjIU#D0h&~~3q;07#WViXGbW}WVBqc%+I#st7e%+B;0-Uq>uDVYG{!nknokG{9+*Bdtp4raux#Esnq`ierJS2@B{dcTBUWrALb;; zQxBn@i3$%$270`7FJY`0g3U>c$yzBFTR%UY#f|4YWv6!))DmR*_OPk8>%=%8`_ z^YQU$tN%Ar>`o}H!BLjIXGxyoUsz7h1goc#h_&&Yi9Umw1XLJ;`&dD_Dm$E;dB!*5+xMEYjSCSM0W2 z31~e>KWm;AXFsQkx;IG9%man1xaH@R=qDl{m-p>OS+DZ6nU$hpI7YEPSXe)BS0#?> z^RDESRVgdQ20qP*I#)&!rcWnz)6yN2>SkE6VFvARhKf_KJ9xFukbW+I2M@QgWyzJD z++%7oZotz_F3t&u=fzJuYzElfJb_P@bEnN-LN`mraovVxLU;eAA*MK6)v+GOA9BKR zY*VJxJX0n?U>Q{E`)8XLr(L%n3H``4Q}WSqi=E3ywS(quZNx|-VK)!eT6sQa$+^OD z@*@~rKCm7W?}krq!6e140&y|ijXqdm;Wm8vlO68AbC!~S88ksjQ|ke<-G{QQu}k+K zSn7j`=a%C2*3=!@C`sC+`?Ht^OHupwjHOB@TzgYSZ4e4GV28t~_XiA0VUjDl=_$s? z+_>)`wYU!J589XZslKJM-2Yd~RjG#eMuibZAMzfs!v8-wKC0z^5BCp;+x;IKDO$bQ z>BYs1znXV#6HL@cWH=%d5-ATWMN2*mW#!q~WKr@>P_l7+yi6xQYr%o zgtCM|jOPIa_Olp4)d(6FC@k(3h*i_qnZhWtgveJKYd=^Hx^qk9jODVp7kJGT@R)PP zuTwGARa|W5f@=E?PE_D~5rTF|T)YH$=Kh_E$pXP9Fo4AgJRA1mR1(?L37slXpmnk86-`pArW7hIqXe}EmGZC`YFuxrMC z7j_Z}JMQ)$kYKtC2US!KosJ%P!%}a~eYB*bz2?l;Xl)~9*o0n(oHa<=S0u@Jd~HtZ zyPmV8g|vG$RvfF}BtW0vKSQErV5-9Lz@hh=UcTwJkbRV86|drNqErK`U5YIGsV4Ne zCi11Y6_MGhG(T4@UAyC$THTF0gOpY3?-A|8=7^|GvNFN5jVckK^t6?;9!A+@#X))9Xy+V<7-zBybFj zf{iUKPgYtlYEX-3tyD12y}*TgQH_QB@}Ht`Ed^4p_dTyfN*u1@C3sC-E#J%ecHTy< z{D(7~q-07N$DhBAmGXaZSpWX_@nC!Y>qg2m^{yf@r+T5+aDaN>pfJu!5)(Rw3`I9+ zibdFa2KsP3`$0efVuq6hrU@IHy-0*ke*lgXB*`2bJyPCBH10hEil;`NcQTGA*(|(C)jG~)7g9*{c{e%9oa=%)7~l&Sj7IGOfd{9o@Gyhog{ zT)@ToOVJB6&VI*{?1d!8sBgeI`@I*=MZ{v<|H?&Q7c2j7U!I=-@-j^0r)Xnk{?DKx z|AX!KUp7;o!7KYw|FdNu^;h>aK(F`W#XnEqUS3@O;{@LQba4e|Kb^jP2Nzdx`T8CF z^78cZ9lU!D|Me0sF0bC5zIyfY9L_J^zC3&P>em-9dggddA^^dE|AdpY+Wi0Q%%sf3 zNx$#DBoMPm^d-wkq+L@5daaLd75!%lW;cWj<(OwV&zR78>Z%J<&hkttFZT&zHYE{^ zvAo6DeEj6*Kg55|SZdFW6(RI`SA<3w5F|_o!OR1gF!egF>j>o@IOU{|Shgg=EfQK` zN~J|Pj`IjZiU^gMB84iU0smyu$?m diff --git a/charts/plex/1.7.32/default_values.yaml b/charts/plex/1.7.32/default_values.yaml deleted file mode 100644 index 12b8b12cc6..0000000000 --- a/charts/plex/1.7.32/default_values.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# Default values -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -# The Image to use for PLEX - -image: - repository: plexinc/pms-docker - tag: 1.20.2.3402-0fec14d92 - pullPolicy: IfNotPresent - -##### START --> Official PLEX container environment variables -# Override this with the plex claim token from plex.tv/claim -claimToken: "" - -# Set the timezone of the plex server -timezone: "Etc/UTC" - -# add your pod network subnet to the `List of IP addresses and networks that are allowed without auth` -# This will override the manual settings, so only use this if you will not need to change it manually. -# This list will be automatically converted to a command seperated string when passed to the container. -# You would specify this when using helm CLI with --set allowedNetworks="{127.0.0.1,10.54.2.0/24}" -# allowedNetworks: -# - 127.0.0.1 -# - 10.54.2.0/24 - -# Instruct the Plex Media Server Container to Change the Configuration Directory Ownership -# Default is true, you would only need to set this if you want to disable it. -# changeConfigDirOwnership: true - -# advertiseIp This variable defines the additional IPs on which the server may be be found. -# For example: http://10.1.1.23:32400. -# This adds to the list where the server advertises that it can be found. -# See https://hub.docker.com/r/plexinc/pms-docker/ for details -# advertiseIp: "http://10.1.1.23:32400" - -# Set The user id of the plex user created inside the container. -# See https://hub.docker.com/r/plexinc/pms-docker/ for details -# plexUid: 1000 - -# Set The group id of the plex group created inside the container -# See https://hub.docker.com/r/plexinc/pms-docker/ for details -# plexGid: 1000 - -##### END --> Official PLEX container environment variables - -# You can add as many Additional ENV variables here -# The following is the same as --set extraEnv.TMPDIR="/transcode" -# extraEnv: -# TMPDIR: /transcode - -# upgrade strategy type (e.g. Recreate or RollingUpdate) -updateStrategy: Recreate - -plexServiceTCP: - port: 32400 - -hostNetwork: false - -proxy: - # This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover - enabled: false - # http: "http://proxy:8080" - # https: "https://proxy:8080" - # noproxy: "localhost,127.0.0.1,10.96.0.0/12,10.244.0.0/12" - -gpuConfiguration: {} - -appVolumeMounts: - transcode: - emptyDir: true - mountPath: "/transcode" - data: - emptyDir: true - mountPath: "/data" - config: - emptyDir: true - mountPath: "/config" - shared: - emptyDir: true - mountPath: "shared" - shared-logs: - emptyDir: true - mountPath: "/config/Library/Application Support/Plex Media Server/Logs" diff --git a/charts/plex/1.7.32/templates/probe_config.yaml b/charts/plex/1.7.32/templates/probe_config.yaml deleted file mode 100644 index 736ee8cf47..0000000000 --- a/charts/plex/1.7.32/templates/probe_config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: "plex-probe-check" -data: - entrypoint.sh: |- - #!/bin/sh - curl -ksf http://$POD_IP:32400/identity -o /dev/null || curl -ksf https://$POD_IP:32400/identity -o /dev/null diff --git a/charts/plex/1.7.32/templates/tests/deployment-check.yaml b/charts/plex/1.7.32/templates/tests/deployment-check.yaml deleted file mode 100644 index 8e223fe348..0000000000 --- a/charts/plex/1.7.32/templates/tests/deployment-check.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- $serviceName := (include "common.names.fullname" .) -}} -apiVersion: v1 -kind: Pod -metadata: - name: "{{ .Release.Name }}-plex-test" - labels: - app: {{ .Release.Name }} - release: {{ .Release.Name }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: test-curl - image: alpine/curl - imagePullPolicy: "IfNotPresent" - command: - - /bin/sh - - -ec - - | - curl --connect-timeout 5 --max-time 10 --retry 5 --retry-delay 15 --retry-max-time 90 --retry-all-errors -ksf http://{{ $serviceName }}-tcp:32400/identity - restartPolicy: Never diff --git a/charts/plex/1.7.32/.helmignore b/library/ix-dev/charts/plex/.helmignore similarity index 100% rename from charts/plex/1.7.32/.helmignore rename to library/ix-dev/charts/plex/.helmignore diff --git a/library/ix-dev/charts/plex/Chart.lock b/library/ix-dev/charts/plex/Chart.lock new file mode 100644 index 0000000000..ec220cc934 --- /dev/null +++ b/library/ix-dev/charts/plex/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +digest: sha256:a301ba0f99ec1e08a60a7f0a0320aa02d225993572f2f056f09520f06df88b37 +generated: "2023-03-21T16:48:15.265115312+02:00" diff --git a/library/ix-dev/charts/plex/Chart.yaml b/library/ix-dev/charts/plex/Chart.yaml new file mode 100644 index 0000000000..204d09d8f3 --- /dev/null +++ b/library/ix-dev/charts/plex/Chart.yaml @@ -0,0 +1,23 @@ +name: plex +description: Plex Media Server +annotations: + title: Plex +type: application +version: 1.7.33 +apiVersion: v2 +appVersion: '1.31.2.6810' +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ +dependencies: + - name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +home: https://plex.tv/ +icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png +sources: + - https://hub.docker.com/r/plexinc/pms-docker/ + - https://github.com/k8s-at-home/charts/tree/master/charts/plex +keywords: + - plex diff --git a/charts/plex/1.7.32/README.md b/library/ix-dev/charts/plex/README.md similarity index 100% rename from charts/plex/1.7.32/README.md rename to library/ix-dev/charts/plex/README.md diff --git a/charts/plex/1.7.32/app-readme.md b/library/ix-dev/charts/plex/app-readme.md similarity index 100% rename from charts/plex/1.7.32/app-readme.md rename to library/ix-dev/charts/plex/app-readme.md diff --git a/library/ix-dev/charts/plex/charts/common-2207.0.0.tgz b/library/ix-dev/charts/plex/charts/common-2207.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a29ec5c284af4483496265f9d035e489d27670d8 GIT binary patch literal 4975 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