diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000000..48235a288d2 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,25 @@ +{ + "files": [ + ".github/README.md" + ], + "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=for-the-badge)](#contributors)", + "imageSize": 100, + "commit": false, + "contributors": [ + { + "login": "Ornias1993", + "name": "Kjeld Schouten-Lebbing", + "avatar_url": "https://avatars.githubusercontent.com/u/7613738?v=4", + "profile": "http://schouten-lebbing.nl", + "contributions": [ + "code" + ] + } + ], + "contributorsPerLine": 7, + "projectName": "apps", + "projectOwner": "truecharts", + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true +} diff --git a/.containers/apps/bazarr/BASE b/.containers/apps/bazarr/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/bazarr/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/bazarr/Dockerfile b/.containers/apps/bazarr/Dockerfile new file mode 100644 index 00000000000..51162a4fff6 --- /dev/null +++ b/.containers/apps/bazarr/Dockerfile @@ -0,0 +1,56 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + + +ARG VERSION +ARG TARGETPLATFORM + +USER root + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + export EXTRA_INSTALL_ARG="build-essential libxml2-dev libxslt1-dev python3-dev python3-pip"; \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + python3 \ + python3-distutils \ + ffmpeg \ + unrar \ + unzip \ + ${EXTRA_INSTALL_ARG} \ + && \ + ln -s /usr/bin/python3 /usr/bin/python \ + && \ + curl -fsSL "https://github.com/morpheus65535/bazarr/archive/v${VERSION}.tar.gz" | tar xzf - -C /app --strip-components=1 \ + && pip3 install --no-cache-dir -U -r /app/requirements.txt \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get remove -y ${EXTRA_INSTALL_ARG} \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /app/bin \ + /app/tests \ + /app/screenshots \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 6767 + +COPY ./.containers/apps/bazarr/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/bazarr/LICENSE b/.containers/apps/bazarr/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/bazarr/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/bazarr/PLATFORM b/.containers/apps/bazarr/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/bazarr/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/bazarr/VERSION b/.containers/apps/bazarr/VERSION new file mode 100644 index 00000000000..965065db5b8 --- /dev/null +++ b/.containers/apps/bazarr/VERSION @@ -0,0 +1 @@ +0.9.3 diff --git a/.containers/apps/bazarr/entrypoint.sh b/.containers/apps/bazarr/entrypoint.sh new file mode 100755 index 00000000000..367ab91bcf2 --- /dev/null +++ b/.containers/apps/bazarr/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /usr/bin/python3 /app/bazarr.py --no-update --config /config ${EXTRA_ARGS} diff --git a/.containers/apps/bazarr/goss.yaml b/.containers/apps/bazarr/goss.yaml new file mode 100644 index 00000000000..e6980f8688e --- /dev/null +++ b/.containers/apps/bazarr/goss.yaml @@ -0,0 +1,15 @@ +--- +process: + python3: + running: true + +port: + tcp:6767: + listening: true + +# # TODO fix this test +# http: +# http://localhost:6767: +# status: 200 +# body: +# - 'Bazarr' diff --git a/.containers/apps/bazarr/latest-version.sh b/.containers/apps/bazarr/latest-version.sh new file mode 100755 index 00000000000..cd76e9d9069 --- /dev/null +++ b/.containers/apps/bazarr/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version="$(curl -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases/latest" | jq --raw-output '.tag_name')" +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/emby/BASE b/.containers/apps/emby/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/emby/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/emby/Dockerfile b/.containers/apps/emby/Dockerfile new file mode 100644 index 00000000000..e3769dfe112 --- /dev/null +++ b/.containers/apps/emby/Dockerfile @@ -0,0 +1,104 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest as builder + +ARG TARGETPLATFORM +ARG VERSION + +# hadolint ignore=DL3002 +USER root + +WORKDIR /tmp + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Install system dependencies + +WORKDIR /tmp + +# hadolint ignore=DL3003,DL3008,DL3013,DL3015,SC2086 +RUN \ + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + aria2 \ + unrar \ + uuid-runtime \ + cpio \ + jq \ + rpm2cpio \ + beignet-opencl-icd \ + ocl-icd-libopencl1 \ + && echo "**** install emby ****" && \ + mkdir -p \ + /app && \ + curl -o \ + /tmp/emby.rpm -L \ + "https://github.com/MediaBrowser/Emby.Releases/releases/download/${VERSION}/emby-server-rpm_${VERSION}_x86_64.rpm" && \ + cd /tmp && \ + rpm2cpio emby.rpm \ + | cpio -i --make-directories \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + mv -t \ + /app \ + /tmp/opt/emby-server/system/* \ + /tmp/opt/emby-server/lib/* \ + /tmp/opt/emby-server/bin/ff* \ + /tmp/opt/emby-server/etc + + +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \ + INTEL_NEO_VERSION=21.11.19310 \ + INTEL_IGC_VERSION=1.0.6646 \ + INTEL_GMMLIB_VERSION=20.3.2 \ + APP_DIR="/app" + +# hadolint ignore=DL3008,DL3013,DL3015,SC2086,SC2039 +RUN \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + mesa-va-drivers \ + uuid-runtime && \ + case "${ARCH}" in \ + 'amd64') \ + curl -J -L -o /tmp/gmmlib.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-gmmlib_${INTEL_GMMLIB_VERSION}_amd64.deb \ + && apt-get install -y /tmp/gmmlib.deb \ + && curl -J -L -o /tmp/#1.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/{intel-igc-core,intel-igc-opencl}_${INTEL_IGC_VERSION}_amd64.deb \ + && apt-get install -y /tmp/intel-igc-core.deb /tmp/intel-igc-opencl.deb \ + && curl -J -L -o /tmp/intel-opencl.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-opencl_${INTEL_NEO_VERSION}_amd64.deb \ + && apt-get install -y /tmp/intel-opencl.deb \ + ;; \ + esac \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +COPY --from=builder /app /app + +USER apps + +EXPOSE 8096 8920 + +COPY ./.containers/apps/emby/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/emby/PLATFORM b/.containers/apps/emby/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/emby/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/emby/VERSION b/.containers/apps/emby/VERSION new file mode 100644 index 00000000000..c8bf51bc1d0 --- /dev/null +++ b/.containers/apps/emby/VERSION @@ -0,0 +1 @@ +4.5.4.0 diff --git a/.containers/apps/emby/entrypoint.sh b/.containers/apps/emby/entrypoint.sh new file mode 100755 index 00000000000..f3a8c340782 --- /dev/null +++ b/.containers/apps/emby/entrypoint.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +export LD_LIBRARY_PATH="${APP_DIR}" +export FONTCONFIG_PATH="${APP_DIR}"/etc/fonts +if [ -d "/lib/x86_64-linux-gnu" ]; then + export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri:"${APP_DIR}"/dri +fi +export SSL_CERT_FILE="${APP_DIR}"/etc/ssl/certs/ca-certificates.crt + +exec /app/EmbyServer \ + -programdata /config \ + -ffdetect /app/ffdetect \ + -ffmpeg /app/ffmpeg \ + -ffprobe /app/ffprobe \ + -restartexitcode 3 diff --git a/.containers/apps/emby/goss.yaml b/.containers/apps/emby/goss.yaml new file mode 100644 index 00000000000..d4d22d95dca --- /dev/null +++ b/.containers/apps/emby/goss.yaml @@ -0,0 +1,15 @@ +--- +process: + EmbyServer: + running: true + +# # TODO fix this test +# port: +# tcp:8096: +# listening: true + +http: + http://localhost:8096/web: + status: 200 + body: + - 'Emby' diff --git a/.containers/apps/emby/latest-version.sh b/.containers/apps/emby/latest-version.sh new file mode 100755 index 00000000000..7fabde380d4 --- /dev/null +++ b/.containers/apps/emby/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | jq --raw-output '. | .tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/jackett/BASE b/.containers/apps/jackett/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/jackett/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/jackett/Dockerfile b/.containers/apps/jackett/Dockerfile new file mode 100644 index 00000000000..ad154aaef2c --- /dev/null +++ b/.containers/apps/jackett/Dockerfile @@ -0,0 +1,53 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +# Sets Jackett config directory +# https://github.com/Jackett/Jackett#home-directory-1 +ENV XDG_CONFIG_HOME=/config + +USER root + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + libicu66 \ + libssl1.1 \ + && \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='AMDx64' ;; \ + esac \ + && \ + curl -fsSL -o /tmp/jackett.tar.gz \ + "https://github.com/Jackett/Jackett/releases/download/v${VERSION}/Jackett.Binaries.Linux${ARCH}.tar.gz" \ + && tar ixzf /tmp/jackett.tar.gz -C /app --strip-components 1 \ + && \ + rm -rf \ + /app/JackettUpdater* \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 9117 + +COPY ./.containers/apps/jackett/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/jackett/LICENSE b/.containers/apps/jackett/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/jackett/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/jackett/PLATFORM b/.containers/apps/jackett/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/jackett/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/jackett/VERSION b/.containers/apps/jackett/VERSION new file mode 100644 index 00000000000..624342f7584 --- /dev/null +++ b/.containers/apps/jackett/VERSION @@ -0,0 +1 @@ +0.17.790 diff --git a/.containers/apps/jackett/entrypoint.sh b/.containers/apps/jackett/entrypoint.sh new file mode 100755 index 00000000000..6350509b52c --- /dev/null +++ b/.containers/apps/jackett/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/jackett --NoUpdates ${EXTRA_ARGS} diff --git a/.containers/apps/jackett/goss.yaml b/.containers/apps/jackett/goss.yaml new file mode 100644 index 00000000000..a2d4806f4ea --- /dev/null +++ b/.containers/apps/jackett/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + jackett: + running: true + +port: + tcp6:9117: + listening: true + +http: + http://localhost:9117/UI/Login: + status: 200 + body: + - 'Jackett' diff --git a/.containers/apps/jackett/latest-version.sh b/.containers/apps/jackett/latest-version.sh new file mode 100755 index 00000000000..d1bf1d14224 --- /dev/null +++ b/.containers/apps/jackett/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/Jackett/Jackett/releases/latest" | jq --raw-output '.tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/lidarr/BASE b/.containers/apps/lidarr/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/lidarr/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/lidarr/Dockerfile b/.containers/apps/lidarr/Dockerfile new file mode 100644 index 00000000000..012358d374b --- /dev/null +++ b/.containers/apps/lidarr/Dockerfile @@ -0,0 +1,49 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + libchromaprint-tools \ + libicu66 \ + && \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='x64' ;; \ + esac \ + && \ + curl -fsSL -o /tmp/lidarr.tar.gz \ + "https://lidarr.servarr.com/v1/update/nightly/updatefile?version=${VERSION}&os=linux&runtime=netcore&arch=${ARCH}" \ + && tar ixzf /tmp/lidarr.tar.gz -C /app --strip-components 1 \ + && \ + rm -rf \ + /app/lidarr.Update* \ + && \ + printf "UpdateMethod=docker\nBranch=nightly\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 8686 + +COPY ./.containers/apps/lidarr/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/lidarr/LICENSE b/.containers/apps/lidarr/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/lidarr/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/lidarr/PLATFORM b/.containers/apps/lidarr/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/lidarr/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/lidarr/VERSION b/.containers/apps/lidarr/VERSION new file mode 100644 index 00000000000..3c24a2e5dc4 --- /dev/null +++ b/.containers/apps/lidarr/VERSION @@ -0,0 +1 @@ +0.8.0.2096 diff --git a/.containers/apps/lidarr/entrypoint.sh b/.containers/apps/lidarr/entrypoint.sh new file mode 100755 index 00000000000..ab83da75b47 --- /dev/null +++ b/.containers/apps/lidarr/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/Lidarr --nobrowser --data=/config ${EXTRA_ARGS} diff --git a/.containers/apps/lidarr/goss.yaml b/.containers/apps/lidarr/goss.yaml new file mode 100644 index 00000000000..0386a697b5f --- /dev/null +++ b/.containers/apps/lidarr/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + Lidarr: + running: true + +port: + tcp6:8686: + listening: true + +http: + http://localhost:8686: + status: 200 + body: + - 'Lidarr' diff --git a/.containers/apps/lidarr/latest-version.sh b/.containers/apps/lidarr/latest-version.sh new file mode 100755 index 00000000000..b18c8f76544 --- /dev/null +++ b/.containers/apps/lidarr/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://lidarr.servarr.com/v1/update/nightly/changes?os=linux" | jq --raw-output '.[0].version') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/nzbget/BASE b/.containers/apps/nzbget/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/nzbget/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/nzbget/Dockerfile b/.containers/apps/nzbget/Dockerfile new file mode 100644 index 00000000000..6afa6414485 --- /dev/null +++ b/.containers/apps/nzbget/Dockerfile @@ -0,0 +1,58 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG VERSION + +USER root + +# hadolint ignore=DL3008,DL3013,DL3015,SC2086 +RUN \ + export EXTRA_INSTALL_ARG="build-essential libxml2-dev libxslt1-dev python3-dev python3-pip"; \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + p7zip-full \ + python3 \ + unrar \ + unzip \ + wget \ + ${EXTRA_INSTALL_ARG} \ + && \ + pip3 install --no-cache-dir -U \ + apprise \ + chardet \ + pynzbget \ + rarfile \ + && \ + ln -s /usr/bin/python3 /usr/bin/python \ + && \ + curl -fsSL -o /tmp/nzbget.run \ + "https://github.com/nzbget/nzbget/releases/download/v${VERSION}/nzbget-${VERSION}-bin-linux.run" \ + && sh /tmp/nzbget.run --destdir /app \ + && \ + sh /tmp/nzbget.run --destdir /app \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get remove -y ${EXTRA_INSTALL_ARG} \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 6789 + +COPY ./.containers/apps/nzbget/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/nzbget/LICENSE b/.containers/apps/nzbget/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/nzbget/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/nzbget/PLATFORM b/.containers/apps/nzbget/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/nzbget/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/nzbget/VERSION b/.containers/apps/nzbget/VERSION new file mode 100644 index 00000000000..5f39e914469 --- /dev/null +++ b/.containers/apps/nzbget/VERSION @@ -0,0 +1 @@ +21.0 diff --git a/.containers/apps/nzbget/entrypoint.sh b/.containers/apps/nzbget/entrypoint.sh new file mode 100755 index 00000000000..5b5b6d480cc --- /dev/null +++ b/.containers/apps/nzbget/entrypoint.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +if [[ ! -f "/config/nzbget.conf" ]]; then + cp /app/nzbget.conf /config/nzbget.conf + sed -i \ + -e "s#\\(MainDir=\\).*#\\1/config/downloads#g" \ + -e "s#\\(QueueDir=\\).*#\\1/config/queue#g" \ + -e "s#\\(LockFile=\\).*#\\1/config/nzbget.lock#g" \ + -e "s#\\(LogFile=\\).*#\\1/config/nzbget.log#g" \ + -e "s#\\(ShellOverride=\\).*#\\1.py=/usr/bin/python3#g" \ + "/config/nzbget.conf" +fi + +exec /app/nzbget --server --option "OutputMode=log" --configfile /config/nzbget.conf ${EXTRA_ARGS} diff --git a/.containers/apps/nzbget/goss.yaml b/.containers/apps/nzbget/goss.yaml new file mode 100644 index 00000000000..63295650379 --- /dev/null +++ b/.containers/apps/nzbget/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + nzbget: + running: true + +port: + tcp:6789: + listening: true + +http: + http://localhost:6789: + status: 200 + body: + - 'NZBGet' diff --git a/.containers/apps/nzbget/latest-version.sh b/.containers/apps/nzbget/latest-version.sh new file mode 100755 index 00000000000..a8f993bd13f --- /dev/null +++ b/.containers/apps/nzbget/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/nzbget/nzbget/releases/latest" | jq --raw-output '.tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/nzbhydra2/BASE b/.containers/apps/nzbhydra2/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/nzbhydra2/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/nzbhydra2/Dockerfile b/.containers/apps/nzbhydra2/Dockerfile new file mode 100644 index 00000000000..b171127bf87 --- /dev/null +++ b/.containers/apps/nzbhydra2/Dockerfile @@ -0,0 +1,49 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + apt-get -qq update \ + &&\ + apt-get -qq install -y \ + openjdk-11-jre-headless \ + python3 \ + unzip \ + && \ + ln -s /usr/bin/python3 /usr/bin/python \ + && \ + curl -fsSL -o /tmp/nzbhydra2.zip \ + "https://github.com/theotherp/nzbhydra2/releases/download/v${VERSION}/nzbhydra2-${VERSION}-linux.zip" \ + && unzip -q /tmp/nzbhydra2.zip -d /app \ + && curl -fsSL -o /app/nzbhydra2wrapperPy3.py \ + "https://raw.githubusercontent.com/theotherp/nzbhydra2/v${VERSION}/other/wrapper/nzbhydra2wrapperPy3.py" \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get remove -y unzip \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 5076 + +COPY ./.containers/apps/nzbhydra2/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/nzbhydra2/LICENSE b/.containers/apps/nzbhydra2/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/nzbhydra2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/nzbhydra2/PLATFORM b/.containers/apps/nzbhydra2/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/nzbhydra2/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/nzbhydra2/VERSION b/.containers/apps/nzbhydra2/VERSION new file mode 100644 index 00000000000..3e388a4ac94 --- /dev/null +++ b/.containers/apps/nzbhydra2/VERSION @@ -0,0 +1 @@ +3.13.2 diff --git a/.containers/apps/nzbhydra2/entrypoint.sh b/.containers/apps/nzbhydra2/entrypoint.sh new file mode 100755 index 00000000000..d91cb3c5abf --- /dev/null +++ b/.containers/apps/nzbhydra2/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /usr/bin/python3 /app/nzbhydra2wrapperPy3.py --nobrowser --datafolder /config ${EXTRA_ARGS} diff --git a/.containers/apps/nzbhydra2/goss.yaml b/.containers/apps/nzbhydra2/goss.yaml new file mode 100644 index 00000000000..3e616fd4bdb --- /dev/null +++ b/.containers/apps/nzbhydra2/goss.yaml @@ -0,0 +1,15 @@ +--- +process: + python3: + running: true + +port: + tcp:5076: + listening: true + +# # TODO fix this test +# http: +# http://localhost:5076: +# status: 200 +# body: +# - 'NZBHydra2' diff --git a/.containers/apps/nzbhydra2/latest-version.sh b/.containers/apps/nzbhydra2/latest-version.sh new file mode 100755 index 00000000000..62722a36652 --- /dev/null +++ b/.containers/apps/nzbhydra2/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" | jq --raw-output '.[0].tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/ombi/BASE b/.containers/apps/ombi/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/ombi/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/ombi/Dockerfile b/.containers/apps/ombi/Dockerfile new file mode 100644 index 00000000000..292257af285 --- /dev/null +++ b/.containers/apps/ombi/Dockerfile @@ -0,0 +1,54 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3015,SC2086,SC2155 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + libicu66 \ + jq \ + && \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='linux-x64' ;; \ + esac \ + && \ + export URL=$(curl -sX GET https://api.github.com/repos/Ombi-app/Ombi/releases | \ + jq -r '.[] | select(.tag_name | contains(env.VERSION)) | .assets[] | select(.browser_download_url | contains(env.ARCH)) | .browser_download_url') \ + && curl -fsSL -o /tmp/ombi.tgz "${URL}" \ + && tar ixzf /tmp/ombi.tgz -C /app \ + && \ + rm -rf \ + /tmp/ombi.tgz \ + && printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && apt-get remove -y \ + jq \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 3579 + +COPY ./.containers/apps/ombi/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/ombi/LICENSE b/.containers/apps/ombi/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/ombi/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/ombi/PLATFORM b/.containers/apps/ombi/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/ombi/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/ombi/VERSION b/.containers/apps/ombi/VERSION new file mode 100644 index 00000000000..98936bfa87a --- /dev/null +++ b/.containers/apps/ombi/VERSION @@ -0,0 +1 @@ +4.0.1275 diff --git a/.containers/apps/ombi/entrypoint.sh b/.containers/apps/ombi/entrypoint.sh new file mode 100755 index 00000000000..e26ce84ed12 --- /dev/null +++ b/.containers/apps/ombi/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/Ombi --host http://0.0.0.0:3579 --storage /config ${EXTRA_ARGS} diff --git a/.containers/apps/ombi/latest-version.sh b/.containers/apps/ombi/latest-version.sh new file mode 100755 index 00000000000..a0065554ed7 --- /dev/null +++ b/.containers/apps/ombi/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/Ombi-app/Ombi/releases" | jq --raw-output '.[0].tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/plex/BASE b/.containers/apps/plex/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/plex/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/plex/Dockerfile b/.containers/apps/plex/Dockerfile new file mode 100644 index 00000000000..7ff57bc96dc --- /dev/null +++ b/.containers/apps/plex/Dockerfile @@ -0,0 +1,93 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \ + INTEL_NEO_VERSION=21.11.19310 \ + INTEL_IGC_VERSION=1.0.6646 \ + INTEL_GMMLIB_VERSION=20.3.2 \ + PLEX_DOWNLOAD="https://downloads.plex.tv/plex-media-server-new" \ + PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/config/Library/Application Support" \ + PLEX_MEDIA_SERVER_HOME="/usr/lib/plexmediaserver" \ + PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ + PLEX_MEDIA_SERVER_USER="apps" \ + PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ + PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (truecharts)" + +# hadolint ignore=DL3008,DL3015,SC2039,SC2086 +RUN \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') \ + export ARCH='amd64'; \ + export EXTRA_INSTALL_ARG='beignet-opencl-icd ocl-icd-libopencl1'; \ + ;; \ + 'linux/arm64') \ + export ARCH='arm64'; \ + export EXTRA_INSTALL_ARG=''; \ + unset NVIDIA_DRIVER_CAPABILITIES; \ + unset INTEL_NEO_VERSION; \ + unset INTEL_IGC_VERSION; \ + unset INTEL_GMMLIB_VERSION; \ + ;; \ + esac \ + && \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + aria2 \ + unrar \ + uuid-runtime \ + xmlstarlet \ + ${EXTRA_INSTALL_ARG} \ + && \ + case "${ARCH}" in \ + 'amd64') \ + aria2c -d /tmp -o gmmlib.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-gmmlib_${INTEL_GMMLIB_VERSION}_amd64.deb \ + && apt-get install -y /tmp/gmmlib.deb \ + && aria2c -d /tmp -o intel-igc-core.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/intel-igc-core_${INTEL_IGC_VERSION}_amd64.deb \ + && aria2c -d /tmp -o intel-igc-opencl.deb https://github.com/intel/intel-graphics-compiler/releases/download/igc-${INTEL_IGC_VERSION}/intel-igc-opencl_${INTEL_IGC_VERSION}_amd64.deb \ + && apt-get install -y /tmp/intel-igc-core.deb /tmp/intel-igc-opencl.deb \ + && aria2c -d /tmp -o intel-opencl.deb https://github.com/intel/compute-runtime/releases/download/${INTEL_NEO_VERSION}/intel-opencl_${INTEL_NEO_VERSION}_amd64.deb \ + && apt-get install -y /tmp/intel-opencl.deb \ + ;; \ + esac \ + && \ + echo "Using curl or wget to download the plex debian package result in a qemu failure, why? I dunno" \ + && \ + aria2c -d /tmp -o plex.deb \ + "${PLEX_DOWNLOAD}/${VERSION}/debian/plexmediaserver_${VERSION}_${ARCH}.deb" \ + && \ + dpkg -i --force-confold --force-architecture /tmp/plex.deb \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get remove -y aria2 \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /etc/default/plexmediaserver \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 32400/tcp 1900/udp 3005/tcp 5353/udp 8324/tcp 32410/udp 32412/udp 32413/udp 32414/udp 32469/tcp + +COPY ./.containers/apps/plex/shim/plex-preferences.sh /shim/plex-preferences.sh + +COPY ./.containers/apps/plex/entrypoint.sh /entrypoint.sh + +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/plex/LICENSE b/.containers/apps/plex/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/plex/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/plex/PLATFORM b/.containers/apps/plex/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/plex/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/plex/README.md b/.containers/apps/plex/README.md new file mode 100644 index 00000000000..5da9cc44267 --- /dev/null +++ b/.containers/apps/plex/README.md @@ -0,0 +1,3 @@ +# plex-media-server + +**Do not use this image, this is currently for testing a new plex chart and using this container image** diff --git a/.containers/apps/plex/VERSION b/.containers/apps/plex/VERSION new file mode 100644 index 00000000000..0c42bdec330 --- /dev/null +++ b/.containers/apps/plex/VERSION @@ -0,0 +1 @@ +1.22.1.4228-724c56e62 diff --git a/.containers/apps/plex/entrypoint.sh b/.containers/apps/plex/entrypoint.sh new file mode 100755 index 00000000000..c0572c979bc --- /dev/null +++ b/.containers/apps/plex/entrypoint.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" +source "/shim/plex-preferences.sh" + +#shellcheck disable=SC2155 +export PLEX_MEDIA_SERVER_INFO_MODEL=$(uname -m) +#shellcheck disable=SC2155 +export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION=$(uname -r) + +exec /usr/lib/plexmediaserver/Plex\ Media\ Server diff --git a/.containers/apps/plex/goss.yaml b/.containers/apps/plex/goss.yaml new file mode 100644 index 00000000000..2c1f71e6269 --- /dev/null +++ b/.containers/apps/plex/goss.yaml @@ -0,0 +1,15 @@ +--- +process: + Plex Media Serv: + running: true + +port: + tcp6:32400: + listening: true + +# # TODO fix this test +# http: +# http://localhost:32400: +# status: 200 +# body: +# - 'Plex' diff --git a/.containers/apps/plex/latest-version.sh b/.containers/apps/plex/latest-version.sh new file mode 100755 index 00000000000..bd78d04fdf4 --- /dev/null +++ b/.containers/apps/plex/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET 'https://plex.tv/api/downloads/5.json' | jq -r '.computer.Linux.version') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/plex/shim/plex-preferences.sh b/.containers/apps/plex/shim/plex-preferences.sh new file mode 100755 index 00000000000..70b7267c546 --- /dev/null +++ b/.containers/apps/plex/shim/plex-preferences.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +# This file is based off of the official 40-plex-first-run +# Here: https://github.com/plexinc/pms-docker/blob/master/root/etc/cont-init.d/40-plex-first-run +# It should live in /etc/cont-init.d/ + +# If we are debugging, enable trace +if [ "${DEBUG,,}" = "true" ]; then + set -x +fi + +function getPref { + local key="${1}" + + xmlstarlet sel -T -t -m "/Preferences" -v "@${key}" -n "${prefFile}" +} + +function setPref { + local key="${1}" + local value="${2}" + + count="$(xmlstarlet sel -t -v "count(/Preferences/@${key})" "${prefFile}")" + count=$(($count + 0)) + if [[ $count > 0 ]]; then + xmlstarlet ed --inplace --update "/Preferences/@${key}" -v "${value}" "${prefFile}" + else + xmlstarlet ed --inplace --insert "/Preferences" --type attr -n "${key}" -v "${value}" "${prefFile}" + fi +} + +prefFile="${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/Preferences.xml" + +# Setup Server's client identifier +serial="$(getPref "MachineIdentifier")" +if [ -z "${serial}" ]; then + serial="$(uuidgen)" + setPref "MachineIdentifier" "${serial}" +fi +clientId="$(getPref "ProcessedMachineIdentifier")" +if [ -z "${clientId}" ]; then + clientId="$(echo -n "${serial}- Plex Media Server" | sha1sum | cut -b 1-40)" + setPref "ProcessedMachineIdentifier" "${clientId}" +fi + +# Get server token and only turn claim token into server token if we have former but not latter. +token="$(getPref "PlexOnlineToken")" +if [ ! -z "${PLEX_CLAIM}" ] && [ -z "${token}" ]; then + echo "Attempting to obtain server token from claim token" + loginInfo="$(curl -X POST \ + -H 'X-Plex-Client-Identifier: '${clientId} \ + -H 'X-Plex-Product: Plex Media Server'\ + -H 'X-Plex-Version: 1.1' \ + -H 'X-Plex-Provides: server' \ + -H 'X-Plex-Platform: Linux' \ + -H 'X-Plex-Platform-Version: 1.0' \ + -H 'X-Plex-Device-Name: PlexMediaServer' \ + -H 'X-Plex-Device: Linux' \ + "https://plex.tv/api/claim/exchange?token=${PLEX_CLAIM}")" + token="$(echo "$loginInfo" | sed -n 's/.*\(.*\)<\/authentication-token>.*/\1/p')" + + if [ "$token" ]; then + echo "Token obtained successfully" + setPref "PlexOnlineToken" "${token}" + fi +fi + +if [ -n "${ADVERTISE_IP}" ]; then + setPref "customConnections" "${ADVERTISE_IP}" +fi + +if [ -n "${ALLOWED_NETWORKS}" ]; then + setPref "allowedNetworks" "${ALLOWED_NETWORKS}" +fi + +# Set transcoder temp if not yet set +if [ -z "$(getPref "TranscoderTempDirectory")" ]; then + setPref "TranscoderTempDirectory" "/transcode" +fi + +# Parse list of all exported variables that start with PLEX_PREFERENCE_ +# The format of which is PLEX_PREFERENCE_="Key=Value" +# Where Key is the EXACT key to use in the Plex Preference file +# And Value is the EXACT value to use in the Plex Preference file for that key. +# Please note it looks like many of the key's are camelCase in some fashion. +# Additionally there are likely some preferences where environment variable injection +# doesn't really work for. +for var in "${!PLEX_PREFERENCE_@}"; do + value="${!var}" + PreferenceValue="${value#*=}" + PreferenceKey="${value%=*}" + setPref "${PreferenceKey}" "${PreferenceValue}" +done + +echo "Plex Media Server preferences updated" diff --git a/.containers/apps/qbittorrent/BASE b/.containers/apps/qbittorrent/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/qbittorrent/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/qbittorrent/Dockerfile b/.containers/apps/qbittorrent/Dockerfile new file mode 100644 index 00000000000..31f3db04334 --- /dev/null +++ b/.containers/apps/qbittorrent/Dockerfile @@ -0,0 +1,135 @@ +# +# NOTE: qbittorrent >= 4.3.0 requires libtorrent-rasterbar >= 1.2 +# hence all the scattered logic written below +# + +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest as builder + +ARG TARGETPLATFORM +ARG VERSION + +# hadolint ignore=DL3002 +USER root + +WORKDIR /tmp + +# Install system dependencies +# hadolint ignore=DL3008 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y --no-install-recommends \ + build-essential \ + cmake \ + git \ + libboost-chrono-dev \ + libboost-dev \ + libboost-random-dev \ + libboost-system-dev \ + libgeoip-dev \ + libqt5svg5-dev \ + libssl-dev \ + ninja-build \ + pkg-config \ + qtbase5-dev \ + qttools5-dev \ + zlib1g-dev + +# Install lintorrent-rasterbar dependencies +RUN \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='amd64' ;; \ + esac \ + && echo "arch: ${ARCH}" \ + && \ + export LIBTORRENT_DEB="libtorrent-rasterbar10_1.2.12+git20210118.3efdb8a941-1ppa1~20.04_${ARCH}.deb" \ + && export LIBTORRENT_DEV_DEB="libtorrent-rasterbar-dev_1.2.12+git20210118.3efdb8a941-1ppa1~20.04_${ARCH}.deb" \ + && echo "libtorrent deb: ${LIBTORRENT_DEB}" \ + && echo "libtorrent-dev deb: ${LIBTORRENT_DEB}" \ + && \ + curl -fsSL -o libtorrent-rasterbar.deb \ + "https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-stable/+files/${LIBTORRENT_DEB}" \ + && dpkg -i libtorrent-rasterbar.deb \ + && rm -rf libtorrent-rasterbar.deb \ + && \ + curl -fsSL -o libtorrent-rasterbar-dev.deb \ + "https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-stable/+files/${LIBTORRENT_DEV_DEB}" \ + && dpkg -i libtorrent-rasterbar-dev.deb \ + && rm -rf libtorrent-rasterbar-dev.deb + +# Compile qbitorrent +RUN \ + git clone --depth 1 -b release-${VERSION} https://github.com/qbittorrent/qBittorrent.git . \ + && \ + case "${TARGETPLATFORM}" in \ + 'linux/arm/v7') export EXTRA_CFG_ARG="--with-boost-libdir=/usr/lib/arm-linux-gnueabihf" ;; \ + esac \ + && ./configure ${EXTRA_CFG_ARG} --disable-gui --disable-stacktrace \ + && make \ + && make install + +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +# Proper way to set config directory +ENV HOME=/config \ + XDG_CONFIG_HOME=/config \ + XDG_DATA_HOME=/config \ + WEBUI_PORT=8080 + +USER root + +COPY --from=builder /usr/local/bin/qbittorrent-nox /app/qbittorrent-nox + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='amd64' ;; \ + esac \ + && \ + export LIBTORRENT_DEB="libtorrent-rasterbar10_1.2.12+git20210118.3efdb8a941-1ppa1~20.04_${ARCH}.deb" \ + && \ + curl -fsSL -o libtorrent-rasterbar.deb \ + "https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-stable/+files/${LIBTORRENT_DEB}" \ + && dpkg -i libtorrent-rasterbar.deb \ + && rm -rf libtorrent-rasterbar.deb \ + && \ + apt-get -qq update \ + && \ + apt-get install -y \ + geoip-bin \ + libqt5network5 \ + libqt5xml5 \ + p7zip-full \ + python3 \ + unrar \ + unzip \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 6881 6881/udp ${WEBUI_PORT} + +COPY ./.containers/apps/qbittorrent/qBittorrent.conf /app/qBittorrent.conf + +COPY ./.containers/apps/qbittorrent/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/qbittorrent/LICENSE b/.containers/apps/qbittorrent/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/qbittorrent/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/qbittorrent/PLATFORM b/.containers/apps/qbittorrent/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/qbittorrent/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/qbittorrent/VERSION b/.containers/apps/qbittorrent/VERSION new file mode 100644 index 00000000000..afaf52f1971 --- /dev/null +++ b/.containers/apps/qbittorrent/VERSION @@ -0,0 +1 @@ +4.3.4.1 diff --git a/.containers/apps/qbittorrent/entrypoint.sh b/.containers/apps/qbittorrent/entrypoint.sh new file mode 100755 index 00000000000..72f501dde54 --- /dev/null +++ b/.containers/apps/qbittorrent/entrypoint.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +if [[ ! -f "/config/qBittorrent/qBittorrent.conf" ]]; then + mkdir -p /config/qBittorrent + cp /app/qBittorrent.conf /config/qBittorrent/qBittorrent.conf +fi + +exec /app/qbittorrent-nox --webui-port="${WEBUI_PORT}" ${EXTRA_ARGS} diff --git a/.containers/apps/qbittorrent/goss.yaml b/.containers/apps/qbittorrent/goss.yaml new file mode 100644 index 00000000000..570916e3ca3 --- /dev/null +++ b/.containers/apps/qbittorrent/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + qbittorrent-nox: + running: true + +port: + tcp6:8080: + listening: true + +http: + http://localhost:8080: + status: 200 + body: + - 'qBittorrent Web UI' diff --git a/.containers/apps/qbittorrent/latest-version.sh b/.containers/apps/qbittorrent/latest-version.sh new file mode 100755 index 00000000000..3a90ad4e096 --- /dev/null +++ b/.containers/apps/qbittorrent/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/qbittorrent/qBittorrent/tags" | jq --raw-output '.[0].name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/qbittorrent/qBittorrent.conf b/.containers/apps/qbittorrent/qBittorrent.conf new file mode 100644 index 00000000000..49339bac5b2 --- /dev/null +++ b/.containers/apps/qbittorrent/qBittorrent.conf @@ -0,0 +1,16 @@ +[AutoRun] +enabled=false +program= + +[LegalNotice] +Accepted=true + +[Preferences] +Connection\UPnP=false +Connection\PortRangeMin=6881 +Downloads\SavePath=/downloads/downloads +Downloads\ScanDirsV2=@Variant(\0\0\0\x1c\0\0\0\0) +Downloads\TempPath=/downloads/incomplete +WebUI\Address=* +WebUI\ServerDomains=* +WebUI\HostHeaderValidation=false diff --git a/.containers/apps/radarr/BASE b/.containers/apps/radarr/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/radarr/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/radarr/Dockerfile b/.containers/apps/radarr/Dockerfile new file mode 100644 index 00000000000..76071b0c309 --- /dev/null +++ b/.containers/apps/radarr/Dockerfile @@ -0,0 +1,49 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +# hadolint ignore=DL3008,DL3015 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + libicu66 \ + libmediainfo0v5 \ + && \ + case "${TARGETPLATFORM}" in \ + 'linux/amd64') export ARCH='x64' ;; \ + esac \ + && \ + curl -fsSL -o /tmp/radarr.tar.gz \ + "https://radarr.servarr.com/v1/update/master/updatefile?version=${VERSION}&os=linux&runtime=netcore&arch=${ARCH}" \ + && tar ixzf /tmp/radarr.tar.gz -C /app --strip-components 1 \ + && \ + rm -rf \ + /app/Radarr.Update* \ + && \ + printf "UpdateMethod=docker\nBranch=master\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 7878 + +COPY ./.containers/apps/radarr/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/radarr/LICENSE b/.containers/apps/radarr/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/radarr/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/radarr/PLATFORM b/.containers/apps/radarr/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/radarr/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/radarr/VERSION b/.containers/apps/radarr/VERSION new file mode 100644 index 00000000000..b3be88f5331 --- /dev/null +++ b/.containers/apps/radarr/VERSION @@ -0,0 +1 @@ +3.0.2.4552 diff --git a/.containers/apps/radarr/entrypoint.sh b/.containers/apps/radarr/entrypoint.sh new file mode 100755 index 00000000000..63f438f0e03 --- /dev/null +++ b/.containers/apps/radarr/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/Radarr --nobrowser --data=/config ${EXTRA_ARGS} diff --git a/.containers/apps/radarr/goss.yaml b/.containers/apps/radarr/goss.yaml new file mode 100644 index 00000000000..525db00ed8a --- /dev/null +++ b/.containers/apps/radarr/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + Radarr: + running: true + +port: + tcp6:7878: + listening: true + +http: + http://localhost:7878: + status: 200 + body: + - 'Radarr' diff --git a/.containers/apps/radarr/latest-version.sh b/.containers/apps/radarr/latest-version.sh new file mode 100755 index 00000000000..902d2fa864e --- /dev/null +++ b/.containers/apps/radarr/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://radarr.servarr.com/v1/update/master/changes?os=linux" | jq --raw-output '.[0].version') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/readarr/BASE b/.containers/apps/readarr/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/readarr/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/readarr/Dockerfile b/.containers/apps/readarr/Dockerfile new file mode 100644 index 00000000000..30e050637b8 --- /dev/null +++ b/.containers/apps/readarr/Dockerfile @@ -0,0 +1,43 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG VERSION + +USER root + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + libicu66 \ + && \ + curl -fsSL -o /tmp/readarr.tar.gz \ + "https://readarr.servarr.com/v1/update/nightly/updatefile?version=${VERSION}&os=linux&runtime=netcore&arch=x64" \ + && tar ixzf /tmp/readarr.tar.gz -C /app --strip-components 1 \ + && \ + rm -rf \ + /app/readarr.Update* \ + && \ + printf "UpdateMethod=docker\nBranch=nightly\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 8787 + +COPY ./.containers/apps/readarr/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/readarr/PLATFORM b/.containers/apps/readarr/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/readarr/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/readarr/VERSION b/.containers/apps/readarr/VERSION new file mode 100644 index 00000000000..db5d9691016 --- /dev/null +++ b/.containers/apps/readarr/VERSION @@ -0,0 +1 @@ +0.1.0.545 diff --git a/.containers/apps/readarr/entrypoint.sh b/.containers/apps/readarr/entrypoint.sh new file mode 100755 index 00000000000..44a2bdc7d69 --- /dev/null +++ b/.containers/apps/readarr/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/Readarr --nobrowser --data=/config ${EXTRA_ARGS} diff --git a/.containers/apps/readarr/goss.yaml b/.containers/apps/readarr/goss.yaml new file mode 100644 index 00000000000..ac261f43ba7 --- /dev/null +++ b/.containers/apps/readarr/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + Readarr: + running: true + +port: + tcp6:8787: + listening: true + +http: + http://localhost:8787: + status: 200 + body: + - 'Readarr' diff --git a/.containers/apps/readarr/latest-version.sh b/.containers/apps/readarr/latest-version.sh new file mode 100755 index 00000000000..3b743f0b8f6 --- /dev/null +++ b/.containers/apps/readarr/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -fsSL "https://readarr.servarr.com/v1/update/nightly/changes?os=linux&runtime=netcore" | jq --raw-output '.[0].version') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/sabnzbd/BASE b/.containers/apps/sabnzbd/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/sabnzbd/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/sabnzbd/Dockerfile b/.containers/apps/sabnzbd/Dockerfile new file mode 100644 index 00000000000..c696e9c22c4 --- /dev/null +++ b/.containers/apps/sabnzbd/Dockerfile @@ -0,0 +1,56 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG VERSION +ARG TARGETPLATFORM + +USER root + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3013,DL3015,SC2086 +RUN \ + export EXTRA_INSTALL_ARG="build-essential libffi-dev libssl-dev python3-dev python3-pip"; \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + p7zip-full \ + par2 \ + python3 \ + python3-distutils \ + unrar \ + unzip \ + ${EXTRA_INSTALL_ARG} \ + && \ + ln -s /usr/bin/python3 /usr/bin/python \ + && \ + curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${VERSION}/SABnzbd-${VERSION}-src.tar.gz" | tar xzf - -C /app --strip-components=1 \ + && \ + pip3 install --no-cache-dir -U -r /app/requirements.txt \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + pip3 install --no-cache-dir -U \ + apprise \ + && apt-get remove -y ${EXTRA_INSTALL_ARG} \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 8080 + +COPY ./.containers/apps/sabnzbd/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/sabnzbd/LICENSE b/.containers/apps/sabnzbd/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/sabnzbd/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/sabnzbd/PLATFORM b/.containers/apps/sabnzbd/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/sabnzbd/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/sabnzbd/VERSION b/.containers/apps/sabnzbd/VERSION new file mode 100644 index 00000000000..944880fa15e --- /dev/null +++ b/.containers/apps/sabnzbd/VERSION @@ -0,0 +1 @@ +3.2.0 diff --git a/.containers/apps/sabnzbd/entrypoint.sh b/.containers/apps/sabnzbd/entrypoint.sh new file mode 100755 index 00000000000..130399f70b1 --- /dev/null +++ b/.containers/apps/sabnzbd/entrypoint.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +if [[ ! -f "/config/sabnzbd.ini" ]]; then + printf "Copying over default configuration ... " + mkdir -p /config/sabnzbd + cp /app/sabnzbd.ini /config/sabnzbd.ini + + printf "Creating api keys ... " + api_key=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1) + nzb_key=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1) + sed -i -e "s/^api_key *=.*$/api_key = ${api_key}/g" /config/sabnzbd.ini + sed -i -e "s/^nzb_key *=.*$/nzb_key = ${nzb_key}/g" /config/sabnzbd.ini +fi + +if [[ -n ${HOST_WHITELIST_ENTRIES} ]]; then + printf "Updating host_whitelist setting ... " + sed -i -e "s/^host_whitelist *=.*$/host_whitelist = ${HOSTNAME}, ${HOST_WHITELIST_ENTRIES}/g" /config/sabnzbd.ini +fi + +exec /usr/bin/python3 /app/SABnzbd.py --browser 0 --server 0.0.0.0:8080 --config-file /config/sabnzbd.ini ${EXTRA_ARGS} diff --git a/.containers/apps/sabnzbd/goss.yaml b/.containers/apps/sabnzbd/goss.yaml new file mode 100644 index 00000000000..52bc578f8e6 --- /dev/null +++ b/.containers/apps/sabnzbd/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + python3: + running: true + +port: + tcp:8080: + listening: true + +http: + http://localhost:8080/sabnzbd: + status: 200 + body: + - 'SABnzbd Quick-Start Wizard' diff --git a/.containers/apps/sabnzbd/latest-version.sh b/.containers/apps/sabnzbd/latest-version.sh new file mode 100755 index 00000000000..0e07bf85b83 --- /dev/null +++ b/.containers/apps/sabnzbd/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version="$(curl -sX GET "https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest" | jq --raw-output '.tag_name')" +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/sabnzbd/sabnzbd.ini b/.containers/apps/sabnzbd/sabnzbd.ini new file mode 100644 index 00000000000..8884a0453b3 --- /dev/null +++ b/.containers/apps/sabnzbd/sabnzbd.ini @@ -0,0 +1,304 @@ +__version__ = 19 +__encoding__ = utf-8 +[misc] +pre_script = None +queue_complete = "" +queue_complete_pers = 0 +bandwidth_perc = 100 +refresh_rate = 0 +interface_settings = "" +queue_limit = 20 +config_lock = 0 +sched_converted = 0 +notified_new_skin = 0 +direct_unpack_tested = 0 +check_new_rel = 1 +auto_browser = 0 +language = en +enable_https_verification = 1 +host = 0.0.0.0 +port = 8080 +https_port = "" +username = "" +password = "" +bandwidth_max = "" +cache_limit = "" +web_dir = Glitter +web_color = "" +https_cert = server.cert +https_key = server.key +https_chain = "" +enable_https = 0 +inet_exposure = 0 +local_ranges = , +api_key = "" +nzb_key = "" +permissions = "" +download_dir = Downloads/incomplete +download_free = "" +complete_dir = Downloads/complete +complete_free = "" +fulldisk_autoresume = 0 +script_dir = "" +nzb_backup_dir = "" +admin_dir = admin +dirscan_dir = "" +dirscan_speed = 5 +password_file = "" +log_dir = logs +max_art_tries = 3 +load_balancing = 2 +top_only = 0 +sfv_check = 1 +quick_check_ext_ignore = nfo, sfv, srr +script_can_fail = 0 +enable_recursive = 1 +flat_unpack = 0 +par_option = "" +pre_check = 0 +nice = "" +win_process_prio = 3 +ionice = "" +fail_hopeless_jobs = 1 +fast_fail = 1 +auto_disconnect = 1 +no_dupes = 0 +no_series_dupes = 0 +series_propercheck = 1 +pause_on_pwrar = 1 +ignore_samples = 0 +deobfuscate_final_filenames = 0 +auto_sort = "" +direct_unpack = 0 +direct_unpack_threads = 3 +propagation_delay = 0 +folder_rename = 1 +replace_spaces = 0 +replace_dots = 0 +safe_postproc = 1 +pause_on_post_processing = 0 +sanitize_safe = 0 +cleanup_list = , +unwanted_extensions = , +action_on_unwanted_extensions = 0 +new_nzb_on_failure = 0 +history_retention = 0 +enable_meta = 1 +quota_size = "" +quota_day = "" +quota_resume = 0 +quota_period = m +rating_enable = 0 +rating_host = "" +rating_api_key = "" +rating_filter_enable = 0 +rating_filter_abort_audio = 0 +rating_filter_abort_video = 0 +rating_filter_abort_encrypted = 0 +rating_filter_abort_encrypted_confirm = 0 +rating_filter_abort_spam = 0 +rating_filter_abort_spam_confirm = 0 +rating_filter_abort_downvoted = 0 +rating_filter_abort_keywords = "" +rating_filter_pause_audio = 0 +rating_filter_pause_video = 0 +rating_filter_pause_encrypted = 0 +rating_filter_pause_encrypted_confirm = 0 +rating_filter_pause_spam = 0 +rating_filter_pause_spam_confirm = 0 +rating_filter_pause_downvoted = 0 +rating_filter_pause_keywords = "" +enable_tv_sorting = 0 +tv_sort_string = "" +tv_sort_countries = 1 +tv_categories = "" +enable_movie_sorting = 0 +movie_sort_string = "" +movie_sort_extra = -cd%1 +movie_extra_folder = 0 +movie_categories = movies, +enable_date_sorting = 0 +date_sort_string = "" +date_categories = tv, +schedlines = , +rss_rate = 60 +ampm = 0 +replace_illegal = 1 +start_paused = 0 +enable_all_par = 0 +enable_par_cleanup = 1 +enable_unrar = 1 +enable_unzip = 1 +enable_7zip = 1 +enable_filejoin = 1 +enable_tsjoin = 1 +overwrite_files = 0 +ignore_unrar_dates = 0 +backup_for_duplicates = 1 +empty_postproc = 0 +wait_for_dfolder = 0 +rss_filenames = 0 +api_logging = 1 +html_login = 1 +osx_menu = 1 +osx_speed = 1 +warn_dupl_jobs = 1 +helpfull_warnings = 1 +keep_awake = 1 +win_menu = 1 +allow_incomplete_nzb = 0 +enable_broadcast = 1 +max_art_opt = 0 +ipv6_hosting = 0 +fixed_ports = 1 +api_warnings = 1 +disable_api_key = 0 +no_penalties = 0 +x_frame_options = 1 +require_modern_tls = 0 +num_decoders = 3 +rss_odd_titles = nzbindex.nl/, nzbindex.com/, nzbclub.com/ +req_completion_rate = 100.2 +selftest_host = self-test.sabnzbd.org +movie_rename_limit = 100M +size_limit = 0 +show_sysload = 2 +history_limit = 10 +wait_ext_drive = 5 +max_foldername_length = 246 +nomedia_marker = "" +ipv6_servers = 1 +url_base = /sabnzbd +host_whitelist = 2b4152ea8457, +max_url_retries = 10 +downloader_sleep_time = 10 +ssdp_broadcast_interval = 15 +email_server = "" +email_to = , +email_from = "" +email_account = "" +email_pwd = "" +email_endjob = 0 +email_full = 0 +email_dir = "" +email_rss = 0 +email_cats = *, +[logging] +log_level = 1 +max_log_size = 5242880 +log_backups = 5 +[ncenter] +ncenter_enable = 0 +ncenter_cats = *, +ncenter_prio_startup = 1 +ncenter_prio_download = 0 +ncenter_prio_pause_resume = 0 +ncenter_prio_pp = 0 +ncenter_prio_complete = 1 +ncenter_prio_failed = 1 +ncenter_prio_disk_full = 1 +ncenter_prio_new_login = 0 +ncenter_prio_warning = 0 +ncenter_prio_error = 0 +ncenter_prio_queue_done = 1 +ncenter_prio_other = 1 +[acenter] +acenter_enable = 0 +acenter_cats = *, +acenter_prio_startup = 0 +acenter_prio_download = 0 +acenter_prio_pause_resume = 0 +acenter_prio_pp = 0 +acenter_prio_complete = 1 +acenter_prio_failed = 1 +acenter_prio_disk_full = 1 +acenter_prio_new_login = 0 +acenter_prio_warning = 0 +acenter_prio_error = 0 +acenter_prio_queue_done = 1 +acenter_prio_other = 1 +[ntfosd] +ntfosd_enable = 1 +ntfosd_cats = *, +ntfosd_prio_startup = 1 +ntfosd_prio_download = 0 +ntfosd_prio_pause_resume = 0 +ntfosd_prio_pp = 0 +ntfosd_prio_complete = 1 +ntfosd_prio_failed = 1 +ntfosd_prio_disk_full = 1 +ntfosd_prio_new_login = 0 +ntfosd_prio_warning = 0 +ntfosd_prio_error = 0 +ntfosd_prio_queue_done = 1 +ntfosd_prio_other = 1 +[prowl] +prowl_enable = 0 +prowl_cats = *, +prowl_apikey = "" +prowl_prio_startup = -3 +prowl_prio_download = -3 +prowl_prio_pause_resume = -3 +prowl_prio_pp = -3 +prowl_prio_complete = 0 +prowl_prio_failed = 1 +prowl_prio_disk_full = 1 +prowl_prio_new_login = -3 +prowl_prio_warning = -3 +prowl_prio_error = -3 +prowl_prio_queue_done = 0 +prowl_prio_other = 0 +[pushover] +pushover_token = "" +pushover_userkey = "" +pushover_device = "" +pushover_emergency_expire = 3600 +pushover_emergency_retry = 60 +pushover_enable = 0 +pushover_cats = *, +pushover_prio_startup = -3 +pushover_prio_download = -2 +pushover_prio_pause_resume = -2 +pushover_prio_pp = -3 +pushover_prio_complete = -1 +pushover_prio_failed = -1 +pushover_prio_disk_full = 1 +pushover_prio_new_login = -3 +pushover_prio_warning = 1 +pushover_prio_error = 1 +pushover_prio_queue_done = -1 +pushover_prio_other = -1 +[pushbullet] +pushbullet_enable = 0 +pushbullet_cats = *, +pushbullet_apikey = "" +pushbullet_device = "" +pushbullet_prio_startup = 0 +pushbullet_prio_download = 0 +pushbullet_prio_pause_resume = 0 +pushbullet_prio_pp = 0 +pushbullet_prio_complete = 1 +pushbullet_prio_failed = 1 +pushbullet_prio_disk_full = 1 +pushbullet_prio_new_login = 0 +pushbullet_prio_warning = 0 +pushbullet_prio_error = 0 +pushbullet_prio_queue_done = 0 +pushbullet_prio_other = 1 +[nscript] +nscript_enable = 0 +nscript_cats = *, +nscript_script = "" +nscript_parameters = "" +nscript_prio_startup = 1 +nscript_prio_download = 0 +nscript_prio_pause_resume = 0 +nscript_prio_pp = 0 +nscript_prio_complete = 1 +nscript_prio_failed = 1 +nscript_prio_disk_full = 1 +nscript_prio_new_login = 0 +nscript_prio_warning = 0 +nscript_prio_error = 0 +nscript_prio_queue_done = 1 +nscript_prio_other = 1 diff --git a/.containers/apps/sonarr/BASE b/.containers/apps/sonarr/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/sonarr/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/sonarr/Dockerfile b/.containers/apps/sonarr/Dockerfile new file mode 100644 index 00000000000..7650b012209 --- /dev/null +++ b/.containers/apps/sonarr/Dockerfile @@ -0,0 +1,58 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG VERSION + +USER root + +# https://download.mono-project.com/repo/ubuntu/dists/focal/snapshots/ +ENV MONO_VERSION=6.12.0.122 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3015,SC2086 +RUN \ + apt-get -qq update \ + && apt-get -qq install -y gnupg \ + && \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ + && echo "deb https://download.mono-project.com/repo/ubuntu focal/snapshots/${MONO_VERSION} main" | tee /etc/apt/sources.list.d/mono-official.list \ + && apt-get -qq update \ + && \ + apt-get -qq install -y \ + mono-complete=${MONO_VERSION}\* \ + libmediainfo0v5 \ + && \ + curl -fsSL -o /tmp/sonarr.tar.gz \ + "https://download.sonarr.tv/v3/main/${VERSION}/Sonarr.main.${VERSION}.linux.tar.gz" \ + && tar ixzf /tmp/sonarr.tar.gz -C /app --strip-components 1 \ + && \ + rm -rf \ + /app/Sonarr.Update* \ + && \ + printf "UpdateMethod=docker\nBranch=main\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + gpgconf --kill all \ + && apt-get remove -y gnupg2 \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/cache/apt/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 8989 + +COPY ./.containers/apps/sonarr/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/sonarr/LICENSE b/.containers/apps/sonarr/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/sonarr/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/sonarr/PLATFORM b/.containers/apps/sonarr/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/sonarr/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/sonarr/VERSION b/.containers/apps/sonarr/VERSION new file mode 100644 index 00000000000..014632ec24d --- /dev/null +++ b/.containers/apps/sonarr/VERSION @@ -0,0 +1 @@ +3.0.5.1144 diff --git a/.containers/apps/sonarr/entrypoint.sh b/.containers/apps/sonarr/entrypoint.sh new file mode 100755 index 00000000000..4fdde94e062 --- /dev/null +++ b/.containers/apps/sonarr/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /usr/bin/mono --debug /app/Sonarr.exe --nobrowser --data=/config ${EXTRA_ARGS} diff --git a/.containers/apps/sonarr/goss.yaml b/.containers/apps/sonarr/goss.yaml new file mode 100644 index 00000000000..0747e31f21b --- /dev/null +++ b/.containers/apps/sonarr/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + mono: + running: true + +port: + tcp:8989: + listening: true + +http: + http://localhost:8989: + status: 200 + body: + - 'Sonarr (Preview)' diff --git a/.containers/apps/sonarr/latest-version.sh b/.containers/apps/sonarr/latest-version.sh new file mode 100755 index 00000000000..052b7f0c3d0 --- /dev/null +++ b/.containers/apps/sonarr/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://services.sonarr.tv/v1/download/main?version=3" | jq --raw-output '.version') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/tautulli/BASE b/.containers/apps/tautulli/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/tautulli/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/tautulli/Dockerfile b/.containers/apps/tautulli/Dockerfile new file mode 100644 index 00000000000..26cf24900ff --- /dev/null +++ b/.containers/apps/tautulli/Dockerfile @@ -0,0 +1,58 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +USER root + +ENV TAUTULLI_DOCKER="True" + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008,DL3013,DL3015,SC2086 +RUN \ + export EXTRA_INSTALL_ARG="build-essential libssl-dev libffi-dev python3-dev python3-pip"; \ + apt-get -qq update \ + && \ + apt-get -qq install -y \ + python3 \ + python3-setuptools \ + ${EXTRA_INSTALL_ARG} \ + && \ + ln -s /usr/bin/python3 /usr/bin/python \ + && \ + curl -fsSL "https://github.com/Tautulli/Tautulli/archive/v${VERSION}.tar.gz" | tar xzf - -C /app --strip-components 1 \ + && \ + echo "${VERSION}" > /app/version.txt \ + && \ + echo "master" > /app/branch.txt \ + && \ + pip3 install --no-cache-dir -U \ + plexapi \ + pycryptodomex \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get remove -y ${EXTRA_INSTALL_ARG} \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE 8181 + +COPY ./.containers/apps/tautulli/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/tautulli/LICENSE b/.containers/apps/tautulli/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/apps/tautulli/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/apps/tautulli/PLATFORM b/.containers/apps/tautulli/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/tautulli/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/tautulli/VERSION b/.containers/apps/tautulli/VERSION new file mode 100644 index 00000000000..a04abec9149 --- /dev/null +++ b/.containers/apps/tautulli/VERSION @@ -0,0 +1 @@ +2.6.10 diff --git a/.containers/apps/tautulli/entrypoint.sh b/.containers/apps/tautulli/entrypoint.sh new file mode 100755 index 00000000000..16b48c7fb84 --- /dev/null +++ b/.containers/apps/tautulli/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /usr/bin/python3 /app/Tautulli.py --nolaunch --config /config/config.ini --datadir /config ${EXTRA_ARGS} diff --git a/.containers/apps/tautulli/goss.yaml b/.containers/apps/tautulli/goss.yaml new file mode 100644 index 00000000000..395b64626f5 --- /dev/null +++ b/.containers/apps/tautulli/goss.yaml @@ -0,0 +1,15 @@ +--- +process: + python3: + running: true + +port: + tcp:8181: + listening: true + +# # TODO fix this test +# http: +# http://localhost:8181: +# status: 200 +# body: +# - 'Tautulli' diff --git a/.containers/apps/tautulli/latest-version.sh b/.containers/apps/tautulli/latest-version.sh new file mode 100755 index 00000000000..1a88cd869b7 --- /dev/null +++ b/.containers/apps/tautulli/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/Tautulli/Tautulli/releases/latest" | jq --raw-output '. | .tag_name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/apps/transmission/BASE b/.containers/apps/transmission/BASE new file mode 100644 index 00000000000..9fd71036bad --- /dev/null +++ b/.containers/apps/transmission/BASE @@ -0,0 +1 @@ +focal-20210217 diff --git a/.containers/apps/transmission/Dockerfile b/.containers/apps/transmission/Dockerfile new file mode 100644 index 00000000000..fe604e65081 --- /dev/null +++ b/.containers/apps/transmission/Dockerfile @@ -0,0 +1,94 @@ +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest as builder + +ARG TARGETPLATFORM +ARG VERSION + +# hadolint ignore=DL3002 +USER root + +WORKDIR /tmp + +# Install system dependencies +# hadolint ignore=DL3008 +RUN \ + apt-get -qq update \ + && \ + apt-get -qq install -y --no-install-recommends \ + autoconf \ + automake \ + build-essential \ + cmake \ + git \ + intltool \ + libappindicator3-dev \ + libcurl4-openssl-dev \ + libevent-dev \ + libglib2.0-dev \ + libminiupnpc-dev \ + libssh-dev \ + libtool \ + pkg-config + +# Compile transmission +RUN \ + git clone --depth 1 -b ${VERSION} https://github.com/transmission/transmission.git . \ + && git submodule update --init \ + && ./autogen.sh --without-gtk \ + && make -s \ + && make install + +# hadolint ignore=DL3007 +FROM ghcr.io/truecharts/ubuntu:latest + +ARG TARGETPLATFORM +ARG VERSION + +# Proper way to set config directory +ENV HOME=/config \ + XDG_CONFIG_HOME=/config \ + XDG_DATA_HOME=/config \ + WEBUI_PORT=9091 \ + TRANSMISSION_WEB_HOME=/web + +USER root + +COPY --from=builder /usr/local/bin/transmission-daemon /app/transmission-daemon +COPY --from=builder /usr/local/share/transmission/web /web + +# hadolint ignore=DL3008,DL3015 +RUN \ + apt-get -qq update \ + && \ + apt-get install -y \ + libevent-dev \ + libminiupnpc-dev \ + p7zip-full \ + python3 \ + rsync \ + unrar \ + unzip \ + && \ + printf "UpdateMethod=docker\nPackageVersion=%s\nPackageAuthor=[TrueCharts Project](https://truecharts.org)" "${VERSION}" > /app/package_info \ + && \ + apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/ \ + && chmod -R u=rwX,go=rX /app \ + && chmod -R u=rwX,go=rX /web \ + && printf "umask %d" "${UMASK}" >> /etc/bash.bashrc \ + && update-ca-certificates + +USER apps + +EXPOSE ${WEBUI_PORT} 51413 + +COPY ./.containers/apps/transmission/entrypoint.sh /entrypoint.sh +CMD ["/entrypoint.sh"] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/apps/transmission/PLATFORM b/.containers/apps/transmission/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/apps/transmission/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/apps/transmission/VERSION b/.containers/apps/transmission/VERSION new file mode 100644 index 00000000000..82e4d63ddc6 --- /dev/null +++ b/.containers/apps/transmission/VERSION @@ -0,0 +1 @@ +3.00 diff --git a/.containers/apps/transmission/entrypoint.sh b/.containers/apps/transmission/entrypoint.sh new file mode 100755 index 00000000000..1c79a9d0742 --- /dev/null +++ b/.containers/apps/transmission/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +#shellcheck disable=SC1091 +source "/shim/umask.sh" +source "/shim/vpn.sh" + +exec /app/transmission-daemon --foreground --config-dir /config --port "${WEBUI_PORT}" ${EXTRA_ARGS} diff --git a/.containers/apps/transmission/goss.yaml b/.containers/apps/transmission/goss.yaml new file mode 100644 index 00000000000..2132c6ba99e --- /dev/null +++ b/.containers/apps/transmission/goss.yaml @@ -0,0 +1,14 @@ +--- +process: + transmission-da: + running: true + +port: + tcp:9091: + listening: true + +http: + http://localhost:9091: + status: 200 + body: + - 'Transmission Web Interface' diff --git a/.containers/apps/transmission/latest-version.sh b/.containers/apps/transmission/latest-version.sh new file mode 100755 index 00000000000..88602705082 --- /dev/null +++ b/.containers/apps/transmission/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -sX GET "https://api.github.com/repos/transmission/transmission/tags" | jq --raw-output '.[0].name') +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.tools/templates/chart/app-readme.md b/.containers/base/alpine/.gitkeep similarity index 100% rename from .tools/templates/chart/app-readme.md rename to .containers/base/alpine/.gitkeep diff --git a/.containers/base/alpine/Dockerfile b/.containers/base/alpine/Dockerfile new file mode 100644 index 00000000000..8b51ebcf841 --- /dev/null +++ b/.containers/base/alpine/Dockerfile @@ -0,0 +1,12 @@ +ARG VERSION + +FROM alpine:${VERSION} + +# hadolint ignore=DL3018 +RUN \ + apk add --no-cache \ + tini \ + ca-certificates + +ENTRYPOINT ["/sbin/tini", "--"] +CMD ["echo", "'No can haz support yet. Chek bak l8r!'", "exit", "1337" ] diff --git a/.containers/base/alpine/PLATFORM b/.containers/base/alpine/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/base/alpine/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/base/alpine/VERSION b/.containers/base/alpine/VERSION new file mode 100644 index 00000000000..2c20ac9bea3 --- /dev/null +++ b/.containers/base/alpine/VERSION @@ -0,0 +1 @@ +3.13.3 diff --git a/.containers/base/alpine/latest-version.sh b/.containers/base/alpine/latest-version.sh new file mode 100644 index 00000000000..42e040452ce --- /dev/null +++ b/.containers/base/alpine/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -s "https://registry.hub.docker.com/v1/repositories/library/alpine/tags" | jq --raw-output '.[] | select(.name | contains(".")) | .name' | sort -t "." -k1,1n -k2,2n -k3,3n | tail -n1) +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/base/ubuntu/Dockerfile b/.containers/base/ubuntu/Dockerfile new file mode 100644 index 00000000000..7aa14f093cf --- /dev/null +++ b/.containers/base/ubuntu/Dockerfile @@ -0,0 +1,89 @@ +ARG VERSION + +FROM ubuntu:${VERSION} + +ARG TARGETPLATFORM + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# DEBIAN_FRONTEND: https://askubuntu.com/questions/972516/debian-frontend-environment-variable +# APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE: http://stackoverflow.com/questions/48162574/ddg#49462622 +ENV \ + DEBCONF_NONINTERACTIVE_SEEN=true \ + DEBIAN_FRONTEND="noninteractive" \ + APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn \ + TINI_VERSION=0.19.0 \ + UMASK=0002 \ + LANG=en_US.UTF-8 \ + LANGUAGE=en_US:en \ + LC_ALL=en_US.UTF-8 \ + MICRO_CONFIG_HOME=/tmp + +RUN \ + adduser apps \ + --uid 568 \ + --group \ + --system \ + --disabled-password \ + --no-create-home \ + && \ + mkdir -p /config \ + && chown -R apps:apps /config + +WORKDIR /app + +# hadolint ignore=DL3008,DL3015 +RUN \ + set -eux \ + && echo 'APT::Install-Recommends "false";' >/etc/apt/apt.conf.d/00recommends \ + && echo 'APT::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \ + && echo 'APT::Get::Install-Recommends "false";' >>/etc/apt/apt.conf.d/00recommends \ + && echo 'APT::Get::Install-Suggests "false";' >>/etc/apt/apt.conf.d/00recommends \ + && \ + apt-get -qq update \ + && \ + apt-get install -y \ + bash \ + ca-certificates \ + curl \ + jq \ + locales \ + tini \ + tzdata \ + && locale-gen en_US.UTF-8 \ + && update-locale \ + && dpkg-reconfigure -f noninteractive locales \ + && MICRO_VERSION=$(curl -s "https://api.github.com/repos/zyedidia/micro/releases" | jq --raw-output '.[0].tag_name') \ + && MICRO_VERSION="${MICRO_VERSION#?}" \ + && curl -fsSL "https://github.com/zyedidia/micro/releases/download/v${MICRO_VERSION}/micro-${MICRO_VERSION}-linux64.tar.gz" | tar xzf - -C /tmp --strip-components=1 \ + && mv /tmp/micro /usr/local/bin/micro \ + && ln -s /usr/local/bin/micro /usr/local/bin/vi \ + && ln -s /usr/local/bin/micro /usr/local/bin/vim \ + && ln -s /usr/local/bin/micro /usr/local/bin/nano \ + && ln -s /usr/local/bin/micro /usr/local/bin/emacs \ + && unset MICRO_ARCH \ + && unset MICRO_VERSION \ + && \ + printf "/bin/bash /shim/greeting.sh" >> /etc/bash.bashrc \ + && \ + apt-get remove -y jq \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && apt-get autoremove -y \ + && apt-get clean \ + && \ + rm -rf \ + /tini.asc \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/cache/apt/* \ + /var/tmp/* + +USER apps + +VOLUME [ "/config" ] + +COPY ./.containers/base/ubuntu/shim /shim +ENTRYPOINT [ "/usr/bin/tini", "--" ] + +LABEL "maintainer"="TrueCharts " +LABEL "org.opencontainers.image.source"="https://github.com/truecharts/apps" diff --git a/.containers/base/ubuntu/LICENSE b/.containers/base/ubuntu/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/base/ubuntu/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/base/ubuntu/PLATFORM b/.containers/base/ubuntu/PLATFORM new file mode 100644 index 00000000000..303dc7a5a77 --- /dev/null +++ b/.containers/base/ubuntu/PLATFORM @@ -0,0 +1 @@ +linux/amd64 diff --git a/.containers/base/ubuntu/VERSION b/.containers/base/ubuntu/VERSION new file mode 100644 index 00000000000..6b8af1a0a7f --- /dev/null +++ b/.containers/base/ubuntu/VERSION @@ -0,0 +1 @@ +focal-20210325 diff --git a/.containers/base/ubuntu/latest-version.sh b/.containers/base/ubuntu/latest-version.sh new file mode 100755 index 00000000000..7b0f61e232c --- /dev/null +++ b/.containers/base/ubuntu/latest-version.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +version=$(curl -s "https://registry.hub.docker.com/v1/repositories/library/ubuntu/tags" | jq --raw-output '.[] | select(.name | contains("focal")) | .name' | tail -n1) +version="${version#*v}" +version="${version#*release-}" +printf "%s" "${version}" diff --git a/.containers/base/ubuntu/shim/LICENSE b/.containers/base/ubuntu/shim/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/.containers/base/ubuntu/shim/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.containers/base/ubuntu/shim/config.sh b/.containers/base/ubuntu/shim/config.sh new file mode 100755 index 00000000000..8c065fee3bc --- /dev/null +++ b/.containers/base/ubuntu/shim/config.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +mkdir -p /config diff --git a/.containers/base/ubuntu/shim/greeting.sh b/.containers/base/ubuntu/shim/greeting.sh new file mode 100644 index 00000000000..26971f2946f --- /dev/null +++ b/.containers/base/ubuntu/shim/greeting.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +echo " +Welcome to a TrueCharts App Container, + +* Repository: https://github.com/truecharts/apps +* Docs: https://truecharts.org +* This container uses the micro CLI text editor +* Bugs or feature requests should be opened in an GH issue +* Questions should be discussed on GH discussions +" diff --git a/.containers/base/ubuntu/shim/umask.sh b/.containers/base/ubuntu/shim/umask.sh new file mode 100755 index 00000000000..bea3cc3535e --- /dev/null +++ b/.containers/base/ubuntu/shim/umask.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +umask "${UMASK:-0002}" diff --git a/.containers/base/ubuntu/shim/vpn.sh b/.containers/base/ubuntu/shim/vpn.sh new file mode 100755 index 00000000000..28434251b23 --- /dev/null +++ b/.containers/base/ubuntu/shim/vpn.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +WAIT_FOR_VPN=${WAIT_FOR_VPN:-"false"} + +if + [[ "${WAIT_FOR_VPN}" == "true" ]]; +then + echo "Waiting for VPN to be connected..." + while ! grep -s -q "connected" /shared/vpnstatus; + do + echo "VPN not connected" + sleep 2 + done + echo "VPN Connected, starting application..." +fi diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c43f988afb5..dcd96ec3a3d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,26 @@ # Default code owner * @ornias1993 -/charts/esphome/* @tprelog -/charts/unifi/* @whiskerz007 +# Apps maintained by ornias1993 +sonarr/ @ornias1993 +radarr/ @ornias1993 +traefik/ @ornias1993 +plex/ @ornias1993 +lidarr/ @ornias1993 +jackett/ @ornias1993 +kms/ @ornias1993 +ombi/ @ornias1993 +transmission/ @ornias1993 +tautulli/ @ornias1993 + +# Apps maintained by tprelog +esphome/ @tprelog +zwavejs2mqtt/ @tprelog +home-assistant/ @tprelog + +# Apps maintained by stavros-k +handbrake/* @stavros-k +collabora-online/ @stavros-k + +# Apps maintained by djs52 +emby/ @djs52 diff --git a/.github/ISSUE_TEMPLATE/app_request.md b/.github/ISSUE_TEMPLATE/app_request.md index 403dbb52091..142eb5989b7 100644 --- a/.github/ISSUE_TEMPLATE/app_request.md +++ b/.github/ISSUE_TEMPLATE/app_request.md @@ -7,21 +7,4 @@ assignees: '' --- -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Additional context** -Add any other context about the problem here. +**Describe the app you request to be added** diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e74cb57fa70..c95a0b8f1d6 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,8 +1,8 @@ --- -name: Feature request +name: Feature or Enhancement request about: Suggest an idea for this project title: '' -labels: Feature +labels: enhancement assignees: '' --- diff --git a/.github/README.md b/.github/README.md index 57faeaa3957..cf26b1d7f66 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,11 +1,18 @@ # About TrueCharts
**Community App Catalog for TrueNAS SCALE** -[![GitHub last commit](https://img.shields.io/github/last-commit/truecharts/truecharts/master.svg)](https://github.com/truecharts/truecharts/commits) [![Charts: Release](https://github.com/truecharts/charts/actions/workflows/charts-release.yaml/badge.svg)](https://github.com/truecharts/charts/actions/workflows/charts-release.yaml) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_shield) [![License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/truecharts/truecharts/blob/master/docs/LICENSE.BSD3) +[![docs](https://img.shields.io/badge/docs-rtfm-yellow?logo=gitbook&logoColor=white&style=for-the-badge)](https://truecharts.org/) +[![GitHub last commit](https://img.shields.io/github/last-commit/truecharts/apps?color=brightgreen&logoColor=white&style=for-the-badge)](https://github.com/truecharts/apps/commits) +[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge)](https://github.com/pre-commit/pre-commit) +[![renovate](https://img.shields.io/badge/renovate-enabled-brightgreen?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjUgNSAzNzAgMzcwIj48Y2lyY2xlIGN4PSIxODkiIGN5PSIxOTAiIHI9IjE4NCIgZmlsbD0iI2ZlMiIvPjxwYXRoIGZpbGw9IiM4YmIiIGQ9Ik0yNTEgMjU2bC0zOC0zOGExNyAxNyAwIDAxMC0yNGw1Ni01NmMyLTIgMi02IDAtN2wtMjAtMjFhNSA1IDAgMDAtNyAwbC0xMyAxMi05LTggMTMtMTNhMTcgMTcgMCAwMTI0IDBsMjEgMjFjNyA3IDcgMTcgMCAyNGwtNTYgNTdhNSA1IDAgMDAwIDdsMzggMzh6Ii8+PHBhdGggZmlsbD0iI2Q1MSIgZD0iTTMwMCAyODhsLTggOGMtNCA0LTExIDQtMTYgMGwtNDYtNDZjLTUtNS01LTEyIDAtMTZsOC04YzQtNCAxMS00IDE1IDBsNDcgNDdjNCA0IDQgMTEgMCAxNXoiLz48cGF0aCBmaWxsPSIjYjMwIiBkPSJNMjg1IDI1OGw3IDdjNCA0IDQgMTEgMCAxNWwtOCA4Yy00IDQtMTEgNC0xNiAwbC02LTdjNCA1IDExIDUgMTUgMGw4LTdjNC01IDQtMTIgMC0xNnoiLz48cGF0aCBmaWxsPSIjYTMwIiBkPSJNMjkxIDI2NGw4IDhjNCA0IDQgMTEgMCAxNmwtOCA3Yy00IDUtMTEgNS0xNSAwbC05LThjNSA1IDEyIDUgMTYgMGw4LThjNC00IDQtMTEgMC0xNXoiLz48cGF0aCBmaWxsPSIjZTYyIiBkPSJNMjYwIDIzM2wtNC00Yy02LTYtMTctNi0yMyAwLTcgNy03IDE3IDAgMjRsNCA0Yy00LTUtNC0xMSAwLTE2bDgtOGM0LTQgMTEtNCAxNSAweiIvPjxwYXRoIGZpbGw9IiNiNDAiIGQ9Ik0yODQgMzA0Yy00IDAtOC0xLTExLTRsLTQ3LTQ3Yy02LTYtNi0xNiAwLTIybDgtOGM2LTYgMTYtNiAyMiAwbDQ3IDQ2YzYgNyA2IDE3IDAgMjNsLTggOGMtMyAzLTcgNC0xMSA0em0tMzktNzZjLTEgMC0zIDAtNCAybC04IDdjLTIgMy0yIDcgMCA5bDQ3IDQ3YTYgNiAwIDAwOSAwbDctOGMzLTIgMy02IDAtOWwtNDYtNDZjLTItMi0zLTItNS0yeiIvPjxwYXRoIGZpbGw9IiMxY2MiIGQ9Ik0xNTIgMTEzbDE4LTE4IDE4IDE4LTE4IDE4em0xLTM1bDE4LTE4IDE4IDE4LTE4IDE4em0tOTAgODlsMTgtMTggMTggMTgtMTggMTh6bTM1LTM2bDE4LTE4IDE4IDE4LTE4IDE4eiIvPjxwYXRoIGZpbGw9IiMxZGQiIGQ9Ik0xMzQgMTMxbDE4LTE4IDE4IDE4LTE4IDE4em0tMzUgMzZsMTgtMTggMTggMTgtMTggMTh6Ii8+PHBhdGggZmlsbD0iIzJiYiIgZD0iTTExNiAxNDlsMTgtMTggMTggMTgtMTggMTh6bTU0LTU0bDE4LTE4IDE4IDE4LTE4IDE4em0tODkgOTBsMTgtMTggMTggMTgtMTggMTh6bTEzOS04NWwyMyAyM2M0IDQgNCAxMSAwIDE2TDE0MiAyNDBjLTQgNC0xMSA0LTE1IDBsLTI0LTI0Yy00LTQtNC0xMSAwLTE1bDEwMS0xMDFjNS01IDEyLTUgMTYgMHoiLz48cGF0aCBmaWxsPSIjM2VlIiBkPSJNMTM0IDk1bDE4LTE4IDE4IDE4LTE4IDE4em0tNTQgMThsMTgtMTcgMTggMTctMTggMTh6bTU1LTUzbDE4LTE4IDE4IDE4LTE4IDE4em05MyA0OGwtOC04Yy00LTUtMTEtNS0xNiAwTDEwMyAyMDFjLTQgNC00IDExIDAgMTVsOCA4Yy00LTQtNC0xMSAwLTE1bDEwMS0xMDFjNS00IDEyLTQgMTYgMHoiLz48cGF0aCBmaWxsPSIjOWVlIiBkPSJNMjcgMTMxbDE4LTE4IDE4IDE4LTE4IDE4em01NC01M2wxOC0xOCAxOCAxOC0xOCAxOHoiLz48cGF0aCBmaWxsPSIjMGFhIiBkPSJNMjMwIDExMGwxMyAxM2M0IDQgNCAxMSAwIDE2TDE0MiAyNDBjLTQgNC0xMSA0LTE1IDBsLTEzLTEzYzQgNCAxMSA0IDE1IDBsMTAxLTEwMWM1LTUgNS0xMSAwLTE2eiIvPjxwYXRoIGZpbGw9IiMxYWIiIGQ9Ik0xMzQgMjQ4Yy00IDAtOC0yLTExLTVsLTIzLTIzYTE2IDE2IDAgMDEwLTIzTDIwMSA5NmExNiAxNiAwIDAxMjIgMGwyNCAyNGM2IDYgNiAxNiAwIDIyTDE0NiAyNDNjLTMgMy03IDUtMTIgNXptNzgtMTQ3bC00IDItMTAxIDEwMWE2IDYgMCAwMDAgOWwyMyAyM2E2IDYgMCAwMDkgMGwxMDEtMTAxYTYgNiAwIDAwMC05bC0yNC0yMy00LTJ6Ii8+PC9zdmc+)](https://github.com/renovatebot/renovate) + +[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=for-the-badge)](#contributors-) + --- Truecharts is an innitiative to provide high quality Apps to use with the TrueNAS SCALE App Ecosystem. Our primary goals are: -- Freedom +- Micro-Service Centered +- Native Kubernetes - Stability - Consistancy @@ -13,26 +20,34 @@ All our apps are supposed to work together, be easy to setup using the TrueNAS U ## Getting started using TrueCharts -Installing TrueCharts within TrueNAS SCALE, still requires the CLI. However it's not hard: -- Go to you shell of choice (either SSH or the TrueNAS webui shell) -- enter `cli` -- enter `app catalog create repository="https://github.com/truecharts/truecharts" label="TrueCharts"` +Installing TrueCharts within TrueNAS SCALE, is possible using the TrueNAS SCALE Catalog list. -For more information, please visit our wiki: -https://wiki.truecharts.org +For more information: +https://truecharts.org/manual/adding-truecharts/ ## FAQ -Please refer to our [FAQ](https://wiki.truecharts.org/FAQ) and [Issue tracker](https://github.com/truecharts/charts/issues) before creating an issue. +Please refer to our [FAQ](https://truecharts.org/about/FAQ/) and [Issue tracker](https://github.com/truecharts/apps/issues) before creating an issue. There is a significant chance your issue has been reported before! ## Getting into creating Apps Creating charts takes some getting used to, as it's based on Helm charts. We highly suggest prior knowhow on creation/modifying Helm Charts, before taking on the challenge of creating SCALE Apps. +## Featured Projects + +A lot of our work is based on the great effort of others. We would love to extend special thanks to these projects we owe a lot to: + +| | | | +| :---------------: | :---------------: | :---------------: | +| TrueNAS SCALE | K8S-At-Home | Traefik | + + ## Licence -`SPDX-License-Identifier: BSD-3-Clause` +[![License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg?style=for-the-badge)](https://github.com/truecharts/apps/blob/master/docs/LICENSE.BSD3) + + Truecharts as a whole, is based on a BSD-3-clause license, this ensures almost everyone can use and modify our charts. However: As a lot of Apps are based on upstream Helm Charts, Licences can vary on a per-App basis. This can easily be seen by the presence of a "LICENSE" file in the App rootfolder. @@ -40,5 +55,7 @@ Some Apps may also contain parts in other licenses, such as libraries or templat [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_large) +`SPDX-License-Identifier: BSD-3-Clause` + --- ![built-with-resentment](http://forthebadge.com/images/badges/built-with-resentment.svg) ![contains-technical-debt](http://forthebadge.com/images/badges/contains-technical-debt.svg) diff --git a/.github/SECURITY.md b/.github/SECURITY.md index ffd07fe73f6..d029b0583d0 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -1,15 +1,34 @@ # Security Policy -## Supported Versions +## Supported Versions of TrueNAS SCALE + +Our focus will always be on the latest version of TrueNAS SCALE. +However: We might provide extended support to older versions of TrueNAS SCALE as depicted in our Support Policy + + +## CVE's and you + +As depicted in our guidelines, we do NOT accept containers and/or Apps with known `high` or `critical` CVE's present. Unless those CVE's have been thoroughly mitigated and said mitigation has been both desclosed and thoroughly reviewed. + + +## Response timeframe + +The safety of our users is our prime concerns. We therefore aim to respond to any issues within 24 hours. + +Though we hope that such situations will never happen, we will, in the most dire of circumstances, not hesitate with agressive responses to fix issues. This includes completely locking down/removing certain Apps or portions of the project from being installed. + + +## Compliance + +As project owner is located in the Netherlands, we need to comply to all legal requirements and lawfull orders from the Government of the Netherlands. + +**As of Today we have not recieved any data requests from the Dutch Government, that we are forbiden to make public. ** + +We are required to be fully GDPR compliant and fall under the sole authority of the Dutch Privacy Authority when it comes to GDPR compliance. + -| Branch | TrueNAS version | Supported with updates | -| ------- | ------- |------------------ | -| MASTER | 21.02 ALPHA | :white_check_mark: | -| Charts | Standard Kubernetes/Helm | :white_check_mark: | ## Reporting a Vulnerability -If you find any security issue, please email the project maintainer. - -Currently the Project Maintainer is: -[Ornias1993](https://github.com/Ornias1993) +If you find any security issue, please email the project directly: +info@truecharts.org diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index e69de29bb2d..2fbae4e8c06 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -0,0 +1,9 @@ +# Support Policy + +## Supported Versions + +| Branch | TrueNAS version | Supported with updates | Accepting Bugreports | +| ------- | ------- |------------------ | -------------- | +| `legacy_21.02ALPHA` | 21.02 ALPHA | :X: | :X: | +| MASTER | 21.04 ALPHA | :white_check_mark: | :white_check_mark: | +| MASTER | Nightly | :white_check_mark: | :white_check_mark: | diff --git a/.github/chart_schema.yaml b/.github/chart_schema.yaml new file mode 100644 index 00000000000..ffc238e9a9c --- /dev/null +++ b/.github/chart_schema.yaml @@ -0,0 +1,38 @@ +apiVersion: str() +kubeVersion: str() +name: str() +version: str(required=True) +upstream_version: any(str(), num(), required=False) +appVersion: any(str(), num()) +description: str() +type: str(required=True) +deprecated: bool(required=False) +home: str() +icon: str() +engine: str(required=False) +condition: str(required=False) +keywords: list(str(), required=False) +tags: str(required=False) +sources: list(str(), required=False) +dependencies: list(include('dependency'), required=False) +maintainers: list(include('maintainer')) +annotations: map(str(), str(), required=False) +--- +maintainer: + name: str() + email: str(required=False) + url: str(required=True) +--- +dependency: + name: str() + repository: str() + version: str() + condition: str(required=False) + tags: list(str(), required=False) + import-values: any(list(str()), list(include('import-value')), required=False) + enabled: bool(required=False) + alias: str(required=False) +--- +import-value: + child: str() + parent: str() diff --git a/.github/containerscan/allowedlist.yaml b/.github/containerscan/allowedlist.yaml new file mode 100644 index 00000000000..0fff04f6972 --- /dev/null +++ b/.github/containerscan/allowedlist.yaml @@ -0,0 +1 @@ +CIS-DI-0006 diff --git a/.github/cr.yaml b/.github/cr.yaml new file mode 100644 index 00000000000..1258de3d242 --- /dev/null +++ b/.github/cr.yaml @@ -0,0 +1,6 @@ +owner: truecharts +git-repo: charts +index-path: docs/index.yaml +charts-dir: library +charts_repo_url: "https://truecharts.org" +pages-branch: "" diff --git a/.github/ct-install.yaml b/.github/ct-install.yaml new file mode 100644 index 00000000000..195cf0c86b9 --- /dev/null +++ b/.github/ct-install.yaml @@ -0,0 +1,7 @@ +remote: origin +target-branch: master +helm-extra-args: --timeout 600s +excluded-charts: common +chart-yaml-schema: .github/chart_schema.yaml +chart-repos: +- truecharts=https://truecharts.org diff --git a/.github/ct.yaml b/.github/ct-lint.yaml similarity index 60% rename from .github/ct.yaml rename to .github/ct-lint.yaml index 3294ec08df7..dc505cc6126 100644 --- a/.github/ct.yaml +++ b/.github/ct-lint.yaml @@ -1,3 +1,4 @@ remote: origin target-branch: master helm-extra-args: --timeout 600s +chart-yaml-schema: .github/chart_schema.yaml diff --git a/.github/docs/index.md b/.github/docs/index.md deleted file mode 100644 index 3f5474c9268..00000000000 --- a/.github/docs/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -hide: - - navigation # Hide navigation - - toc # Hide table of contents ---- - - -TrueCharts is the community that maintains TrueCharts. - -### TrueCharts -TrueCharts is a one-line iocage jail management and deployment tool for FreeNAS and FreeBSD. -If you are interested in using TrueCharts, please visit us on github [github](https://github.com/truecharts/charts/) - -### Supported operating systems - -While we always aim for our charts to be fully stock-kubernetes compatbile, we can only guarantee compatibility with TrueNAS SCALE Apps. As we are primarily a TrueNAS SCALE App catalog. - -Though we try to make our Apps as version independent as possible we have a limited capacity to support older versions of TrueNAS SCALE. Our focus is the current version of TrueNAS. - -That being said: We do look forward to contributions to improve support for stock-kubernetes for our Charts! - -### Development - -Our development proces is fully distributed and agile, every chart-maintainer is free to set their own roadmap and development speed and does not have to comply to a centralised roadmap. - -This ensures freedom and flexibility for everyone involved and makes sure you, the end user, always has the latest and greated of every App installed. - -##### Roadmap - -However for big breaking changes we do have a roadmap during the ALPHA and BETA stages of TrueNAS SCALE. -Assuming the release dates of TrueNAS SCALE will keep following the previous 2 months between releases, we will have the following big milestones: - -**TrueCharts 2 - TrueNAS SCALE 21.04** - -Will mostly be a "polish-and-fix release" and will feature heavy rewrites of core components of TrueCharts, as well as rework to have a nicer fit within the TrueNAS SCALE ecosystem. - -**TrueCharts DB Edition - TrueNAS SCALE 21.06** - -This release will focus on adding a solid framework of using (and adding) databases to Apps within TrueCharts. This will lead to significantly more App possibilities and performance increases for existing Apps. - -### Support or Contact - -Having trouble with TrueCharts? Check out our [Wiki](https://wiki.truecharts.org) or [github](https://github.com/truecharts/charts/) and we’ll help you sort it out. diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 88c8997faad..713031d2d55 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -8,15 +8,16 @@ "rebaseWhen": "conflicted", "prConcurrentLimit": 5, "helm-values": { - "enabled": false + "fileMatch": ["stable/.+/.+/.*_values\\.yaml$", "incubator/.+/.+/.*_values\\.yaml$"] }, "helmv3": { - "fileMatch": ["charts/.+/.+/Chart\\.yaml$"] + "fileMatch": ["stable/.+/.+/Chart\\.yaml$", "incubator/.+/.+/Chart\\.yaml$"] }, "packageRules": [ - // Setup datasources + // Setup datasources for dep updates { "datasources": ["helm"], + "matchManagers": ["helmv3"], "commitMessageTopic": "Helm chart {{depName}}", "separateMinorPatch": true }, @@ -78,6 +79,60 @@ "schedule": [ "every 1 months on the first day of the month" ] + }, + // Setup datasources tag updates + { + "datasources": ["helm"], + "matchManagers": ["helm-values"], + "commitMessageTopic": "Helm chart {{depName}}" + }, + // + // Tag updates for semantic tags + // + { + "commitMessagePrefix": "[{{{parentDir}}}]", + "branchTopic": "{{{parentDir}}}-{{{depNameSanitized}}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}", + "updateTypes": ["major"], + "bumpVersion": "major", + "labels": ["tag/major"] + }, + { + "updateTypes": ["minor"], + "bumpVersion": "patch", + "labels": ["tag/minor"], + "groupName": ["minor"] + }, + { + "updateTypes": ["patch", "minor"], + "bumpVersion": "patch", + "labels": ["tag/patch"], + "groupName": ["patch"] + }, + // + // Tag updates for linuxserver two-three digit versions + // + { + "packagePatterns": ["^linuxserver\\/"], + "versionScheme": "regex:^(?.*?(\\d+\\.)??)(?\\d+)\\.(?\\d+)\\.?(?\\d+)?(-r?p?\\d)?$" + }, + { + "commitMessagePrefix": "[{{{parentDir}}}]", + "branchTopic": "{{{parentDir}}}-{{{depNameSanitized}}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}", + "updateTypes": ["major"], + "bumpVersion": "major", + "labels": ["tag/major"] + }, + { + "updateTypes": ["minor"], + "bumpVersion": "patch", + "labels": ["tag/minor"], + "groupName": ["minor"] + }, + { + "updateTypes": ["patch", "minor"], + "bumpVersion": "patch", + "labels": ["tag/patch"], + "groupName": ["patch"] } ] } diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000000..616be956c3f --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,32 @@ +# Configuration for probot-stale - https://github.com/probot/stale + +# Number of days of inactivity before an Issue or Pull Request becomes stale +daysUntilStale: 45 + +# Number of days of inactivity before a stale Issue or Pull Request is closed. +daysUntilClose: 5 + +# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable +exemptLabels: +- on-hold +- pinned + +# Label to use when marking as stale +staleLabel: stale + +issues: + # Comment to post when marking as stale. Set to `false` to disable + markComment: > + This Issue has been automatically marked as "stale" because it has not had recent activity (for 45 days). It will be closed if no further activity occurs. Thanks for the feedback. + # Comment to post when closing a stale Issue or Pull Request. + closeComment: > + Due to the lack of activity in the last 5 days since it was marked as "stale", we proceed to close this Issue. Do not hesitate to reopen it later if necessary. +pulls: + # Comment to post when marking as stale. Set to `false` to disable + markComment: > + This Pull Request has been automatically marked as "stale" because it has not had recent activity (for 45 days). It will be closed if no further activity occurs. Thank you for your contribution. + # Comment to post when closing a stale Issue or Pull Request. + closeComment: > + Due to the lack of activity in the last 5 days since it was marked as "stale", we proceed to close this Pull Request. Do not hesitate to reopen it later if necessary. +# Limit the number of actions per hour, from 1-30. Default is 30 +limitPerRun: 30 diff --git a/.github/workflows/apps.test.yaml b/.github/workflows/apps.test.yaml new file mode 100644 index 00000000000..1029b1872ed --- /dev/null +++ b/.github/workflows/apps.test.yaml @@ -0,0 +1,301 @@ +name: "Apps: test" + +on: + pull_request: + branches: + - '**' + tags-ignore: + - '**' + paths: + - 'stable/**' + - '!stable/**/*.md' + - '!stable/**/README.md' + - '!stable/**/README.md.gotmpl' + - '!stable/**/app-readme.md' + - '!stable/**/app-readme.md.gotmpl' + - '!stable/**/docs/*' + - 'incubator/**' + - '!incubator/**/*.md' + - '!incubator/**/README.md' + - '!incubator/**/README.md.gotmpl' + - '!incubator/**/app-readme.md' + - '!incubator/**/app-readme.md.gotmpl' + - '!incubator/**/docs/*' + - '.github/workflows/apps.test.yaml' + +jobs: + catalog-test: + runs-on: ubuntu-latest + container: + image: ixsystems/catalog_validation:latest + + steps: + - uses: actions/checkout@v2 + name: Checkout + - name: Validate catalog format + run: | + /bin/bash -c "PWD=${pwd}; /usr/local/bin/catalog_validate validate --path $PWD" + + common-lint: + runs-on: ubuntu-latest + outputs: + changed: ${{ steps.list-changed.outputs.changed }} + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.3 + + - uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.0.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --config .github/ct-lint.yaml --chart-dirs 'library') + if [[ -n "$changed" ]]; then + echo "::set-output name=changed::true" + fi + + - name: Run chart-testing (lint) + id: lint + if: steps.list-changed.outputs.changed == 'true' + run: ct lint --config .github/ct-lint.yaml --chart-dirs 'library' + + + common-test: + runs-on: ubuntu-latest + needs: common-lint + steps: + - name: Checkout + uses: actions/checkout@v2 + if: needs.common-lint.outputs.changed == 'true' + with: + fetch-depth: 0 + + - name: prep + if: needs.common-lint.outputs.changed == 'true' + run: | + rm -Rf library/common-test/values.yaml + touch library/common-test/values.yaml + + - name: Install Helm + uses: azure/setup-helm@v1 + if: needs.common-lint.outputs.changed == 'true' + with: + version: v3.5.3 + + - uses: actions/setup-python@v2 + if: needs.common-lint.outputs.changed == 'true' + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.0.1 + if: needs.common-lint.outputs.changed == 'true' + + - name: Create k3d cluster + uses: nolar/setup-k3d-k3s@v1 + if: needs.common-lint.outputs.changed == 'true' + with: + version: v1.19 + + - name: Run chart-testing (install) + if: needs.common-lint.outputs.changed == 'true' + run: ct install --config .github/ct-install.yaml --charts 'library/common-test' + + common-unittest: + runs-on: ubuntu-latest + needs: common-lint + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install Dev tools + run: sudo apt-get update && sudo apt-get install -y jq libjq-dev + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.3 + + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + + - name: Install dependencies + run: | + export RUBYJQ_USE_SYSTEM_LIBRARIES=1 + bundle install + - name: Run tests + run: | + bundle exec m -r .tools/tests/charts + + pre-release: + if: needs.common-lint.outputs.changed == 'true' + needs: [common-test, common-unittest, catalog-test] + runs-on: ubuntu-latest + outputs: + release: ${{ steps.prep.outputs.release }} + timeout-minutes: 5 + steps: + - name: Prepare + id: prep + run: | + if [ "${{github.event_name}}" == "pull_request" ]; then + echo ::set-output name=release::false + else + echo ::set-output name=release::true + fi + - name: Block concurrent jobs + uses: softprops/turnstyle@v1 + if: steps.prep.outputs.release == 'true' + with: + continue-after-seconds: 180 + env: + GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} + + common-release: + needs: pre-release + runs-on: ubuntu-latest + if: needs.pre-release.outputs.release == 'true' + steps: + - name: Block concurrent jobs + uses: softprops/turnstyle@v1 + with: + continue-after-seconds: 180 + env: + GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} + + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + token: ${{ secrets.BOT_TOKEN }} + + - name: Configure Git + run: | + git config user.name "TrueCharts-Bot" + git config user.email "bot@truecharts.org" + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.3 + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.2.0 + with: + charts_dir: library + charts_repo_url: "" + config: .github/cr.yaml + env: + CR_TOKEN: "${{ secrets.BOT_TOKEN }}" + + - name: Commit and Push new index + run: | + git config user.name "TrueCharts-Bot" + git config user.email "bot@truecharts.org" + git add --all + git commit -sm "Commit chart-index updates" || exit 0 + git push + + changes: + name: Get changed Apps + runs-on: ubuntu-20.04 + outputs: + matrix: "{\"app\": ${{ steps.reduce.outputs.apps }} }" + steps: + - name: Checkout + uses: actions/checkout@v2 + - uses: dorny/paths-filter@v2 + id: filter + with: + list-files: json + filters: | + changed: + - 'stable/**' + - 'incubator/**' + - run: echo '${{ toJson(steps.filter.outputs) }}' > changes.json + - id: reduce + run: | + APPS=$(jq --raw-output '.changed_files | fromjson | .[] |= sub("(?(?(?[\/]?)[^\/]+\/)(?(?[\/]?)[^\/]+)(?.+))"; "\(.second_directory)") | unique' changes.json) + echo ::set-output name=apps::${APPS} + + app-tests: + needs: [catalog-test, changes] + name: App Tests + runs-on: ubuntu-latest + strategy: + matrix: ${{ fromJson(needs.changes.outputs.matrix) }} + fail-fast: false + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Prepare-Lint + id: prep-lint + run: | + if test -f "./stable/${{ matrix.app }}/item.yaml"; then + train="stable" + else + train="incubator" + fi + echo ::set-output name=train::${train} + maxfolderversion=$(ls -l ${train}/${{ matrix.app }} | grep ^d | awk '{print $9}' | tail -n 1) + echo "Detected folder version: ${maxfolderversion}" + mkdir ${train}/${{ matrix.app }}/${maxfolderversion}/ci || exit 0 + cp ${train}/${{ matrix.app }}/${maxfolderversion}/test_values.yaml ${train}/${{ matrix.app }}/${maxfolderversion}/ci/test-values.yaml + echo ::set-output name=maxfolderversion::${maxfolderversion} + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.3 + + - uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.0.1 + + + - name: Run chart-testing (lint) + id: lint + run: ct lint --config .github/ct-lint.yaml --charts '${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }}' + + - name: Prepare-Test + run: | + mv -f ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }}/* ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/ + rm -Rf ${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}/${{ steps.prep-lint.outputs.maxfolderversion }} + + - name: Create k3d cluster + uses: nolar/setup-k3d-k3s@v1 + with: + version: v1.19 + + - name: Run chart-testing (install) + run: ct install --config .github/ct-install.yaml --charts '${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}' + + app-tests-complete: + needs: [app-tests, common-unittest, common-test] + name: Apps Test Complete + runs-on: ubuntu-latest + steps: + - name: complete message + run: echo "App Tests Completed Successfully" diff --git a/.github/workflows/chart-testing.yml b/.github/workflows/chart-testing.yml deleted file mode 100644 index 14218051617..00000000000 --- a/.github/workflows/chart-testing.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: "Charts: Tests" - -on: - pull_request: - branches: - - '**' - tags-ignore: - - '**' - -jobs: - catalog-tests: - runs-on: ubuntu-latest - container: - image: ixsystems/catalog_validation:latest - - steps: - - uses: actions/checkout@v2 - name: Checkout - - name: Validate catalog format - run: | - /bin/bash -c "PWD=${pwd}; /usr/local/bin/catalog_validate validate --path $PWD" - - - common-lint: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.4.0 - - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - name: Set up chart-testing - uses: helm/chart-testing-action@v2.0.1 - - name: Run chart-testing (lint) - id: lint - run: ct lint --config .github/ct.yaml --charts 'library/common' - - name: Create kind cluster - uses: helm/kind-action@v1.1.0 - - common-unittest: - runs-on: ubuntu-latest - needs: common-lint - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Install Dev tools - run: sudo apt-get update && sudo apt-get install -y jq libjq-dev - - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.4.0 - - - name: Install Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 2.7 - - - name: Install dependencies - run: | - export RUBYJQ_USE_SYSTEM_LIBRARIES=1 - bundle install - - name: Run tests - run: | - bundle exec m -r .tools/tests/charts - - - chart-tests: - needs: [common-lint, common-unittest, catalog-tests] - runs-on: ubuntu-20.04 - - steps: - - name: Install Helm - run: /bin/bash -c "curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash" - - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Fetch base branch history - run: git fetch origin master:master - - - name: Setup catalog validation - run: | - sudo apt update > /dev/null 2>&1 - sudo apt install -y python3-all-dev python3-pip python3-setuptools > /dev/null 2>&1 - git clone https://github.com/truenas/catalog_validation - sudo pip3 install --disable-pip-version-check --exists-action w -r catalog_validation/requirements.txt > /dev/null 2>&1 - sudo pip3 install -U catalog_validation/. - - - name: Validate changed charts - run: /bin/bash -c "PWD=${pwd}; sudo /usr/local/bin/charts_validate deploy --path $PWD" diff --git a/.github/workflows/charts-release.yaml b/.github/workflows/charts-release.yaml deleted file mode 100644 index b2908f36bed..00000000000 --- a/.github/workflows/charts-release.yaml +++ /dev/null @@ -1,96 +0,0 @@ -name: "Charts: Release" - -on: - push: - branches: - - master - tags-ignore: - - '**' - paths: - - 'library/**' - - '!library/**/*.md' - - '!library/**/README.md' - - '!library/**/README.md.gotmpl' - - '!library/**/app-readme.md' - - '!library/**/app-readme.md.gotmpl' - - '!library/**/docs/*' - -jobs: - pre-release: - runs-on: ubuntu-latest - timeout-minutes: 5 - steps: - - name: Block concurrent jobs - uses: softprops/turnstyle@v1 - with: - continue-after-seconds: 180 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - release: - needs: pre-release - runs-on: ubuntu-latest - steps: - - name: Block concurrent jobs - uses: softprops/turnstyle@v1 - with: - continue-after-seconds: 180 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Configure Git - run: | - git config user.name "TrueCharts-Bot" - git config user.email "TrueCharts Bot" - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.5.2 - - - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.2.0 - with: - charts_dir: library - charts_repo_url: https://charts.truecharts.org/ - env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - - # Update the generated timestamp in the index.yaml - # needed until https://github.com/helm/chart-releaser/issues/90 - # or helm/chart-releaser-action supports this - post-release: - needs: release - runs-on: ubuntu-latest - steps: - - name: Block concurrent jobs - uses: softprops/turnstyle@v1 - with: - continue-after-seconds: 180 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout - uses: actions/checkout@v2 - with: - ref: "gh-pages" - fetch-depth: 0 - - - name: Configure Git - run: | - git config user.name "TrueCharts-Bot" - git config user.email "bot@truecharts.org" - - name: Commit and push timestamp updates - run: | - if [[ -f index.yaml ]]; then - git pull - export generated_date=$(date --utc +%FT%T.%9NZ) - sed -i -e "s/^generated:.*/generated: \"$generated_date\"/" index.yaml - git add index.yaml - git commit -sm "Update generated timestamp [ci-skip]" || exit 0 - git push - fi diff --git a/.github/workflows/charts-renovate.yaml b/.github/workflows/charts.renovate.yaml similarity index 60% rename from .github/workflows/charts-renovate.yaml rename to .github/workflows/charts.renovate.yaml index 503fda4d48e..9127c6ba748 100644 --- a/.github/workflows/charts-renovate.yaml +++ b/.github/workflows/charts.renovate.yaml @@ -27,9 +27,24 @@ jobs: with: version: v3.5.2 - - name: update folder names and dependencies + - name: update folder names and dependencies for stable run: | - for chart in charts/*; do + for chart in stable/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + helm dependency update ${chart}/${maxfolderversion} + if [ "${maxfolderversion}" != "${maxchartversion}" ]; then + mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion} + echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}" + fi + fi + done + - name: update folder names and dependencies for incubator + run: | + for chart in incubator/*; do if [ -d "${chart}" ]; then maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') @@ -43,6 +58,7 @@ jobs: fi done + - name: Commit and push updated charts run: | git add --all diff --git a/.github/workflows/community.invalid-template.yaml b/.github/workflows/community.invalid-template.yaml new file mode 100644 index 00000000000..86040ad09f4 --- /dev/null +++ b/.github/workflows/community.invalid-template.yaml @@ -0,0 +1,21 @@ +--- + +name: 'Community: Invalid Template' + +on: + issues: + types: [labeled, unlabeled, reopened] + +jobs: + support: + runs-on: ubuntu-20.04 + steps: + - uses: dessant/support-requests@v2 + with: + github-token: ${{ secrets.BOT_TOKEN }} + support-label: 'invalid:template-incomplete' + issue-comment: > + :wave: @{issue-author}, please follow the template provided. + close-issue: true + lock-issue: true + issue-lock-reason: 'resolved' diff --git a/.github/workflows/containers.build.yaml b/.github/workflows/containers.build.yaml new file mode 100644 index 00000000000..2f6fb3be9d3 --- /dev/null +++ b/.github/workflows/containers.build.yaml @@ -0,0 +1,170 @@ +name: "Containers: Test-and-Build" + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - '.containers/apps/**' + - '.containers/base/**' + - ".github/workflows/containers.build.yaml" + pull_request: + paths: + - '.containers/apps/**' + - '.containers/base/**' + - ".github/workflows/containers.build.yaml" + +env: + # How long to sleep before running the tests (gives the application time to start) + GOSS_SLEEP: 30 + +# Detect which folders in project-root (which contain the containers) contain changes +jobs: + changes: + name: Get changes + runs-on: ubuntu-20.04 + outputs: + matrix: "{\"container\": ${{ steps.reduce.outputs.containers }} }" + steps: + - name: Checkout + uses: actions/checkout@v2 + - uses: dorny/paths-filter@v2 + id: filter + with: + list-files: json + filters: | + changed: + - '.containers/apps/**' + - '.containers/base/**' + - run: echo '${{ toJson(steps.filter.outputs) }}' > changes.json + - id: reduce + run: | + CONTAINERS=$(jq --raw-output '.changed_files | fromjson | .[] |= sub("(?(?(?[\/]?)[^\/]+\/)(?(?[\/]?)[^\/]+\/(?(?[\/]?)[^\/]+)(?.+)))"; "\(.third_directory)") | unique' changes.json) + echo ::set-output name=containers::${CONTAINERS} + + hadolint: + name: Run hadolint + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: hadolint + uses: reviewdog/action-hadolint@v1.17.1 + with: + github_token: ${{ secrets.BOT_TOKEN }} + reporter: github-pr-review + filter_mode: diff_context + fail_on_error: true + + build: + name: Build + runs-on: ubuntu-20.04 + needs: + - hadolint + - changes + strategy: + matrix: ${{ fromJson(needs.changes.outputs.matrix) }} + fail-fast: false + if: "!contains(github.event.head_commit.message, '[ci-skip]')" + steps: + - name: Checkout + uses: actions/checkout@v2 + + # Define if tests and push should be run against which versions/platforms + - name: Prepare + id: prep + run: | + if test -f "./.containers/apps/${{ matrix.container }}/Dockerfile"; then + CATEGORY="apps" + else + CATEGORY="base" + fi + echo ::set-output name=category::${CATEGORY} + VERSION=$(cat ./.containers/${CATEGORY}/${{ matrix.container }}/VERSION) + echo ::set-output name=version::${VERSION} + PLATFORM=$(cat ./.containers/${CATEGORY}/${{ matrix.container }}/PLATFORM) + echo ::set-output name=platform::${PLATFORM} + if test -f "./.containers/${CATEGORY}/${{ matrix.container }}/goss.yaml"; then + echo ::set-output name=goss::true + else + echo ::set-output name=goss::false + fi + if [ "${{github.event_name}}" == "pull_request" ]; then + echo ::set-output name=push::false + else + echo ::set-output name=push::true + fi + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + + - name: Login to GHCR + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ secrets.GHCR_USERNAME }} + password: ${{ secrets.GHCR_TOKEN }} + + # Install and configure Buildx + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + with: + install: true + version: latest + driver-opts: image=moby/buildkit:master + + # Install the GOSS testing framework + - name: Set up goss/dgoss + uses: e1himself/goss-installation-action@v1.0.3 + if: ${{ steps.prep.outputs.goss == 'true' }} + with: + version: 'v0.3.16' + + # Creates a local build to run tests on + - name: Build and Load local test-container + if: ${{ steps.prep.outputs.goss == 'true' }} + uses: docker/build-push-action@v2 + with: + build-args: VERSION=${{ steps.prep.outputs.version }} + context: . + file: ./.containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/Dockerfile + load: true + tags: | + ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test + cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache + cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache,mode=max + + # Run GOSS tests if included with the container + - name: Run GOSS tests + if: ${{ steps.prep.outputs.goss == 'true' }} + env: + GOSS_FILE: ./.containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/goss.yaml + run: | + dgoss run ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:test + + # Push if not a PR, otherwise just test the build process for all requested platforms + - name: Build and Push + uses: docker/build-push-action@v2 + with: + build-args: VERSION=${{ steps.prep.outputs.version }} + context: . + platforms: ${{ steps.prep.outputs.platform }} + file: ./.containers/${{ steps.prep.outputs.category }}/${{ matrix.container }}/Dockerfile + push: ${{ steps.prep.outputs.push }} + tags: | + ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:latest + ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:v${{ steps.prep.outputs.version }} + cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache + cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}:buildcache,mode=max + + container-build-complete: + needs: [build] + name: Container Build Completed + runs-on: ubuntu-latest + steps: + - name: complete message + run: echo "Container Build and Tests Completed Successfully" diff --git a/.github/workflows/containers.update.yaml b/.github/workflows/containers.update.yaml new file mode 100644 index 00000000000..16c05ec4d2c --- /dev/null +++ b/.github/workflows/containers.update.yaml @@ -0,0 +1,59 @@ +name: "Containers: Update" + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - ".github/workflows/containers.update.yaml" + schedule: + - cron: "0 */4 * * *" + +jobs: + get-versions: + name: Get Apps Versions + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + # TODO remove this ref + ref: "staging" + token: ${{ secrets.BOT_TOKEN }} + fetch-depth: 1 + - name: Fetch new application versions + run: | + find ./.containers/apps -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | while read app; do + if test -f "./.containers/apps/${app}/latest-version.sh"; then + version=$(bash "./.containers/apps/${app}/latest-version.sh") + if [[ ! -z "${version}" || "${version}" != "null" ]]; then + echo "${version}" | tee "./.containers/apps/${app}/VERSION" > /dev/null + echo "App: ${app} using version: ${version}" + fi + fi + base=$(cat "./.containers/base/ubuntu/VERSION") + if [[ ! -z "${base}" || "${base}" != "null" ]]; then + echo "${base}" | tee ".containers/apps/${app}/BASE" > /dev/null + echo "App: ${app} using Base: ${base}" + fi + done + - name: Fetch new base versions + run: | + find ./.containers/base -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | while read app; do + if test -f "./.containers/base/${app}/latest-version.sh"; then + version=$(bash "./.containers/base/${app}/latest-version.sh") + if [[ ! -z "${version}" || "${version}" != "null" ]]; then + echo "${version}" | tee "./.containers/base/${app}/VERSION" > /dev/null + echo "${app} ${version}" + fi + fi + done + - name: Add, commit and push to applications version file + run: | + if [[ -n $(git status --porcelain) ]]; then + git config user.name "TrueCharts Bot" + git config user.email "bot@truecharts.org" + git add -A + git commit -sam "chore: added new container release versions" || exit 0 + git push + fi diff --git a/.github/workflows/docs.copy.yaml b/.github/workflows/docs.copy.yaml new file mode 100644 index 00000000000..27906d583c2 --- /dev/null +++ b/.github/workflows/docs.copy.yaml @@ -0,0 +1,93 @@ +name: "Docs: Copy" + +on: + workflow_dispatch: + push: + branches: + - master + tags-ignore: + - '**' + paths: + - 'library/**/Chart.yaml' + - '.tools/gen-helm-docs.sh' + - '.tools/templates/docs/**' + - '.tools/templates/app/*.gotmpl' + - '**.gotmpl' + - '**/LICENSE' + - '**LICENSE' + - '**.md' + - '.github/README.md' + - '.github/CODE_OF_CONDUCT' + - '.github/CONTRIBUTING' + - './LICENSE' + - './NOTICE' + - '.github/workflows/docs.copy.yaml' + +jobs: + copy: + runs-on: ubuntu-latest + name: "Copy" + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + token: ${{ secrets.BOT_TOKEN }} + + - name: install helm-docs + run: | + brew install norwoodj/tap/helm-docs + + - name: (re)generate docs + run: | + .tools/gen-helm-docs.sh + + - name: Copy general readme to website + run: | + yes | cp -rf .github/README.md docs/about/index.md || echo "readme copy failed, continuing..." + yes | cp -rf .github/CODE_OF_CONDUCT docs/about/code_of_conduct.md || echo "CODE_OF_CONDUCT copy failed, continuing..." + yes | cp -rf .github/CONTRIBUTING docs/development/contributing.md || echo "CONTRIBUTING copy failed, continuing..." + yes | cp -rf LICENSE docs/about/LICENSE.md || echo "license copy failed, continuing..." + sed -i '1s/^/# License
\n\n/' docs/about/LICENSE.md + yes | cp -rf NOTICE docs/about/NOTICE.md || echo "license copy failed, continuing..." + sed -i '1s/^/# NOTICE
\n\n/' docs/about/NOTICE.md + ls docs/ + + - name: Copy stable Apps readme to website + run: | + for chart in stable/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion}" + mkdir -p docs/apps/stable/${chartname} || echo "app path already exists, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/README.md docs/apps/stable/${chartname}/index.md || echo "readme copy failed, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/CONFIG.md docs/apps/stable/${chartname}/CONFIG.md || echo "config copy failed, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/LICENSE docs/apps/stable/${chartname}/LICENSE.md || echo "license copy failed, continuing..." + sed -i '1s/^/# License
\n\n/' docs/apps/stable/${chartname}/LICENSE.md || echo "license edit failed, continuing..." + fi + done + ls docs/apps/stable/ + + - name: Copy incubator Apps readme to website + run: | + for chart in incubator/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion}" + mkdir -p docs/apps/incubator/${chartname} || echo "app path already exists, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/README.md docs/apps/incubator/${chartname}/index.md || echo "readme copy failed, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/CONFIG.md docs/apps/incubator/${chartname}/CONFIG.md || echo "config copy failed, continuing..." + yes | cp -rf ${chart}/${maxfolderversion}/LICENSE docs/apps/incubator/${chartname}/LICENSE.md || echo "license copy failed, continuing..." + sed -i '1s/^/# License
\n\n/' docs/apps/incubator/${chartname}/LICENSE.md || echo "license edit failed, continuing..." + fi + done + ls docs/apps/incubator/ + + - name: Commit and Push updated docs + run: | + git config user.name "TrueCharts-Bot" + git config user.email "bot@truecharts.org" + git add --all + git commit -sm "Commit docs updates" || exit 0 + git push diff --git a/.github/workflows/docs.deploy.yaml b/.github/workflows/docs.deploy.yaml new file mode 100644 index 00000000000..f10d6986b0d --- /dev/null +++ b/.github/workflows/docs.deploy.yaml @@ -0,0 +1,25 @@ +name: "Docs: Deploy" +on: + workflow_dispatch: + push: + branches: + - master + paths: + - 'docs/**' + - '.github/workflows/docs.deploy.yaml' + - 'mkdocs.yml' + +jobs: + build: + name: Deploy Wiki + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + with: + token: ${{ secrets.BOT_TOKEN }} + + - name: Deploy docs + uses: mhausenblas/mkdocs-deploy-gh-pages@master + env: + GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} diff --git a/.github/workflows/general.security-scan.yaml b/.github/workflows/general.security-scan.yaml new file mode 100644 index 00000000000..d68b484b01b --- /dev/null +++ b/.github/workflows/general.security-scan.yaml @@ -0,0 +1,66 @@ +name: "General: Security Scan" + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - ".github/workflows/general.security-scan.yaml" + schedule: + - cron: "0 0 * * 0" + + +jobs: + directories: # Job that list subdirectories + runs-on: ubuntu-latest + outputs: + dir: ${{ steps.set-dirs.outputs.dir }} # generate output name dir by using inner step output + steps: + - uses: actions/checkout@v2 + with: + # TODO remove this ref + ref: "staging" + token: ${{ secrets.BOT_TOKEN }} + - id: set-dirs # Give it an id to handle to get step outputs in the outputs key above + run: echo "::set-output name=dir::$({ ls -d .containers/apps/*/ & ls -d .containers/base/*/; } | tr '\n' '\0' | xargs -0 -n 1 basename | jq -R -s -c 'split("\n")[:-1]')" + # Define step output named dir base on ls command transformed to JSON thanks to jq + + + scan_files: + name: Scan Files + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Run Trivy vulnerability scanner in repo mode + uses: aquasecurity/trivy-action@master + with: + scan-type: 'fs' + ignore-unfixed: true + format: 'template' + template: '@/contrib/sarif.tpl' + output: 'trivy-repo-results.sarif' + severity: 'CRITICAL' + + - name: Upload Trivy scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v1 + with: + sarif_file: 'trivy-repo-results.sarif' + + + scan_containers: + name: Scan Containers + runs-on: ubuntu-20.04 + needs: [directories] # Depends on previous job + strategy: + matrix: + dir: ${{fromJson(needs.directories.outputs.dir)}} # List matrix strategy from directories dynamically + fail-fast: false + steps: + - name: Container Security scan + uses: Azure/container-scan@v0 + with: + image-name: ghcr.io/${{ github.repository_owner }}/${{matrix.dir}}:latest + severity-threshold: HIGH diff --git a/.github/workflows/wiki-create-docs.yaml b/.github/workflows/wiki-create-docs.yaml deleted file mode 100644 index b872cd5c029..00000000000 --- a/.github/workflows/wiki-create-docs.yaml +++ /dev/null @@ -1,95 +0,0 @@ -name: "Website: Create Docs" - -on: - push: - branches: - - master - tags-ignore: - - '**' - -jobs: - publish-app-docs: - runs-on: ubuntu-latest - steps: - - name: Checkout-Master - uses: actions/checkout@v2 - with: - path: 'master' - token: ${{ secrets.BOT_TOKEN }} - - name: Checkout-Website - uses: actions/checkout@v2 - with: - repository: 'truecharts/website' - path: 'website' - token: ${{ secrets.BOT_TOKEN }} - - - - name: install helm-docs - run: | - brew install norwoodj/tap/helm-docs - - - name: (re)generate docs - run: | - cd master - .tools/gen-helm-docs.sh - cd .. - - - name: Clean-Website - run: | - rm -Rf website/content - mkdir -p website/content - cp -f website/CNAME website/content/CNAME - - - name: Create general website - run: | - cd master - cp -Rf .github/docs/* ../website/content/ - cp .github/README.md ../website/content/about/index.md || echo "readme copy failed, continuing..." - cp .github/CODE_OF_CONDUCT ../website/content/about/code_of_conduct.md || echo "CODE_OF_CONDUCT copy failed, continuing..." - cp .github/CONTRIBUTING ../website/content/development/contributing.md || echo "CONTRIBUTING copy failed, continuing..." - cp LICENSE ../website/content/about/LICENSE.md || echo "license copy failed, continuing..." - sed -i '1s/^/# License
\n\n/' ../website/content/about/LICENSE.md - cp NOTICE ../website/content/about/NOTICE.md || echo "license copy failed, continuing..." - sed -i '1s/^/# NOTICE
\n\n/' ../website/content/about/NOTICE.md - ls ../website/content/ - cd .. - - - name: Create apps website - run: | - cd master - for chart in charts/*; do - if [ -d "${chart}" ]; then - maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) - chartname=$(basename ${chart}) - echo "Processing: ${chart} - folder: ${maxfolderversion}" - - mkdir -p ../website/content/apps/${chartname} || echo "website path already exists, continuing..." - if [ -d "${chart}/${maxfolderversion}/docs" ]; then - cp -f ${chart}/${maxfolderversion}/docs/* ../website/content/apps/${chartname}/ - fi - cp ${chart}/${maxfolderversion}/README.md ../website/content/apps/${chartname}/index.md || echo "readme copy failed, continuing..." - cp ${chart}/${maxfolderversion}/LICENSE ../website/content/apps/${chartname}/LICENSE.md || echo "license copy failed, continuing..." - sed -i '1s/^/# License
\n\n/' ../website/content/apps/${chartname}/LICENSE.md || echo "license edit failed, continuing..." - fi - done - ls ../website/content/apps/ - cd .. - - - name: Commit and push updated website - run: | - cd website - git config user.name "TrueCharts-Bot" - git config user.email "bot@truecharts.org" - git add --all - git commit -sm "Publish general website updates" || exit 0 - git push - cd .. - - - name: Commit and push updated charts - run: | - cd master - git config user.name "TrueCharts-Bot" - git config user.email "bot@truecharts.org" - git add --all - git commit -sm "Publish docs updates" || exit 0 - git push diff --git a/.gitignore b/.gitignore index 5df53d37d07..02b4c4cd0dc 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ auto_config.py .idea .devcontainer/ Gemfile.lock +.ignore/ /docs/api/_build/ /docs/userguide/_build/ /gui/local_settings.py @@ -41,3 +42,6 @@ tests/test-report.txt tests/test-report.xml private_values.yaml temp/ +library/common-test/charts/ +Chart.lock +.cr-release-packages/ diff --git a/.helmdocsignore b/.helmdocsignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d7fc402cf7f..3d5bd8c6eb5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,3 +9,8 @@ repos: - id: mixed-line-ending - id: check-merge-conflict - id: check-case-conflict + - id: check-executables-have-shebangs + - id: check-docstring-first + - id: check-symlinks + - id: destroyed-symlinks + - id: fix-byte-order-marker diff --git a/.tools/copy-common.sh b/.tools/copy-common.sh new file mode 100755 index 00000000000..2033be016aa --- /dev/null +++ b/.tools/copy-common.sh @@ -0,0 +1,24 @@ +#!/bin/sh +for chart in stable/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + + rm -Rf ${chart}/${maxfolderversion}/charts/*.tgz + cp -f library/common-test/charts/* ${chart}/${maxfolderversion}/charts/ + + fi +done + +for chart in incubator/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + + rm -Rf ${chart}/${maxfolderversion}/charts/*.tgz + cp -f library/common-test/charts/* ${chart}/${maxfolderversion}/charts/ + + fi +done diff --git a/.tools/fixfolders.sh b/.tools/fixfolders.sh index b47476469ab..0886a8b3c60 100755 --- a/.tools/fixfolders.sh +++ b/.tools/fixfolders.sh @@ -1,4 +1,35 @@ -for chart in charts/*; do +#!/bin/sh +for chart in staging/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + helm dependency update --skip-refresh ${chart}/${maxfolderversion} + if [ "${maxfolderversion}" != "${maxchartversion}" ]; then + mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion} + echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}" + fi + fi +done + + +for chart in stable/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + helm dependency update --skip-refresh ${chart}/${maxfolderversion} + if [ "${maxfolderversion}" != "${maxchartversion}" ]; then + mv -f ${chart}/${maxfolderversion} ${chart}/${maxchartversion} + echo "renamed ${chart}/${maxfolderversion} to ${chart}/${maxchartversion}" + fi + fi +done + + +for chart in beta/*; do if [ -d "${chart}" ]; then maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') diff --git a/.tools/gen-helm-docs.sh b/.tools/gen-helm-docs.sh index e258caf850e..656ec67f965 100755 --- a/.tools/gen-helm-docs.sh +++ b/.tools/gen-helm-docs.sh @@ -14,37 +14,58 @@ command -v helm-docs >/dev/null 2>&1 || { repository=$(git rev-parse --show-toplevel) # Templates to copy into each chart directory -readme_template="${repository}/.tools/templates/chart/README.md.gotmpl" -config_template="${repository}/.tools/templates/chart/docs/CONFIG.md.gotmpl" -app_readme_template="${repository}/.tools/templates/chart/app-readme.md.gotmpl" +readme_template="${repository}/.tools/templates/docs/README.md.gotmpl" +config_template="${repository}/.tools/templates/docs/CONFIG.md.gotmpl" +app_readme_template="${repository}/.tools/templates/docs/app-readme.md.gotmpl" -# Gather all charts using the common library, excluding common-test -charts=$(find "${repository}" -name "Chart.yaml" -exec grep --exclude="*common-test*" -l "\- name\: common" {} \;) root="${repository}" -for chart in charts/*; do +for chart in stable/*; do if [ -d "${chart}" ]; then maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') chartname=$(basename ${chart}) - mkdir -p ${chart}/${maxfolderversion}/docs || true echo "-] Copying templates to ${repository}/${chart}/${maxfolderversion}" - # Copy CONFIG template to each Chart directory, do not overwrite if exists - cp -n "${config_template}" "${chart}/${maxfolderversion}/docs/CONFIG.md.gotmpl" || true helm-docs \ - --ignore-file="${repository}/.helmdocsignore" \ - --output-file="README.md" \ - --template-files="${repository}/.tools/templates/chart/README.md.gotmpl" \ + --ignore-file=".helmdocsignore" \ + --output-file="README.md" \ + --template-files="${repository}/.tools/templates/docs/README.md.gotmpl" \ --chart-search-root="${chart}/${maxfolderversion}" helm-docs \ - --ignore-file="${repository}/.helmdocsignore" \ - --output-file="docs/CONFIG.md" \ - --template-files="${chart}/${maxfolderversion}/docs/CONFIG.md.gotmpl" \ + --ignore-file=".helmdocsignore" \ + --output-file="CONFIG.md" \ + --template-files="${repository}/.tools/templates/docs/CONFIG.md.gotmpl" \ --chart-search-root="${chart}/${maxfolderversion}" helm-docs \ - --ignore-file="${repository}/.helmdocsignore" \ + --ignore-file=".helmdocsignore" \ --output-file="app-readme.md" \ - --template-files="${repository}/.tools/templates/chart/app-readme.md.gotmpl" \ + --template-files="${repository}/.tools/templates/docs/app-readme.md.gotmpl" \ + --chart-search-root="${chart}/${maxfolderversion}" + + + fi +done + +for chart in incubator/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + maxchartversion=$(cat ${chart}/${maxfolderversion}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + echo "-] Copying templates to ${repository}/${chart}/${maxfolderversion}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="README.md" \ + --template-files="${repository}/.tools/templates/docs/README.md.gotmpl" \ + --chart-search-root="${chart}/${maxfolderversion}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="CONFIG.md" \ + --template-files="${repository}/.tools/templates/docs/CONFIG.md.gotmpl" \ + --chart-search-root="${chart}/${maxfolderversion}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="app-readme.md" \ + --template-files="${repository}/.tools/templates/docs/app-readme.md.gotmpl" \ --chart-search-root="${chart}/${maxfolderversion}" diff --git a/.tools/templates/chart/.helmignore b/.tools/templates/app/.helmignore similarity index 100% rename from .tools/templates/chart/.helmignore rename to .tools/templates/app/.helmignore diff --git a/.tools/templates/chart/Chart.yaml b/.tools/templates/app/Chart.yaml similarity index 61% rename from .tools/templates/chart/Chart.yaml rename to .tools/templates/app/Chart.yaml index d69fe35eb37..a3226416973 100644 --- a/.tools/templates/chart/Chart.yaml +++ b/.tools/templates/app/Chart.yaml @@ -7,20 +7,17 @@ appVersion: 1.0.0 description: ${CHARTNAME} App for TrueNAS SCALE type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/${CHARTNAME} -icon: https://raw.githubusercontent.com/truecharts/charts/master/charts/${CHARTNAME}/icon.png?raw=true +home: https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME} +icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/${CHARTNAME}/icon.png?raw=true keywords: - ${CHARTNAME} sources: - - https://github.com/truecharts/charts/tree/master/charts/${CHARTNAME} + - https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME} dependencies: - name: common repository: https://charts.truecharts.com/ version: 1.3.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/.tools/templates/chart/README.md b/.tools/templates/app/README.md similarity index 98% rename from .tools/templates/chart/README.md rename to .tools/templates/app/README.md index 936b3fd7db2..22067f7ff3a 100644 --- a/.tools/templates/chart/README.md +++ b/.tools/templates/app/README.md @@ -19,7 +19,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://k8s-at-home.com/charts/ | common | 3.0.1 | +| https://truecharts.org/ | common | 3.0.1 | ## TL;DR diff --git a/.tools/templates/app/app-readme.md b/.tools/templates/app/app-readme.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.tools/templates/chart/values.yaml b/.tools/templates/app/values.yaml similarity index 100% rename from .tools/templates/chart/values.yaml rename to .tools/templates/app/values.yaml diff --git a/.tools/templates/chart/docs/CONFIG.md.gotmpl b/.tools/templates/chart/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/.tools/templates/chart/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/.tools/templates/docs/CONFIG.md.gotmpl b/.tools/templates/docs/CONFIG.md.gotmpl new file mode 100644 index 00000000000..58c495dc8b5 --- /dev/null +++ b/.tools/templates/docs/CONFIG.md.gotmpl @@ -0,0 +1,17 @@ +{{- define "custom.custom.configuration.header" -}} +# Configuration Options +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. +{{- end -}} + +{{ template "custom.custom.configuration" . }} diff --git a/.tools/templates/chart/README.md.gotmpl b/.tools/templates/docs/README.md.gotmpl similarity index 85% rename from .tools/templates/chart/README.md.gotmpl rename to .tools/templates/docs/README.md.gotmpl index ada46a5c57d..8c7cf059338 100644 --- a/.tools/templates/chart/README.md.gotmpl +++ b/.tools/templates/docs/README.md.gotmpl @@ -7,7 +7,7 @@ TrueCharts {{- end -}} {{- define "custom.repository.url" -}} -https://github.com/truecharts/charts +https://github.com/truecharts/apps {{- end -}} {{- define "custom.helm.url" -}} @@ -20,7 +20,7 @@ https://charts.truecharts.org {{- define "custom.notes" -}} TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** {{- end -}} {{- define "custom.requirements" -}} @@ -60,16 +60,16 @@ To uninstall the `{{ template "chart.name" . }}` deployment The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. {{- end -}} -{{- define "custom.configuration.header" -}} -## Configuration -{{- end -}} - {{- define "custom.support" -}} ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) +{{- end -}} + +{{- define "custom.copyright" -}} +All Rights Reserved - The TrueCharts Project {{- end -}} {{ template "custom.introheader" . }} @@ -93,3 +93,4 @@ The command removes all the Kubernetes components associated with the chart **in {{ template "custom.support" . }} {{ template "helm-docs.versionFooter" . }} +{{ template "custom.copyright" . }} diff --git a/.tools/templates/chart/app-readme.md.gotmpl b/.tools/templates/docs/app-readme.md.gotmpl similarity index 54% rename from .tools/templates/chart/app-readme.md.gotmpl rename to .tools/templates/docs/app-readme.md.gotmpl index 4e52f6ec229..72c5e171f82 100644 --- a/.tools/templates/chart/app-readme.md.gotmpl +++ b/.tools/templates/docs/app-readme.md.gotmpl @@ -1,5 +1,5 @@ {{- define "custom.notes" -}} +This App is supplied by TrueCharts, for more information please visit https://truecharts.org {{- end -}} - {{ template "chart.description" . }} {{ template "custom.notes" . }} diff --git a/.tools/tests/charts/common-test_spec.rb b/.tools/tests/charts/common-test_spec.rb index 9b091269d9c..69fca84b7f2 100644 --- a/.tools/tests/charts/common-test_spec.rb +++ b/.tools/tests/charts/common-test_spec.rb @@ -38,6 +38,61 @@ class Test < ChartTest end end + describe 'startAsRoot' do + it 'defaults to false = runAs 568' do + jq('.spec.template.spec.securityContext.runAsUser', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.runAsGroup', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.fsGroup', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.runAsNonRoot', resource('Deployment')).must_equal true + jq('.spec.template.spec.securityContext.supplementalGroups', resource('Deployment')).must_equal [] + end + + it 'allow settingsupplementalGroups' do + values = { + supplementalGroups: "5,20" + } + chart.value values + jq('.spec.template.spec.securityContext.runAsUser', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.runAsGroup', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.fsGroup', resource('Deployment')).must_equal 568 + jq('.spec.template.spec.securityContext.runAsNonRoot', resource('Deployment')).must_equal true + jq('.spec.template.spec.securityContext.supplementalGroups', resource('Deployment')).must_equal [5,20] + end + + it 'can be enabled = runAs nil' do + chart.value startAsRoot: true + jq('.spec.template.spec.securityContext.runAsUser', resource('Deployment')).must_equal nil + jq('.spec.template.spec.securityContext.runAsGroup', resource('Deployment')).must_equal nil + jq('.spec.template.spec.securityContext.runAsNonRoot', resource('Deployment')).must_equal nil + jq('.spec.template.spec.securityContext.fsGroup', resource('Deployment')).must_equal nil + jq('.spec.template.spec.securityContext.supplementalGroups', resource('Deployment')).must_equal nil + end + end + + describe 'hostNetwork' do + it ' hostnetworking default = nil' do + jq('.spec.template.spec.hostNetwork', resource('Deployment')).must_equal nil + end + + it 'DNSPolic = ClusterFirst, hostnetworking = nil' do + values = { + hostNetwork: false + } + chart.value values + jq('.spec.template.spec.hostNetwork', resource('Deployment')).must_equal nil + jq('.spec.template.spec.dnsPolicy', resource('Deployment')).must_equal 'ClusterFirst' + end + + it 'DNSPolic = ClusterFirstWithHostNet, hostnetworking = true' do + values = { + hostNetwork: true + } + chart.value values + jq('.spec.template.spec.hostNetwork', resource('Deployment')).must_equal true + jq('.spec.template.spec.dnsPolicy', resource('Deployment')).must_equal 'ClusterFirstWithHostNet' + end + end + describe 'Environment settings' do it 'Check no environment variables' do values = {} @@ -142,49 +197,55 @@ class Test < ChartTest it 'port name can be overridden' do values = { - service: { - port: { - name: 'server' - } + services: { + main: { + port: { + name: 'server' + } + } } } chart.value values jq('.spec.ports[0].port', resource('Service')).must_equal default_port - jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:service][:port][:name] - jq('.spec.ports[0].name', resource('Service')).must_equal values[:service][:port][:name] + jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:services][:main][:port][:name] + jq('.spec.ports[0].name', resource('Service')).must_equal values[:services][:main][:port][:name] jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal default_port - jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal values[:service][:port][:name] + jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal values[:services][:main][:port][:name] end it 'targetPort can be overridden' do values = { - service: { - port: { - targetPort: 80 - } + services: { + main: { + port: { + targetPort: 80 + } + } } } chart.value values jq('.spec.ports[0].port', resource('Service')).must_equal default_port - jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:service][:port][:targetPort] + jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:services][:main][:port][:targetPort] jq('.spec.ports[0].name', resource('Service')).must_equal default_name - jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal values[:service][:port][:targetPort] + jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal values[:services][:main][:port][:targetPort] jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal default_name end it 'targetPort cannot be a named port' do values = { - service: { - port: { - targetPort: 'test' - } + services: { + main: { + port: { + targetPort: 'test' + } + } } } chart.value values exception = assert_raises HelmCompileError do chart.execute_helm_template! end - assert_match("Our charts do not support named ports for targetPort. (port name #{default_name}, targetPort #{values[:service][:port][:targetPort]})", exception.message) + assert_match("Our charts do not support named ports for targetPort. (port name #{default_name}, targetPort #{values[:services][:main][:port][:targetPort]})", exception.message) end end @@ -258,5 +319,755 @@ class Test < ChartTest end end + describe 'Dynamic Portal creation' do + defaultProtocol = "https" + defaultHost = "$node_ip" + defaultPort = "443" + testNodePort = "666" + testIngressPort = "888" + it 'No portal (=configmap) is created by default' do + assert_nil(resource('ConfigMap')) + end + + it 'portal is created when added' do + values = { + portal: { + enabled: true + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal defaultHost + jq('.data.port', resource('ConfigMap')).must_equal defaultPort + end + + it 'portal port can be based on NodePort' do + values = { + portal: { + enabled: true + }, + services: { + main: { + type: "NodePort", + port: { + port: 8080, + nodePort: 666 + } + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal defaultHost + jq('.data.port', resource('ConfigMap')).must_equal testNodePort + end + + it 'NodePort portal port can not be overrulled' do + values = { + portal: { + enabled: true, + ingressPort: 888 + }, + services: { + main: { + type: "NodePort", + port: { + port: 8080, + nodePort: 666 + } + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal defaultHost + jq('.data.port', resource('ConfigMap')).must_equal testNodePort + end + + it 'portal NodePort host can be overrulled' do + values = { + portal: { + enabled: true, + ingressPort: 888, + host: "test.com" + }, + services: { + main: { + type: "NodePort", + port: { + port: 8080, + nodePort: 666 + } + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.host', resource('ConfigMap')).must_equal values[:portal][:host] + jq('.data.port', resource('ConfigMap')).must_equal testNodePort + end + + it 'portal can be based on Ingress' do + values = { + portal: { + enabled: true + }, + services: { + main: { + port: { + port: 8080 + } + } + }, + ingress: { + main: { + enabled: true, + hosts: [ + { + host: 'test.com', + paths: [ + { + path: '/' + } + ] + } + ] + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal values[:ingress][:main][:hosts][0][:host] + jq('.data.port', resource('ConfigMap')).must_equal defaultPort + end + + it 'Ingress portal overrules NodePort portal' do + values = { + portal: { + enabled: true + }, + services: { + main: { + type: "NodePort", + port: { + port: 8080, + nodePort: 666 + } + } + }, + ingress: { + main: { + enabled: true, + hosts: [ + { + host: 'test.com', + paths: [ + { + path: '/' + } + ] + } + ] + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal values[:ingress][:main][:hosts][0][:host] + jq('.data.port', resource('ConfigMap')).must_equal defaultPort + end + + it 'portal ingress, only port can be overrrulled' do + values = { + portal: { + enabled: true, + ingressPort: 888, + host: "test1.com" + }, + services: { + main: { + port: { + port: 8080 + } + } + }, + ingress: { + main: { + enabled: true, + hosts: [ + { + host: 'test2.com', + paths: [ + { + path: '/' + } + ] + } + ] + } + } + } + chart.value values + refute_nil(resource('ConfigMap')) + jq('.data.protocol', resource('ConfigMap')).must_equal defaultProtocol + jq('.data.host', resource('ConfigMap')).must_equal values[:ingress][:main][:hosts][0][:host] + jq('.data.port', resource('ConfigMap')).must_equal testIngressPort + end + + end + + describe 'ingress' do + it 'should be disabled when (additional)ingress enabled = false' do + values = { + ingress: { + test1: { + enabled: false + }, + test2: { + enabled: false + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + assert_nil(resource('Ingress')) + end + + it 'should be enabled when (additional)ingress enabled = true' do + values = { + ingress: { + test1: { + enabled: true + }, + test2: { + enabled: true + } + }, + additionalIngress: [ + { + enabled: true, + name: "test3" + }, + { + enabled: true, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('Ingress')) + end + + it 'should be not create ingressroute unless type tcp/udp' do + values = { + ingress: { + test1: { + enabled: true + }, + test2: { + enabled: true + } + }, + additionalIngress: [ + { + enabled: true, + name: "test3" + }, + { + enabled: true, + name: "test4" + } + ] + } + chart.value values + assert_nil(resource('IngressRouteTCP')) + assert_nil(resource('IngressRouteUDP')) + end + + it 'should be enabled when half (additional)ingress enabled = true' do + values = { + ingress: { + test1: { + enabled: false + }, + test2: { + enabled: true + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: true, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('Ingress')) + end + + it 'ingress with hosts' do + values = { + ingress: { + test1: { + hosts: [ + { + host: 'hostname', + path: '/' + } + ] + } + } + } + + chart.value values + jq('.spec.rules[0].host', resource('Ingress')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.rules[0].http.paths[0].path', resource('Ingress')).must_equal values[:ingress][:test1][:hosts][0][:path] + end + + + + it 'ingress with selfsigned certtype is evaluated' do + expectedHostName = 'common-test.hostname' + expectedSecretName = 'common-test-hostname-secret-name' + values = { + ingress: { + test1: { + enabled: true, + hosts: [ + { + host: 'hostname', + path: '/' + } + ], + certType: "selfsigned" + } + } + } + + chart.value values + jq('.spec.rules[0].host', resource('Ingress')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.rules[0].http.paths[0].path', resource('Ingress')).must_equal values[:ingress][:test1][:hosts][0][:path] + jq('.spec.tls[0].hosts[0]', resource('Ingress')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.tls[0].secretName', resource('Ingress')).must_equal nil + end + + it 'should create when type = HTTP' do + values = { + ingress: { + test1: { + enabled: true, + type: "HTTP" + }, + test2: { + enabled: false + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('Ingress')) + end + + it 'check no middleware without traefik' do + values = { + ingress: { + test1: { + enabled: true + } + } + } + chart.value values + assert_nil(resource('Middleware')) + end + + it 'check authForward when authForwardURL is set' do + expectedName = 'common-test-test1-auth-forward' + values = { + ingress: { + test1: { + enabled: true, + authForwardURL: "test.test.com" + } + } + } + chart.value values + refute_nil(resource('Middleware')) + jq('.spec.forwardAuth.address', resource('Middleware')).must_equal values[:ingress][:test1][:authForwardURL] + jq('.metadata.name', resource('Middleware')).must_equal expectedName + end + + end + + describe 'ingressRoutes' do + it 'should create only TCP when type = TCP' do + values = { + ingress: { + test1: { + enabled: true, + type: "TCP" + }, + test2: { + enabled: false + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('IngressRouteTCP')) + assert_nil(resource('IngressRouteUDP')) + end + + it 'should create only UDP when type = UDP' do + values = { + ingress: { + test1: { + enabled: true, + type: "UDP" + }, + test2: { + enabled: false + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('IngressRouteUDP')) + assert_nil(resource('IngressRouteTCP')) + end + + it 'should create only additional TCP when type = TCP' do + values = { + ingress: { + test1: { + enabled: false + }, + test2: { + enabled: false + } + }, + additionalIngress: [ + { + enabled: true, + name: "test3", + type: "TCP" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('IngressRouteTCP')) + assert_nil(resource('IngressRouteUDP')) + end + + it 'should create only additional UDP when type = UDP' do + values = { + ingress: { + test1: { + enabled: false + }, + test2: { + enabled: false + } + }, + additionalIngress: { + test3: { + enabled: true, + type: "UDP" + }, + test4: { + enabled: false + } + } + } + chart.value values + refute_nil(resource('IngressRouteUDP')) + assert_nil(resource('IngressRouteTCP')) + end + + it 'should be able to create 3 ingress types' do + values = { + ingress: { + test1: { + enabled: true, + type: "UDP" + }, + test2: { + enabled: true, + type: "TCP" + }, + test2b: { + enabled: true, + type: "HTTP" + } + }, + additionalIngress: [ + { + enabled: false, + name: "test3" + }, + { + enabled: false, + name: "test4" + } + ] + } + chart.value values + refute_nil(resource('IngressRouteUDP')) + refute_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + end + + it 'should be able to create 3 additional ingress types' do + values = { + ingress: { + test1: { + enabled: false, + type: "UDP" + }, + test2: { + enabled: false, + type: "TCP" + }, + test2b: { + enabled: false, + type: "HTTP" + } + }, + additionalIngress: [ + { + enabled: true, + type: "HTTP", + name: "test3" + }, + { + enabled: true, + type: "TCP", + name: "test4" + }, + { + enabled: true, + type: "UDP", + name: "test5" + } + ] + } + chart.value values + refute_nil(resource('IngressRouteUDP')) + refute_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + end + + it 'ingressroute with selfsigned certtype is evaluated' do + values = { + ingress: { + test1: { + type: "TCP", + enabled: true, + hosts: [ + { + host: 'hostname' + } + ], + certType: "selfsigned" + } + } + } + + chart.value values + jq('.spec.tls.domains[0].main', resource('IngressRouteTCP')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.tls.secretName', resource('IngressRouteTCP')).must_equal nil + end + + it 'ingressrouteUDP + HTTP +TCP with selfsigned cert is evaluated ' do + values = { + ingress: { + test1: { + type: "TCP", + enabled: true, + hosts: [ + { + host: 'hostname' + } + ], + certType: "selfsigned" + }, + test2: { + enabled: true, + type: "UDP" + }, + test2b: { + enabled: true, + type: "HTTP" + } + } + } + + chart.value values + jq('.spec.tls.domains[0].main', resource('IngressRouteTCP')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.tls.secretName', resource('IngressRouteTCP')).must_equal nil + refute_nil(resource('IngressRouteUDP')) + refute_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + end + + it 'HTTP-ingressRoute is evaluated ' do + expectedHostString = 'Host(`hostname`) && PathPrefix(`/`)' + values = { + ingress: { + test1: { + type: "HTTP-IR", + enabled: true, + hosts: [ + { + host: 'hostname' + } + ] + } + } + } + + chart.value values + jq('.spec.routes[0].match', resource('IngressRoute')).must_equal expectedHostString + assert_nil(resource('IngressRouteUDP')) + assert_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + refute_nil(resource('IngressRoute')) + end + + it 'HTTP-ingressRoute with selfsigned cert is evaluated is evaluated ' do + expectedHostString = 'Host(`hostname`) && PathPrefix(`/`)' + values = { + ingress: { + test1: { + type: "HTTP-IR", + enabled: true, + hosts: [ + { + host: 'hostname' + } + ], + certType: "selfsigned" + } + } + } + + chart.value values + jq('.spec.routes[0].match', resource('IngressRoute')).must_equal expectedHostString + assert_nil(resource('IngressRouteUDP')) + assert_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + refute_nil(resource('IngressRoute')) + jq('.spec.tls.domains[0].main', resource('IngressRoute')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.tls.secretName', resource('IngressRoute')).must_equal nil + end + + it 'HTTP-ingressRoute+selfsigned+forwardAuth is evaluated is evaluated ' do + expectedHostString = 'Host(`hostname`) && PathPrefix(`/`)' + expectedName = 'common-test-test1-auth-forward' + values = { + ingress: { + test1: { + type: "HTTP-IR", + enabled: true, + hosts: [ + { + host: 'hostname' + } + ], + certType: "selfsigned", + authForwardURL: "test.com" + } + } + } + + chart.value values + jq('.spec.routes[0].match', resource('IngressRoute')).must_equal expectedHostString + assert_nil(resource('IngressRouteUDP')) + assert_nil(resource('IngressRouteTCP')) + refute_nil(resource('Ingress')) + refute_nil(resource('IngressRoute')) + jq('.spec.tls.domains[0].main', resource('IngressRoute')).must_equal values[:ingress][:test1][:hosts][0][:host] + jq('.spec.tls.secretName', resource('IngressRoute')).must_equal nil + jq('.metadata.name', resource('Middleware')).must_equal expectedName + jq('.spec.routes[0].middlewares[1].name', resource('IngressRoute')).must_equal expectedName + end + end + + describe 'externalServices' do + it 'no externalService endpoints present by default' do + assert_nil(resource('Endpoints')) + end + + it 'Create externalService endpoint' do + values = { + externalServices: [ + { + enabled: true, + serviceTarget: "192.168.10.20", + servicePort: 9443, + certType: "selfsigned", + entrypoint: "websecure", + type: "HTTP", + host: 'hostname', + path: '/' + } + ] + } + + chart.value values + refute_nil(resource('Endpoints')) + jq('.subsets[0].addresses[0].ip', resource('Endpoints')).must_equal values[:externalServices][0][:serviceTarget] + jq('.subsets[0].ports[0].port', resource('Endpoints')).must_equal values[:externalServices][0][:servicePort] + jq('.metadata.name', resource('Endpoints')).must_equal "common-test-external-0" + end end end +end diff --git a/.tools/values-change.sh b/.tools/values-change.sh new file mode 100755 index 00000000000..dd80aa07275 --- /dev/null +++ b/.tools/values-change.sh @@ -0,0 +1,21 @@ +#!/bin/sh +for chart in stable/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + + mv -f ${chart}/${maxfolderversion}/values.yaml ${chart}/${maxfolderversion}/ix_values.yaml + fi +done + + +for chart in incubator/*; do + if [ -d "${chart}" ]; then + maxfolderversion=$(ls -l ${chart} | grep ^d | awk '{print $9}' | tail -n 1) + chartname=$(basename ${chart}) + echo "Processing: ${chart} - folder: ${maxfolderversion} - version: ${maxchartversion}" + + mv -f ${chart}/${maxfolderversion}/values.yaml ${chart}/${maxfolderversion}/ix_values.yaml + fi +done diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 8787de79c83..e6f236458b8 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,5 @@ { - "recommendations": [ - "ms-vscode-remote.remote-containers" - ] + "recommendations": [ + "ms-vscode-remote.remote-containers" + ] } diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000000..48ddc30d7c9 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,42 @@ +GEM + remote: https://rubygems.org/ + specs: + ansi (1.5.0) + builder (3.2.4) + coderay (1.1.3) + m (1.5.1) + method_source (>= 0.6.7) + rake (>= 0.9.2.2) + method_source (1.0.0) + mini_portile2 (2.5.0) + minitest (5.14.4) + minitest-implicit-subject (1.4.0) + minitest + minitest-reporters (1.4.3) + ansi + builder + minitest (>= 5.0) + ruby-progressbar + multi_json (1.15.0) + pry (0.14.0) + coderay (~> 1.1) + method_source (~> 1.0) + rake (13.0.3) + ruby-jq (0.2.1) + mini_portile2 (>= 2.2.0) + multi_json + ruby-progressbar (1.11.0) + +PLATFORMS + ruby + +DEPENDENCIES + m + minitest + minitest-implicit-subject + minitest-reporters + pry + ruby-jq + +BUNDLED WITH + 2.1.4 diff --git a/charts/bazarr/1.6.4/Chart.lock b/charts/bazarr/1.6.4/Chart.lock deleted file mode 100644 index 8488950b278..00000000000 --- a/charts/bazarr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:19.389372418Z" diff --git a/charts/bazarr/1.6.4/charts/common-1.6.7.tgz b/charts/bazarr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/bazarr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/bazarr/1.6.4/docs/CONFIG.md b/charts/bazarr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/bazarr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/bazarr/1.6.4/docs/CONFIG.md.gotmpl b/charts/bazarr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/bazarr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/bazarr/1.6.4/values.yaml b/charts/bazarr/1.6.4/values.yaml deleted file mode 100644 index 270735412ed..00000000000 --- a/charts/bazarr/1.6.4/values.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# Default values for Bazarr. - -image: - repository: linuxserver/bazarr - pullPolicy: IfNotPresent - tag: version-v0.9.0.5 - -strategy: - type: Recreate - -service: - port: - port: 6767 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false -# downloads: -# enabled: true -# emptyDir: false diff --git a/charts/calibre-web/1.6.4/Chart.lock b/charts/calibre-web/1.6.4/Chart.lock deleted file mode 100644 index e03821ed3b6..00000000000 --- a/charts/calibre-web/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:16.711451938Z" diff --git a/charts/calibre-web/1.6.4/charts/common-1.6.7.tgz b/charts/calibre-web/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/calibre-web/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/calibre-web/1.6.4/docs/CONFIG.md b/charts/calibre-web/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/calibre-web/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/calibre-web/1.6.4/docs/CONFIG.md.gotmpl b/charts/calibre-web/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/calibre-web/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/calibre-web/1.6.4/values.yaml b/charts/calibre-web/1.6.4/values.yaml deleted file mode 100644 index 18d419b5594..00000000000 --- a/charts/calibre-web/1.6.4/values.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# Default values for Calibre-Web. - -image: - repository: linuxserver/calibre-web - pullPolicy: IfNotPresent - tag: version-0.6.9 - -strategy: - type: Recreate - -service: - port: - port: 8083 - -env: {} - # TZ: - # PUID: - # PGID: - # UMASK: - # DOCKER_MODS: - -persistence: - config: - enabled: false - emptyDir: false - - books: - enabled: false - emptyDir: false - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Set to true to retain the PVC upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# media: -# enabled: false -# emptyDir: false diff --git a/charts/collabora-online/1.6.4/Chart.lock b/charts/collabora-online/1.6.4/Chart.lock deleted file mode 100644 index ca5b8b6efec..00000000000 --- a/charts/collabora-online/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:13.976532921Z" diff --git a/charts/collabora-online/1.6.4/charts/common-1.6.7.tgz b/charts/collabora-online/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/collabora-online/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/collabora-online/1.6.4/docs/CONFIG.md b/charts/collabora-online/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/collabora-online/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/collabora-online/1.6.4/docs/CONFIG.md.gotmpl b/charts/collabora-online/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/collabora-online/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/collabora-online/1.6.4/questions.yaml b/charts/collabora-online/1.6.4/questions.yaml deleted file mode 100644 index 554042a2acf..00000000000 --- a/charts/collabora-online/1.6.4/questions.yaml +++ /dev/null @@ -1,292 +0,0 @@ -groups: - - name: "Container Image" - description: "Configure Container Image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Network Configuration" - - name: "Environment Variables" - description: "Environment Variables Configuration" - - name: "Ingress" - description: "Reverse Proxy configuration" - - name: "Storage" - description: "configure app volume mounts" - -#Portal -portals: - web_portal: - protocols: - - "https" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - path: "/loleaflet/dist/admin/admin.html" - -questions: - #Image related - - variable: image - group: "Container Image" - label: "Collabora" - schema: - type: dict - required: true - attrs: - #Image - - variable: repository - label: "Image Repository" - schema: - type: string - default: "collabora/code" - editable: false - #Tag - - variable: tag - label: "Image Tag" - description: "Tag to use for specified image" - schema: - type: string - default: "6.4.6.2" - required: true - #Pull Policy - - variable: pullPolicy - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - # Strategy - - variable: strategyType - group: "Container Image" - label: "Update Strategy" - schema: - type: string - default: Recreate - enum: - - value: "RollingUpdate" - description: "Create new pods and then kill old ones" - - value: "Recreate" - description: "Kill existing pods before creating new ones" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Service Configuration - - variable: service - group: "Networking" - label: "Configure Network" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 9980 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 30980 - required: true - - # environmentVariables Configuraiton - - variable: env - group: "Environment Variables" - label: "Environment Variables Configuration" - schema: - type: dict - required: true - attrs: - - variable: domain - label: "Domains will be using collabora" - description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' - schema: - type: string - default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld' - required: true - - variable: username - label: "Username for WebUI" - schema: - type: string - default: "admin" - required: true - - variable: password - label: "Password for WebUI" - schema: - type: string - private: true - default: "changeme" - required: true - - variable: dictionaries - label: "Dictionaries to use, leave empty to use all" - schema: - type: string - default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" - - variable: extra_params - label: "Extra Parameters to add" - description: 'e.g. "–o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space' - schema: - type: string - default: "-o:welcome.enable=false -o:user_interface.mode=notebookbar -o:ssl.termination=true -o:ssl.enable=false" - - variable: server_name - label: "Server Name" - description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it." - schema: - type: string - default: 'collabora\.domain\.tld' - - # Reverse Proxy - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Reverse Proxy" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/collabora-online/1.6.4/values.yaml b/charts/collabora-online/1.6.4/values.yaml deleted file mode 100644 index fa70ff74f2d..00000000000 --- a/charts/collabora-online/1.6.4/values.yaml +++ /dev/null @@ -1,19 +0,0 @@ -image: - repository: collabora/code - tag: 6.4.6.2 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 9980 - -env: - domain: - dictionaries: - username: admin - password: changeme - extra_params: - server_name: diff --git a/charts/collabora-online/item.yaml b/charts/collabora-online/item.yaml deleted file mode 100644 index 1e6ded91244..00000000000 --- a/charts/collabora-online/item.yaml +++ /dev/null @@ -1,5 +0,0 @@ -categories: - - office - - documents - - productivity -icon_url: https://avatars.githubusercontent.com/u/22418908?s=200&v=4 diff --git a/charts/deluge/1.6.4/Chart.lock b/charts/deluge/1.6.4/Chart.lock deleted file mode 100644 index 6702480414d..00000000000 --- a/charts/deluge/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:11.344240459Z" diff --git a/charts/deluge/1.6.4/Chart.yaml b/charts/deluge/1.6.4/Chart.yaml deleted file mode 100644 index 0c820eb9840..00000000000 --- a/charts/deluge/1.6.4/Chart.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: v2 -kubeVersion: ">=1.16.0-0" -name: deluge -version: 1.6.4 -upstream_version: 1.1.1 -appVersion: v2.0.3-2201906121747 -description: Deluge is a torrent download client -type: application -deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/deluge -icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200 -keywords: - - deluge -sources: - - https://github.com/truecharts/charts/tree/master/charts/deluge - - https://github.com/k8s-at-home/charts/tree/master/charts/deluge - - https://hub.docker.com/r/linuxserver/deluge/ - - https://deluge-torrent.org/ -dependencies: - - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 - # condition: - # tags: - # import-values: - # alias: -maintainers: - - name: TrueCharts - email: info@truecharts.org - url: truecharts.org -# annotations: diff --git a/charts/deluge/1.6.4/app-readme.md b/charts/deluge/1.6.4/app-readme.md deleted file mode 100644 index 9e28afa58fe..00000000000 --- a/charts/deluge/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Deluge is a torrent download client - diff --git a/charts/deluge/1.6.4/charts/common-1.6.7.tgz b/charts/deluge/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/deluge/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/deluge/1.6.4/docs/CONFIG.md b/charts/deluge/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/deluge/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/deluge/1.6.4/docs/CONFIG.md.gotmpl b/charts/deluge/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/deluge/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/deluge/1.6.4/test_values.yaml b/charts/deluge/1.6.4/test_values.yaml deleted file mode 100644 index a40fbb1064a..00000000000 --- a/charts/deluge/1.6.4/test_values.yaml +++ /dev/null @@ -1,78 +0,0 @@ -# Default values for deluge. - -image: - repository: linuxserver/deluge - pullPolicy: IfNotPresent - tag: version-2.0.3-2201906121747ubuntu18.04.1 - -strategy: - type: Recreate - -service: - port: - port: 8112 - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /config - - downloads: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -env: {} - ## Optional ENV Vars that can be set. - ## All values below are the current default values. - # PUID: "1000" - # PGID: "1000" - # TZ: "Europe/London" - # UMASK_SET: "022" - # DELUGE_LOGLEVEL: "error" - -appIngressEnabled: false - -appVolumeMounts: - config: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/config" - downloads: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/downloads" - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-tcp - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-udp - protocol: UDP - targetPort: 51413 diff --git a/charts/deluge/1.6.4/values.yaml b/charts/deluge/1.6.4/values.yaml deleted file mode 100644 index 3043a75ebeb..00000000000 --- a/charts/deluge/1.6.4/values.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# Default values for deluge. - -image: - repository: linuxserver/deluge - pullPolicy: IfNotPresent - tag: version-2.0.3-2201906121747ubuntu18.04.1 - -strategy: - type: Recreate - -service: - port: - port: 8112 - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /config - - downloads: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -env: {} - ## Optional ENV Vars that can be set. - ## All values below are the current default values. - # PUID: "1000" - # PGID: "1000" - # TZ: "Europe/London" - # UMASK_SET: "022" - # DELUGE_LOGLEVEL: "error" - -appIngressEnabled: false - -# appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# downloads: -# enabled: false -# emptyDir: false - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-tcp - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-udp - protocol: UDP - targetPort: 51413 diff --git a/charts/esphome/1.6.4/Chart.lock b/charts/esphome/1.6.4/Chart.lock deleted file mode 100644 index 1bbec4a579c..00000000000 --- a/charts/esphome/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:08.67809444Z" diff --git a/charts/esphome/1.6.4/charts/common-1.6.7.tgz b/charts/esphome/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/esphome/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/esphome/1.6.4/docs/CONFIG.md b/charts/esphome/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/esphome/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/esphome/1.6.4/docs/CONFIG.md.gotmpl b/charts/esphome/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/esphome/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/esphome/1.6.4/questions.yaml b/charts/esphome/1.6.4/questions.yaml deleted file mode 100644 index aca0c5f6080..00000000000 --- a/charts/esphome/1.6.4/questions.yaml +++ /dev/null @@ -1,328 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - -questions: - # Image related - - variable: image - group: "Container Image" - label: "ESPHome" - schema: - type: dict - required: true - attrs: - - variable: repository - label: "Image Repository" - schema: - type: string - default: "esphome/esphome" - editable: false - - variable: tag - label: "Image Tag" - description: "Tag to use for specified image" - schema: - type: string - default: "latest" - required: true - - variable: pullPolicy - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - # Update Policy - - variable: strategyType - group: "Container Image" - label: "Update Strategy" - schema: - type: string - default: "Recreate" - enum: - - value: "RollingUpdate" - description: "Create new pods and then kill old ones" - - value: "Recreate" - description: "Kill existing pods before creating new ones" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - # Configure Enviroment Variables - - variable: environment - group: "Configuration" - label: "Environment Variables" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - # Service Configuration - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 6052 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Configure app volumes - - variable: appVolumeMounts - group: "Storage" - label: "" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "Config Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "config" - editable: false - - variable: mountPath - label: "Mount path inside the container" - schema: - type: path - default: "/config" - editable: false - - variable: hostPathEnabled - label: "Config - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Config Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/esphome/1.6.4/values.yaml b/charts/esphome/1.6.4/values.yaml deleted file mode 100644 index 304352d69eb..00000000000 --- a/charts/esphome/1.6.4/values.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# Default values for esphome. - -image: - repository: esphome/esphome - pullPolicy: IfNotPresent - tag: 1.15.3 - -strategy: - type: Recreate - -service: - type: NodePort - port: - port: 6052 - nodePort: 36052 - -env: {} - # ESPHOME_DASHBOARD_USE_PING: true - # ESPHOME_DASHBOARD_RELATIVE_URL: "/" - # ESPHOME_QUICKWIZARD: - # ESPHOME_IS_HASSIO: - # DISABLE_HA_AUTHENTICATION: - # USERNAME: - # PASSWORD: - -persistence: - config: - enabled: false - emptyDir: false - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -## TrueCharts Config - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "config" -# mountPath: "/config" -# hostPathEnabled: false diff --git a/charts/freshrss/1.6.4/Chart.lock b/charts/freshrss/1.6.4/Chart.lock deleted file mode 100644 index 4f765543bdb..00000000000 --- a/charts/freshrss/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:06.041568677Z" diff --git a/charts/freshrss/1.6.4/app-readme.md b/charts/freshrss/1.6.4/app-readme.md deleted file mode 100644 index 9bf40004b53..00000000000 --- a/charts/freshrss/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -FreshRSS is a self-hosted RSS feed aggregator - diff --git a/charts/freshrss/1.6.4/charts/common-1.6.7.tgz b/charts/freshrss/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/freshrss/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/freshrss/1.6.4/docs/CONFIG.md b/charts/freshrss/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/freshrss/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/freshrss/1.6.4/docs/CONFIG.md.gotmpl b/charts/freshrss/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/freshrss/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/freshrss/1.6.4/questions.yaml b/charts/freshrss/1.6.4/questions.yaml deleted file mode 100644 index c6a5d97923d..00000000000 --- a/charts/freshrss/1.6.4/questions.yaml +++ /dev/null @@ -1,322 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/freshrss" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-1.17.0" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/freshrss/1.6.4/values.yaml b/charts/freshrss/1.6.4/values.yaml deleted file mode 100644 index bd967409bb0..00000000000 --- a/charts/freshrss/1.6.4/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# Default values for FreshRSS. - -image: - repository: linuxserver/freshrss - pullPolicy: IfNotPresent - tag: version-1.17.0 - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false diff --git a/charts/gaps/1.6.4/Chart.lock b/charts/gaps/1.6.4/Chart.lock deleted file mode 100644 index 409663e3f8e..00000000000 --- a/charts/gaps/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:03.366726837Z" diff --git a/charts/gaps/1.6.4/charts/common-1.6.7.tgz b/charts/gaps/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/gaps/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/gaps/1.6.4/docs/CONFIG.md b/charts/gaps/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/gaps/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/gaps/1.6.4/docs/CONFIG.md.gotmpl b/charts/gaps/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/gaps/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/gaps/1.6.4/questions.yaml b/charts/gaps/1.6.4/questions.yaml deleted file mode 100644 index 461bc79b258..00000000000 --- a/charts/gaps/1.6.4/questions.yaml +++ /dev/null @@ -1,323 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "housewrecker/gaps" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "latest" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8484 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - - variable: data - label: "data dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "data" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/usr/data" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/gaps/1.6.4/values.yaml b/charts/gaps/1.6.4/values.yaml deleted file mode 100644 index 2c75ebcdc64..00000000000 --- a/charts/gaps/1.6.4/values.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Default values for Gaps. - -image: - repository: housewrecker/gaps - pullPolicy: IfNotPresent - tag: latest - -strategy: - type: Recreate - -service: - port: - port: 8484 - -env: {} - # TZ: UTC - -persistence: - data: - enabled: false - emptyDir: false - mountPath: /usr/data - -appIngressEnabled: false diff --git a/charts/grocy/1.6.4/Chart.lock b/charts/grocy/1.6.4/Chart.lock deleted file mode 100644 index 9a4e4b7fec3..00000000000 --- a/charts/grocy/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:34:00.556284629Z" diff --git a/charts/grocy/1.6.4/charts/common-1.6.7.tgz b/charts/grocy/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/grocy/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/grocy/1.6.4/docs/CONFIG.md b/charts/grocy/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/grocy/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/grocy/1.6.4/docs/CONFIG.md.gotmpl b/charts/grocy/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/grocy/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/grocy/1.6.4/questions.yaml b/charts/grocy/1.6.4/questions.yaml deleted file mode 100644 index ca7a7d3c4ff..00000000000 --- a/charts/grocy/1.6.4/questions.yaml +++ /dev/null @@ -1,323 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/grocy" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-v2.7.1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/grocy/1.6.4/values.yaml b/charts/grocy/1.6.4/values.yaml deleted file mode 100644 index 086a7ad17fd..00000000000 --- a/charts/grocy/1.6.4/values.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Default values for grocy. - -image: - repository: linuxserver/grocy - tag: version-v2.7.1 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # TZ: - # PUID: - # PGID: - -persistence: - config: - enabled: false - emptyDir: false - -appIngressEnabled: false diff --git a/charts/handbrake/1.3.4/Chart.lock b/charts/handbrake/1.3.4/Chart.lock deleted file mode 100644 index e32f48fdba5..00000000000 --- a/charts/handbrake/1.3.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:57.828992522Z" diff --git a/charts/handbrake/1.3.4/charts/common-1.6.7.tgz b/charts/handbrake/1.3.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/handbrake/1.3.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/handbrake/1.3.4/docs/CONFIG.md b/charts/handbrake/1.3.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/handbrake/1.3.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/handbrake/1.3.4/docs/CONFIG.md.gotmpl b/charts/handbrake/1.3.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/handbrake/1.3.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/handbrake/1.3.4/questions.yaml b/charts/handbrake/1.3.4/questions.yaml deleted file mode 100644 index 24366eb1078..00000000000 --- a/charts/handbrake/1.3.4/questions.yaml +++ /dev/null @@ -1,677 +0,0 @@ -# Groups -groups: - - name: "Container Image" - description: "Image configuration" - - name: "Configuration" - description: "Container configuration" - - name: "Networking" - description: "Network configuration" - - name: "Ingress" - description: "Reverse Proxy configuration" - - name: "Services" - description: "Service configuration" - - name: "Volume Mounts" - description: "Configuration volume mounts" - - -# Portal -portals: - web_portal: - protocols: - - "http" # if SECURE_CONNECTION is set, this should be https, or not.. container will redirect all http to https anyway - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" -# UI -questions: - # Image Related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - label: "Image repository" - description: "Docker image repository" - schema: - type: string - required: true - default: "jlesage/handbrake" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "v1.23.1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - # Docker specific env - - variable: env - group: "Configuration" - label: "Image Environment" - schema: - type: dict - attrs: - - variable: gui - label: "GUI Settings" - description: "Always read description before changing a value here. Also refer to README" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: DISPLAY_WIDTH - label: "DISPLAY_WIDTH" - description: "Width (in pixels) of the application's window." - schema: - type: string - default: "1280" - required: true - - variable: DISPLAY_HEIGHT - label: "DISPLAY_HEIGHT" - description: "Height (in pixels) of the application's window." - schema: - type: string - default: "768" - required: true - - variable: SECURE_CONNECTION - label: "SECURE_CONNECTION" - description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." - schema: - type: string - default: "0" - required: true - - variable: VNC_PASSWORD - label: "VNC_PASSWORD" - description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." - schema: - private: true - type: string - default: "" - - variable: autoconv - label: "Automated Conversion Settings" - description: "Always read description before changing a value here. Also refer to README" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: AUTOMATED_CONVERSION_PRESET - label: "AUTOMATED_CONVERSION_PRESET" - description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format /" - schema: - type: string - default: 'General/Very Fast 1080p30' - required: true - - variable: AUTOMATED_CONVERSION_FORMAT - label: "AUTOMATED_CONVERSION_FORMAT" - description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension." - schema: - type: string - default: 'mp4' - required: true - - variable: AUTOMATED_CONVERSION_KEEP_SOURCE - label: "AUTOMATED_CONVERSION_KEEP_SOURCE" - description: "When set to 0, a video that has been successfully converted is removed from the watch folder." - schema: - type: string - default: "1" - required: true - - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION - label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" - description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." - schema: - type: string - default: 'ignore' - required: true - -# Networking - - variable: service - group: "Services" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: webuiport - label: "container port" - schema: - type: int - default: 5800 #web GUI - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - variable: appAdditionalServices - group: "Services" - label: "Configure additional services" - schema: - type: dict - attrs: - - variable: tcp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for vnc Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "vnc-tcp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "TCP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 5900 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 5900 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 36053 - required: false - # Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -# Privileged - - variable: securityContext - group: "Volume Mounts" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged to pass thru an Optical Drive device" - schema: - type: boolean - default: true - required: true - -# TrueCharts Specific - - variable: appVolumeMounts - label: "" - group: "Volume Mounts" - schema: - type: dict - attrs: - # config - - variable: config - label: "config Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "config" - editable: false - - variable: mountPath - label: "Mount Path inside the container" - schema: - type: path - default: "/config" - editable: false - - variable: hostPathEnabled - label: "config - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "config Host Path" - description: "Host path to store config" - schema: - type: hostpath - required: true - # storage - - variable: storage - label: "storage Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "storage" - editable: false - - variable: mountPath - label: "Mount Path inside the container" - schema: - type: path - default: "/storage" - editable: false - - variable: hostPathEnabled - label: "storage - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "storage Host Path" - description: "Host path to store storage" - schema: - type: hostpath - required: true - # watch - - variable: watch - label: "watch Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "watch" - editable: false - - variable: mountPath - label: "Mount Path inside the container" - schema: - type: path - default: "/watch" - editable: false - - variable: hostPathEnabled - label: "watch - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "watch Host Path" - description: "Host path to store watch" - schema: - type: hostpath - required: true - # output - - variable: output - label: "output Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "output" - editable: false - - variable: mountPath - label: "Mount Path inside the container" - schema: - type: path - default: "/output" - editable: false - - variable: hostPathEnabled - label: "output - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "output Host Path" - description: "Host path to store output" - schema: - type: hostpath - required: true - # Optical Drive - - variable: opticaldrive - label: "Optical Drive Device" - schema: - type: dict - attrs: - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: false - hidden: true - - variable: hostPath - label: "Path to Optical Drive device on host" - description: 'Best to use path "by-id"' - schema: - type: path - required: true - default: "/dev/sr0" - - variable: mountPath - label: "Path to mount device inside the container" - schema: - type: path - default: "/dev/sr0" - required: true - # Reverse Proxy - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/handbrake/1.3.4/test_values.yaml b/charts/handbrake/1.3.4/test_values.yaml deleted file mode 100644 index 436850cf1a9..00000000000 --- a/charts/handbrake/1.3.4/test_values.yaml +++ /dev/null @@ -1,127 +0,0 @@ -image: - repository: jlesage/handbrake - tag: v1.23.1 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 5800 #Required for web GUI - -#All values here are set as the docker defaults. -envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" -env: -# General Settings - KEEP_APP_RUNNING: "0" - CLEAN_TMP_DIR: "1" -# GUI Settings - DISPLAY_WIDTH: "1280" - DISPLAY_HEIGHT: "768" - SECURE_CONNECTION: "0" - VNC_PASSWORD: -# Automated Conversion Preset - AUTOMATED_CONVERSION_PRESET: 'General/Very Fast 1080p30' - AUTOMATED_CONVERSION_FORMAT: 'mp4' - AUTOMATED_CONVERSION_KEEP_SOURCE: "1" - AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: 'ignore' - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /config - - storage: - enabled: false - emptyDir: false - mountPath: /storage # This can be read only - - watch: - enabled: false - emptyDir: false - mountPath: /watch - - output: - enabled: false - emptyDir: false - mountPath: /output - -## Somehow must enable user to add as many watch folders -## All folders must start with "watch" and an index after -## eg. /watch1, /watch2 -## This is importand because settings can overrode to each watch folder exclusivly, with env vars with _# as a suffix -## eg. AUTOMATED_CONVERSION_PRESET_1 - -# Path to your optical drive device in the container -additionalVolumeMounts: [] -# - name: opticaldrive -# mountPath: /dev/serial/by-id/sr0- - -# Path to your zwave device on the host -additionalVolumes: [] -# - name: opticaldrive -# hostPath: -# path: /dev/serial/by-id/sr0- - -# affinity: -# nodeAffinity: -# requiredDuringSchedulingIgnoredDuringExecution: -# nodeSelectorTerms: -# - matchExpressions: -# - key: app -# operator: In -# values: -# - opticaldrive-controller - -appVolumeMounts: - config: - enabled: true - emptyDir: true - datasetName: "config" - mountPath: "/config" - hostPathEnabled: true - setPermissions: true - storage: - enabled: true - emptyDir: true - datasetName: "storage" - mountPath: "/storage" - hostPathEnabled: true - setPermissions: true - watch: - enabled: true - emptyDir: true - datasetName: "watch" - mountPath: "/watch" - hostPathEnabled: true - setPermissions: true - output: - enabled: true - emptyDir: true - datasetName: "output" - mountPath: "/output" - hostPathEnabled: true - setPermissions: true -# opticaldrive: -# enabled: true -# emptyDir: true -# mountPath: "/dev/sr0" -# hostPath: "/dev/sr0" -# hostPathEnabled: true -# setPermissions: true - -appAdditionalServicesEnabled: true -appAdditionalServices: - vnc: - enabled: true - type: ClusterIP - port: - port: 5900 - name: vnc - protocol: "TCP" - targetPort: 5900 diff --git a/charts/handbrake/1.3.4/values.yaml b/charts/handbrake/1.3.4/values.yaml deleted file mode 100644 index 97136da27be..00000000000 --- a/charts/handbrake/1.3.4/values.yaml +++ /dev/null @@ -1,128 +0,0 @@ -image: - repository: jlesage/handbrake - tag: v1.23.1 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 5800 #Required for web GUI - -#All values here are set as the docker defaults. -envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" -env: -# General Settings - KEEP_APP_RUNNING: "0" - CLEAN_TMP_DIR: "1" -# GUI Settings - DISPLAY_WIDTH: "1280" - DISPLAY_HEIGHT: "768" - SECURE_CONNECTION: "0" - VNC_PASSWORD: -# Automated Conversion Preset - AUTOMATED_CONVERSION_PRESET: 'General/Very Fast 1080p30' - AUTOMATED_CONVERSION_FORMAT: 'mp4' - AUTOMATED_CONVERSION_KEEP_SOURCE: "1" - AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: 'ignore' - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /config - - storage: - enabled: false - emptyDir: false - mountPath: /storage # This can be read only - - watch: - enabled: false - emptyDir: false - mountPath: /watch - - output: - enabled: false - emptyDir: false - mountPath: /output - -## Somehow must enable user to add as many watch folders -## All folders must start with "watch" and an index after -## eg. /watch1, /watch2 -## This is importand because settings can overrode to each watch folder exclusivly, with env vars with _# as a suffix -## eg. AUTOMATED_CONVERSION_PRESET_1 - -# Path to your optical drive device in the container -additionalVolumeMounts: [] -# - name: opticaldrive -# mountPath: /dev/serial/by-id/sr0- - -# Path to your zwave device on the host -additionalVolumes: [] -# - name: opticaldrive -# hostPath: -# path: /dev/serial/by-id/sr0- - -# affinity: -# nodeAffinity: -# requiredDuringSchedulingIgnoredDuringExecution: -# nodeSelectorTerms: -# - matchExpressions: -# - key: app -# operator: In -# values: -# - opticaldrive-controller - -# appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "config" -# mountPath: "/config" -# hostPathEnabled: false -# setPermissions: true -# storage: -# enabled: true -# emptyDir: false -# datasetName: "storage" -# mountPath: "/storage" -# hostPathEnabled: false -# setPermissions: true -# watch: -# enabled: true -# emptyDir: false -# datasetName: "watch" -# mountPath: "/watch" -# hostPathEnabled: false -# setPermissions: true -# output: -# enabled: true -# emptyDir: false -# datasetName: "output" -# mountPath: "/output" -# hostPathEnabled: false -# setPermissions: true -# opticaldrive: -# enabled: true -# emptyDir: false -# mountPath: "/dev/sr0" -# hostPath: "/dev/sr0" -# hostPathEnabled: true -# setPermissions: true - - -appAdditionalServicesEnabled: true -appAdditionalServices: - vnc: - enabled: true - type: ClusterIP - port: - port: 5900 - name: vnc - protocol: "TCP" - targetPort: 5900 diff --git a/charts/heimdall/1.6.4/Chart.lock b/charts/heimdall/1.6.4/Chart.lock deleted file mode 100644 index a05b71f2c91..00000000000 --- a/charts/heimdall/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:55.131477619Z" diff --git a/charts/heimdall/1.6.4/app-readme.md b/charts/heimdall/1.6.4/app-readme.md deleted file mode 100644 index 3cd418b44b6..00000000000 --- a/charts/heimdall/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -An Application dashboard and launcher - diff --git a/charts/heimdall/1.6.4/charts/common-1.6.7.tgz b/charts/heimdall/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/heimdall/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/heimdall/1.6.4/docs/CONFIG.md b/charts/heimdall/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/heimdall/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/heimdall/1.6.4/docs/CONFIG.md.gotmpl b/charts/heimdall/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/heimdall/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/heimdall/1.6.4/questions.yaml b/charts/heimdall/1.6.4/questions.yaml deleted file mode 100644 index 042c31e5478..00000000000 --- a/charts/heimdall/1.6.4/questions.yaml +++ /dev/null @@ -1,323 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-heimdallService.port" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/heimdall" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-2.2.2" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/heimdall/1.6.4/values.yaml b/charts/heimdall/1.6.4/values.yaml deleted file mode 100644 index faf868b8f69..00000000000 --- a/charts/heimdall/1.6.4/values.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# Default values for grocy. - -image: - repository: linuxserver/heimdall - tag: version-2.2.2 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # TZ: - # PUID: - # PGID: - -probes: - startup: - enabled: true - -persistence: - config: - enabled: false - emptyDir: false - -## TrueCharts Config - - - -appVolumeMounts: - config: - enabled: true - emptyDir: true - mountPath: "/config" diff --git a/charts/home-assistant/1.6.4/Chart.lock b/charts/home-assistant/1.6.4/Chart.lock deleted file mode 100644 index bfab6ca455a..00000000000 --- a/charts/home-assistant/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:52.433886727Z" diff --git a/charts/home-assistant/1.6.4/app-readme.md b/charts/home-assistant/1.6.4/app-readme.md deleted file mode 100644 index 880ead21fc4..00000000000 --- a/charts/home-assistant/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -home-assistant App for TrueNAS SCALE - diff --git a/charts/home-assistant/1.6.4/charts/common-1.6.7.tgz b/charts/home-assistant/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/home-assistant/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/home-assistant/1.6.4/docs/CONFIG.md b/charts/home-assistant/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/home-assistant/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/home-assistant/1.6.4/docs/CONFIG.md.gotmpl b/charts/home-assistant/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/home-assistant/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/home-assistant/1.6.4/questions.yaml b/charts/home-assistant/1.6.4/questions.yaml deleted file mode 100644 index 8568cca53c0..00000000000 --- a/charts/home-assistant/1.6.4/questions.yaml +++ /dev/null @@ -1,434 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "network / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - -questions: - # Image related - - variable: image - group: "Container Image" - label: "Home Assistant" - schema: - type: dict - required: true - attrs: - - variable: repository - label: "Image Repository" - schema: - type: string - default: "homeassistant/home-assistant" - editable: false - - variable: tag - label: "Image Tag" - description: "Tag to use for specified image" - schema: - type: string - default: "stable" - required: true - - variable: pullPolicy - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - # Update Policy - - variable: strategyType - group: "Container Image" - label: "Update Strategy" - schema: - type: string - default: "Recreate" - enum: - - value: "RollingUpdate" - description: "Create new pods and then kill old ones" - - value: "Recreate" - description: "Kill existing pods before creating new ones" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Time Zone - - variable: git - group: "Configuration" - label: "Git" - description: "Attatch git repository to Home-Assistant" - schema: - type: dict - attrs: - - variable: deployKey - label: "deployKey" - description: "Raw SSH private key" - schema: - type: string - default: "" - - variable: deployKeyBase64 - label: "deployKey" - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - schema: - type: string - default: "" - - # Configure app volumes - - variable: appVolumeMounts - group: "Storage" - label: "" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "Config Volume" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "config" - editable: false - - variable: mountPath - label: "Mount path inside the container" - schema: - type: path - default: "/config" - editable: false - - variable: hostPathEnabled - label: "Config - Enable Host Path" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Config Host Path" - schema: - type: hostpath - required: true - # Z-Wave device ----------------- - - variable: zwave - label: "USB Z-Wave Device" - schema: - type: dict - attrs: - - variable: enabled - label: "USB Z-Wave Device" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPathEnabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: false - hidden: true - - variable: hostPath - label: "Path to Z-Wave device on host" - schema: - type: path - required: true - default: "/dev/ttyUSB0" - - variable: mountPath - label: "Path to mount device inside the container" - schema: - type: path - required: true - default: "/dev/ttyUSB0" - # Zigbee device ----------------- - - variable: zigbee - label: "USB Zigbee Device" - schema: - type: dict - attrs: - - variable: enabled - label: "USB Zigbee Device" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPathEnabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: false - hidden: true - - variable: hostPath - label: "Path to Zigbee device on host" - schema: - type: path - required: true - default: "/dev/ttyUSB1" - - variable: mountPath - label: "Path to mount device inside the container" - schema: - type: path - required: true - default: "/dev/ttyUSB1" - # Enable privileged - - variable: securityContext - group: "Storage" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged to pass thru a USB device from the host" - schema: - type: boolean - default: false - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - description: "Required if you want devices to be discoverable by Home Assistant" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: dnsPolicy - group: "Networking" - label: "Set the correct DNS policy" - description: "Required to be set to ClusterFirstWithHostNet when using hostNetwork" - schema: - type: string - default: "ClusterFirst" - enum: - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - - - # Service Configuration - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8123 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 38123 - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/home-assistant/1.6.4/templates/servicemonitor.yaml b/charts/home-assistant/1.6.4/templates/servicemonitor.yaml deleted file mode 100644 index e58ceac8186..00000000000 --- a/charts/home-assistant/1.6.4/templates/servicemonitor.yaml +++ /dev/null @@ -1,50 +0,0 @@ -## -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# `SPDX-License-Identifier: Apache-2.0` -# -# This file is considered to be modified by the TrueCharts Project. -## - -{{- if .Values.prometheus.serviceMonitor.enabled }} -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ template "common.names.fullname" . }} - labels: - {{- include "common.labels" . | nindent 4 }} - {{- with .Values.prometheus.serviceMonitor.additionalLabels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - selector: - matchLabels: - {{- include "common.labels.selectorLabels" . | nindent 6 }} - endpoints: - - port: {{ default "http" .Values.service.port.name }} - {{- with .Values.prometheus.serviceMonitor.interval }} - interval: {{ . }} - {{- end }} - {{- with .Values.prometheus.serviceMonitor.bearerTokenFile }} - bearerTokenFile: {{ . }} - {{- end }} - {{- with .Values.prometheus.serviceMonitor.bearerTokenSecret }} - bearerTokenSecret: - name: {{ .name }} - key: {{ .key }} - {{- with .optional }} - optional: {{ . }} - {{- end }} - {{- end }} - path: /api/prometheus -{{- end }} diff --git a/charts/home-assistant/1.6.4/values.yaml b/charts/home-assistant/1.6.4/values.yaml deleted file mode 100644 index 00baa51593e..00000000000 --- a/charts/home-assistant/1.6.4/values.yaml +++ /dev/null @@ -1,124 +0,0 @@ -# Default values for zwave2mqtt. - -image: - repository: homeassistant/home-assistant - pullPolicy: IfNotPresent - tag: 2021.1.5 - -strategy: - type: Recreate - -env: {} - # TZ: - -service: - type: NodePort - port: - port: 8123 - nodePort: 38123 - -# # Enable devices to be discoverable -# hostNetwork: true - -# # When hostNetwork is true set dnsPolicy to ClusterFirstWithHostNet -# dnsPolicy: ClusterFirstWithHostNet - -# # Enable passing thru a USB device to Home Assistant -# securityContext: -# privileged: true - -# Allow access a Git repository by passing in a private SSH key -git: - # Raw SSH private key - deployKey: "" - # Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. - deployKeyBase64: "" - -# Enable a prometheus-operator servicemonitor -prometheus: - serviceMonitor: - enabled: false - # interval: 1m - # additionalLabels: {} - -persistence: - config: - enabled: false - emptyDir: false - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -# # Path to your Z-Wave / Zigbee device in the container -# additionalVolumeMounts: -# - name: zwave-usb -# mountPath: /dev/serial/by-id/usb-0658_0200-if00 - -# # Path to your Z-Wave / Zigbee device on the host -# additionalVolumes: -# - name: zwave-usb -# hostPath: -# path: /dev/serial/by-id/usb-0658_0200-if00 - -# Enabled mariadb -# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb -mariadb: - enabled: false - architecture: standalone - auth: - database: home-assistant - username: home-assistant - password: home-assistant-pass - rootPassword: home-assistantrootpass - primary: - persistence: - enabled: false - # storageClass: "" - -# Enabled postgres -# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql -postgresql: - enabled: false - postgresqlUsername: home-assistant - postgresqlPassword: home-assistant-pass - postgresqlDatabase: home-assistant - persistence: - enabled: false - # storageClass: "" - -# Enable influxdb -# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/influxdb -influxdb: - enabled: false - architecture: standalone - database: home_assistant - authEnabled: false - persistence: - enabled: false - # storageClass: "" - # size: 8Gi - -## TrueCharts Config - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "config" -# mountPath: "/config" -# hostPathEnabled: false -# data: -# enabled: false -# emptyDir: false diff --git a/charts/jackett/1.6.4/Chart.lock b/charts/jackett/1.6.4/Chart.lock deleted file mode 100644 index 3cc7eeff84a..00000000000 --- a/charts/jackett/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:49.78355361Z" diff --git a/charts/jackett/1.6.4/app-readme.md b/charts/jackett/1.6.4/app-readme.md deleted file mode 100644 index 6b9a1be91d3..00000000000 --- a/charts/jackett/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -API Support for your favorite torrent trackers. - diff --git a/charts/jackett/1.6.4/charts/common-1.6.7.tgz b/charts/jackett/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/jackett/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/jackett/1.6.4/docs/CONFIG.md b/charts/jackett/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/jackett/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/jackett/1.6.4/docs/CONFIG.md.gotmpl b/charts/jackett/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/jackett/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/jackett/1.6.4/questions.yaml b/charts/jackett/1.6.4/questions.yaml deleted file mode 100644 index 3b2ab6a185e..00000000000 --- a/charts/jackett/1.6.4/questions.yaml +++ /dev/null @@ -1,323 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.port" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/jackett" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-v0.17.153" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 9117 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/jackett/1.6.4/values.yaml b/charts/jackett/1.6.4/values.yaml deleted file mode 100644 index 6bbfabb0fec..00000000000 --- a/charts/jackett/1.6.4/values.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# Default values for Jackett. - -image: - repository: linuxserver/jackett - pullPolicy: IfNotPresent - tag: version-v0.17.153 - -strategy: - type: Recreate - -service: - port: - port: 9117 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - - torrentblackhole: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - -## TrueCharts Values - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "ix-jackett_config" diff --git a/charts/jackett/item.yaml b/charts/jackett/item.yaml deleted file mode 100644 index e8ea1237e32..00000000000 --- a/charts/jackett/item.yaml +++ /dev/null @@ -1,3 +0,0 @@ -categories: - - media -icon_url: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jackett/icon.png?raw=true diff --git a/charts/jellyfin/1.6.4/Chart.lock b/charts/jellyfin/1.6.4/Chart.lock deleted file mode 100644 index b02d9329c9f..00000000000 --- a/charts/jellyfin/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:47.101569012Z" diff --git a/charts/jellyfin/1.6.4/app-readme.md b/charts/jellyfin/1.6.4/app-readme.md deleted file mode 100644 index 18ff027a2b6..00000000000 --- a/charts/jellyfin/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Jellyfin is a Free Software Media System - diff --git a/charts/jellyfin/1.6.4/charts/common-1.6.7.tgz b/charts/jellyfin/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/jellyfin/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/jellyfin/1.6.4/docs/CONFIG.md b/charts/jellyfin/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/jellyfin/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/jellyfin/1.6.4/docs/CONFIG.md.gotmpl b/charts/jellyfin/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/jellyfin/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/jellyfin/1.6.4/values.yaml b/charts/jellyfin/1.6.4/values.yaml deleted file mode 100644 index 6057436adea..00000000000 --- a/charts/jellyfin/1.6.4/values.yaml +++ /dev/null @@ -1,48 +0,0 @@ - -# Default values for jellyfin. - -image: - repository: linuxserver/jellyfin - pullPolicy: IfNotPresent - tag: version-10.6.4-1 - -strategy: - type: Recreate - -service: - port: - port: 8096 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false diff --git a/charts/jellyfin/item.yaml b/charts/jellyfin/item.yaml deleted file mode 100644 index fbbacdb531d..00000000000 --- a/charts/jellyfin/item.yaml +++ /dev/null @@ -1,3 +0,0 @@ -categories: - - media -icon_url: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jellyfin/icon.png?raw=true diff --git a/charts/kms/1.6.4/Chart.lock b/charts/kms/1.6.4/Chart.lock deleted file mode 100644 index 9b30e161af2..00000000000 --- a/charts/kms/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:44.443192409Z" diff --git a/charts/kms/1.6.4/app-readme.md b/charts/kms/1.6.4/app-readme.md deleted file mode 100644 index 960c6a8827c..00000000000 --- a/charts/kms/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Private Windows Activation Server for development and testing - diff --git a/charts/kms/1.6.4/charts/common-1.6.7.tgz b/charts/kms/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/kms/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/kms/1.6.4/docs/CONFIG.md b/charts/kms/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/kms/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/kms/1.6.4/docs/CONFIG.md.gotmpl b/charts/kms/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/kms/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/kms/1.6.4/test_values.yaml b/charts/kms/1.6.4/test_values.yaml deleted file mode 100644 index 1067b1d9170..00000000000 --- a/charts/kms/1.6.4/test_values.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Default values for KMS. - -image: - repository: pykmsorg/py-kms - pullPolicy: IfNotPresent - tag: latest - -strategy: - type: Recreate - -service: - port: - port: 1688 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - - -persistence: - config: - enabled: false - emptyDir: false - - -## TrueCharts Values - - -appVolumeMounts: - config: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/config" diff --git a/charts/kms/1.6.4/values.yaml b/charts/kms/1.6.4/values.yaml deleted file mode 100644 index 71896869f76..00000000000 --- a/charts/kms/1.6.4/values.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Default values for KMS. - -image: - repository: pykmsorg/py-kms - pullPolicy: IfNotPresent - tag: latest - -strategy: - type: Recreate - -service: - port: - port: 1688 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - - -## TrueCharts Values - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "config" diff --git a/charts/kms/item.yaml b/charts/kms/item.yaml deleted file mode 100644 index d0f889f8bbd..00000000000 --- a/charts/kms/item.yaml +++ /dev/null @@ -1,3 +0,0 @@ -categories: - - graywares -icon_url: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/kms/icon.jpg?raw=true diff --git a/charts/lazylibrarian/1.6.4/Chart.lock b/charts/lazylibrarian/1.6.4/Chart.lock deleted file mode 100644 index cfb48b4bce4..00000000000 --- a/charts/lazylibrarian/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:41.842085765Z" diff --git a/charts/lazylibrarian/1.6.4/app-readme.md b/charts/lazylibrarian/1.6.4/app-readme.md deleted file mode 100644 index 00311a3551d..00000000000 --- a/charts/lazylibrarian/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Get all your books, like series with Sonarr... - diff --git a/charts/lazylibrarian/1.6.4/charts/common-1.6.7.tgz b/charts/lazylibrarian/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/lazylibrarian/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/lazylibrarian/1.6.4/docs/CONFIG.md b/charts/lazylibrarian/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/lazylibrarian/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/lazylibrarian/1.6.4/docs/CONFIG.md.gotmpl b/charts/lazylibrarian/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/lazylibrarian/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/lazylibrarian/1.6.4/values.yaml b/charts/lazylibrarian/1.6.4/values.yaml deleted file mode 100644 index bcd9c3ac8de..00000000000 --- a/charts/lazylibrarian/1.6.4/values.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# Default values for LazyLibrarian. - -image: - repository: linuxserver/lazylibrarian - pullPolicy: IfNotPresent - tag: version-047f91af - -strategy: - type: Recreate - -service: - port: - port: 5299 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false -# downloads: -# enabled: true -# emptyDir: false diff --git a/charts/lidarr/1.6.4/Chart.lock b/charts/lidarr/1.6.4/Chart.lock deleted file mode 100644 index b816ef9d4dd..00000000000 --- a/charts/lidarr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:39.142147146Z" diff --git a/charts/lidarr/1.6.4/app-readme.md b/charts/lidarr/1.6.4/app-readme.md deleted file mode 100644 index 895d2db1648..00000000000 --- a/charts/lidarr/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Looks and smells like Sonarr but made for music - diff --git a/charts/lidarr/1.6.4/charts/common-1.6.7.tgz b/charts/lidarr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/lidarr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/lidarr/1.6.4/docs/CONFIG.md b/charts/lidarr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/lidarr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/lidarr/1.6.4/docs/CONFIG.md.gotmpl b/charts/lidarr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/lidarr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/lidarr/1.6.4/test_values.yaml b/charts/lidarr/1.6.4/test_values.yaml deleted file mode 100644 index 6825537a8b3..00000000000 --- a/charts/lidarr/1.6.4/test_values.yaml +++ /dev/null @@ -1,82 +0,0 @@ -# Default values for Lidarr. - -image: - repository: linuxserver/lidarr - pullPolicy: IfNotPresent - tag: version-0.8.0.1886 - -strategy: - type: Recreate - -service: - port: - port: 8686 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -probes: - liveness: - enabled: true - ## Set this to true if you wish to specify your own livenessProbe - custom: true - ## The spec field contains the values for the default livenessProbe. - ## If you selected custom: true, this field holds the definition of the livenessProbe. - spec: - exec: - command: - - /usr/bin/env - - bash - - -c - - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while - read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` - failureThreshold: 5 - initialDelaySeconds: 60 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 10 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - -## TrueCharts Config - - -appVolumeMounts: - config: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/config" - media: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/media" - downloads: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/downloads" diff --git a/charts/lidarr/1.6.4/values.yaml b/charts/lidarr/1.6.4/values.yaml deleted file mode 100644 index 4bdf5e6773c..00000000000 --- a/charts/lidarr/1.6.4/values.yaml +++ /dev/null @@ -1,77 +0,0 @@ -# Default values for Lidarr. - -image: - repository: linuxserver/lidarr - pullPolicy: IfNotPresent - tag: version-0.8.0.1886 - -strategy: - type: Recreate - -service: - port: - port: 8686 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -probes: - liveness: - enabled: true - ## Set this to true if you wish to specify your own livenessProbe - custom: true - ## The spec field contains the values for the default livenessProbe. - ## If you selected custom: true, this field holds the definition of the livenessProbe. - spec: - exec: - command: - - /usr/bin/env - - bash - - -c - - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while - read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` - failureThreshold: 5 - initialDelaySeconds: 60 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 10 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false -# downloads: -# enabled: true -# emptyDir: false diff --git a/charts/lychee/1.6.4/Chart.lock b/charts/lychee/1.6.4/Chart.lock deleted file mode 100644 index c1e66da24ca..00000000000 --- a/charts/lychee/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:36.368382561Z" diff --git a/charts/lychee/1.6.4/app-readme.md b/charts/lychee/1.6.4/app-readme.md deleted file mode 100644 index eabedbf5c4a..00000000000 --- a/charts/lychee/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Lychee is a free photo-management tool, which runs on your server or web-space - diff --git a/charts/lychee/1.6.4/charts/common-1.6.7.tgz b/charts/lychee/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/lychee/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/lychee/1.6.4/docs/CONFIG.md b/charts/lychee/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/lychee/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/lychee/1.6.4/docs/CONFIG.md.gotmpl b/charts/lychee/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/lychee/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/lychee/1.6.4/values.yaml b/charts/lychee/1.6.4/values.yaml deleted file mode 100644 index d35055b33b6..00000000000 --- a/charts/lychee/1.6.4/values.yaml +++ /dev/null @@ -1,84 +0,0 @@ -# Default values for Lychee. - -image: - repository: lycheeorg/lychee-laravel - pullPolicy: IfNotPresent - tag: v4.0.8 - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # PHP_TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /conf - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - uploads: - enabled: false - emptyDir: false - mountPath: /uploads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - sym: - enabled: false - emptyDir: false - mountPath: /sym - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# uploads: -# enabled: false -# emptyDir: false -# sym: -# enabled: false -# emptyDir: false diff --git a/charts/navidrome/1.6.4/Chart.lock b/charts/navidrome/1.6.4/Chart.lock deleted file mode 100644 index b022e42f163..00000000000 --- a/charts/navidrome/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:33.640364973Z" diff --git a/charts/navidrome/1.6.4/app-readme.md b/charts/navidrome/1.6.4/app-readme.md deleted file mode 100644 index 57bb5cfd9a6..00000000000 --- a/charts/navidrome/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Navidrome is an open source web-based music collection server and streamer - diff --git a/charts/navidrome/1.6.4/charts/common-1.6.7.tgz b/charts/navidrome/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/navidrome/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/navidrome/1.6.4/docs/CONFIG.md b/charts/navidrome/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/navidrome/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/navidrome/1.6.4/docs/CONFIG.md.gotmpl b/charts/navidrome/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/navidrome/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/navidrome/1.6.4/values.yaml b/charts/navidrome/1.6.4/values.yaml deleted file mode 100644 index 099ad2f436b..00000000000 --- a/charts/navidrome/1.6.4/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# Default values for Navidrome. - -image: - repository: deluan/navidrome - pullPolicy: IfNotPresent - tag: 0.39.0 - -strategy: - type: Recreate - -service: - port: - port: 4533 - -env: - ND_SCANINTERVAL: 15m - ND_LOGLEVEL: info - ND_SESSIONTIMEOUT: 24h - ND_ENABLETRANSCODINGCONFIG: "true" - ND_MUSICFOLDER: /music - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /data - accessMode: ReadWriteOnce - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - music: - enabled: false - emptyDir: false - mountPath: /music - accessMode: ReadWriteOnce - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - -appIngressEnabled: false - - -# appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# music: -# enabled: false -# emptyDir: false diff --git a/charts/node-red/1.6.4/Chart.lock b/charts/node-red/1.6.4/Chart.lock deleted file mode 100644 index 11aff5ff2d6..00000000000 --- a/charts/node-red/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:30.943485332Z" diff --git a/charts/node-red/1.6.4/app-readme.md b/charts/node-red/1.6.4/app-readme.md deleted file mode 100644 index 3da24e3b944..00000000000 --- a/charts/node-red/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Node-RED is low-code programming for event-driven applications - diff --git a/charts/node-red/1.6.4/charts/common-1.6.7.tgz b/charts/node-red/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/node-red/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/node-red/1.6.4/docs/CONFIG.md b/charts/node-red/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/node-red/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/node-red/1.6.4/docs/CONFIG.md.gotmpl b/charts/node-red/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/node-red/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/node-red/1.6.4/questions.yaml b/charts/node-red/1.6.4/questions.yaml deleted file mode 100644 index e06377c337d..00000000000 --- a/charts/node-red/1.6.4/questions.yaml +++ /dev/null @@ -1,324 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "nodered/node-red" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "1.2.5" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 1880 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Data ------------------------ - - variable: data - label: "data dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "data" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/data" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/node-red/1.6.4/values.yaml b/charts/node-red/1.6.4/values.yaml deleted file mode 100644 index 3b5c0461095..00000000000 --- a/charts/node-red/1.6.4/values.yaml +++ /dev/null @@ -1,40 +0,0 @@ -# Default values for node-red. - -image: - repository: nodered/node-red - pullPolicy: IfNotPresent - tag: 1.2.5 - -strategy: - type: Recreate - -# See more environment varaibles in the node-red documentation -# https://nodered.org/docs/getting-started/docker -env: {} - # TZ: - # NODE_OPTIONS: - # NODE_RED_ENABLE_PROJECTS: - # NODE_RED_ENABLE_SAFE_MODE: - # FLOWS: - -service: - port: - port: 1880 - -persistence: - data: - enabled: false - emptyDir: false - mountPath: /data - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# data: -# enabled: true -# emptyDir: false diff --git a/charts/nzbget/1.6.4/Chart.lock b/charts/nzbget/1.6.4/Chart.lock deleted file mode 100644 index 91340f2e3f1..00000000000 --- a/charts/nzbget/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:28.229767254Z" diff --git a/charts/nzbget/1.6.4/app-readme.md b/charts/nzbget/1.6.4/app-readme.md deleted file mode 100644 index 274e79baa51..00000000000 --- a/charts/nzbget/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -NZBGet is a Usenet downloader client - diff --git a/charts/nzbget/1.6.4/charts/common-1.6.7.tgz b/charts/nzbget/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/nzbget/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/nzbget/1.6.4/docs/CONFIG.md b/charts/nzbget/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/nzbget/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/nzbget/1.6.4/docs/CONFIG.md.gotmpl b/charts/nzbget/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/nzbget/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/nzbget/1.6.4/values.yaml b/charts/nzbget/1.6.4/values.yaml deleted file mode 100644 index 39d0881353e..00000000000 --- a/charts/nzbget/1.6.4/values.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# Default values for nzbget. - -image: - repository: linuxserver/nzbget - pullPolicy: IfNotPresent - tag: version-v21.0 - -strategy: - type: Recreate - -service: - port: - port: 6789 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - downloads: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - -# appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# media: -# enabled: false -# emptyDir: false -# downloads: -# enabled: false -# emptyDir: false diff --git a/charts/nzbhydra/1.6.4/Chart.lock b/charts/nzbhydra/1.6.4/Chart.lock deleted file mode 100644 index 7b43a2b4fee..00000000000 --- a/charts/nzbhydra/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:25.534005879Z" diff --git a/charts/nzbhydra/1.6.4/app-readme.md b/charts/nzbhydra/1.6.4/app-readme.md deleted file mode 100644 index f55265a1c6a..00000000000 --- a/charts/nzbhydra/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Usenet meta search - diff --git a/charts/nzbhydra/1.6.4/charts/common-1.6.7.tgz b/charts/nzbhydra/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/nzbhydra/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/nzbhydra/1.6.4/docs/CONFIG.md b/charts/nzbhydra/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/nzbhydra/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/nzbhydra/1.6.4/docs/CONFIG.md.gotmpl b/charts/nzbhydra/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/nzbhydra/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/ombi/1.6.4/Chart.lock b/charts/ombi/1.6.4/Chart.lock deleted file mode 100644 index 993818827fb..00000000000 --- a/charts/ombi/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:22.786355869Z" diff --git a/charts/ombi/1.6.4/app-readme.md b/charts/ombi/1.6.4/app-readme.md deleted file mode 100644 index fffbc8cd8ca..00000000000 --- a/charts/ombi/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Want a Movie or TV Show on Plex or Emby? Use Ombi! - diff --git a/charts/ombi/1.6.4/charts/common-1.6.7.tgz b/charts/ombi/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/ombi/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/ombi/1.6.4/docs/CONFIG.md b/charts/ombi/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/ombi/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/ombi/1.6.4/docs/CONFIG.md.gotmpl b/charts/ombi/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/ombi/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/ombi/1.6.4/questions.yaml b/charts/ombi/1.6.4/questions.yaml deleted file mode 100644 index bb212bd3308..00000000000 --- a/charts/ombi/1.6.4/questions.yaml +++ /dev/null @@ -1,323 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-ombiService.port" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/ombi" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "v4-preview-version-v4.0.779" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 3579 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/ombi/1.6.4/values.yaml b/charts/ombi/1.6.4/values.yaml deleted file mode 100644 index ab470885e69..00000000000 --- a/charts/ombi/1.6.4/values.yaml +++ /dev/null @@ -1,46 +0,0 @@ - -# Default values for Ombi. - -image: - repository: linuxserver/ombi - pullPolicy: IfNotPresent - tag: version-v4.0.681 - -strategy: - type: Recreate - -service: - port: - port: 3579 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - -# Enabled mariadb -# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb -mariadb: - enabled: false - architecture: standalone - auth: - database: ombi - username: ombi - password: ombi - primary: - persistence: - enabled: false - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false diff --git a/charts/organizr/1.6.4/Chart.lock b/charts/organizr/1.6.4/Chart.lock deleted file mode 100644 index 5487cdb619b..00000000000 --- a/charts/organizr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:20.084053182Z" diff --git a/charts/organizr/1.6.4/app-readme.md b/charts/organizr/1.6.4/app-readme.md deleted file mode 100644 index 90cbb51afcf..00000000000 --- a/charts/organizr/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -HTPC/Homelab Services Organizer - diff --git a/charts/organizr/1.6.4/charts/common-1.6.7.tgz b/charts/organizr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/organizr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/organizr/1.6.4/docs/CONFIG.md b/charts/organizr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/organizr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/organizr/1.6.4/docs/CONFIG.md.gotmpl b/charts/organizr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/organizr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/organizr/1.6.4/values.yaml b/charts/organizr/1.6.4/values.yaml deleted file mode 100644 index 2410b8c7efe..00000000000 --- a/charts/organizr/1.6.4/values.yaml +++ /dev/null @@ -1,36 +0,0 @@ - -# Default values for Organizr. - -image: - repository: organizr/organizr - pullPolicy: Always - tag: latest - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# data: -# enabled: true -# emptyDir: false diff --git a/charts/qbittorrent/1.6.4/Chart.lock b/charts/qbittorrent/1.6.4/Chart.lock deleted file mode 100644 index 5436013da05..00000000000 --- a/charts/qbittorrent/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:17.402526464Z" diff --git a/charts/qbittorrent/1.6.4/app-readme.md b/charts/qbittorrent/1.6.4/app-readme.md deleted file mode 100644 index ee674b0ddd3..00000000000 --- a/charts/qbittorrent/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -qBittorrent is a cross-platform free and open-source BitTorrent client - diff --git a/charts/qbittorrent/1.6.4/charts/common-1.6.7.tgz b/charts/qbittorrent/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/qbittorrent/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/qbittorrent/1.6.4/docs/CONFIG.md b/charts/qbittorrent/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/qbittorrent/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/qbittorrent/1.6.4/docs/CONFIG.md.gotmpl b/charts/qbittorrent/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/qbittorrent/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/qbittorrent/1.6.4/values.yaml b/charts/qbittorrent/1.6.4/values.yaml deleted file mode 100644 index a5628fb83ad..00000000000 --- a/charts/qbittorrent/1.6.4/values.yaml +++ /dev/null @@ -1,103 +0,0 @@ -# Default values for qbittorrent. - -image: - repository: linuxserver/qbittorrent - pullPolicy: IfNotPresent - tag: version-4.3.0202010181232-7086-1c663adeeubuntu18.04.1 - -strategy: - type: Recreate - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - # UMASK: 022 - -service: - port: - port: 8080 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - downloads: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -additionalVolumes: - - name: qbittorrent-scripts - emptyDir: {} - ## When you want to enable automatic port configuration at startup, adjust this to: - # configMap: - # name: -scripts - # defaultMode: 511 - -additionalVolumeMounts: - - mountPath: /config/custom-cont-init.d - name: qbittorrent-scripts - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# media: -# enabled: false -# emptyDir: false -# downloads: -# enabled: false -# emptyDir: false - -# appAdditionalServicesEnabled: true -# appAdditionalServices: -# tcp: -# enabled: true -# type: ClusterIP -# port: -# port: 51413 -# name: bittorrent-tcp -# protocol: TCP -# targetPort: 51413 -# udp: -# enabled: true -# type: ClusterIP -# port: -# port: 51413 -# name: bittorrent-udp -# protocol: UDP -# targetPort: 51413 diff --git a/charts/radarr/1.6.4/Chart.lock b/charts/radarr/1.6.4/Chart.lock deleted file mode 100644 index cf3a62fc4b9..00000000000 --- a/charts/radarr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:14.696592049Z" diff --git a/charts/radarr/1.6.4/app-readme.md b/charts/radarr/1.6.4/app-readme.md deleted file mode 100644 index 7002a7da2fd..00000000000 --- a/charts/radarr/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -A fork of Sonarr to work with movies à la Couchpotato - diff --git a/charts/radarr/1.6.4/charts/common-1.6.7.tgz b/charts/radarr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/radarr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/radarr/1.6.4/docs/CONFIG.md b/charts/radarr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/radarr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/radarr/1.6.4/docs/CONFIG.md.gotmpl b/charts/radarr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/radarr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/readarr/1.6.4/Chart.lock b/charts/readarr/1.6.4/Chart.lock deleted file mode 100644 index a4ab64e4e43..00000000000 --- a/charts/readarr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:12.005706307Z" diff --git a/charts/readarr/1.6.4/app-readme.md b/charts/readarr/1.6.4/app-readme.md deleted file mode 100644 index fc8343ecfb4..00000000000 --- a/charts/readarr/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -A fork of Radarr to work with Books & AudioBooks - diff --git a/charts/readarr/1.6.4/charts/common-1.6.7.tgz b/charts/readarr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/readarr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/readarr/1.6.4/docs/CONFIG.md b/charts/readarr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/readarr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/readarr/1.6.4/docs/CONFIG.md.gotmpl b/charts/readarr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/readarr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/readarr/1.6.4/test_values.yaml b/charts/readarr/1.6.4/test_values.yaml deleted file mode 100644 index 2b6c549ac42..00000000000 --- a/charts/readarr/1.6.4/test_values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -# Default values for Radarr. - -image: - repository: hotio/readarr - pullPolicy: IfNotPresent - tag: nightly - -strategy: - type: Recreate - -service: - port: - port: 8787 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -probes: - liveness: - enabled: true - ## Set this to true if you wish to specify your own livenessProbe - custom: true - ## The spec field contains the values for the default livenessProbe. - ## If you selected custom: true, this field holds the definition of the livenessProbe. - spec: - exec: - command: - - /usr/bin/env - - bash - - -c - - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while - read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` - failureThreshold: 5 - initialDelaySeconds: 60 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 10 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - - -appVolumeMounts: - config: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/config" - media: - enabled: true - emptyDir: true - setPermissions: true - mountPath: "/media" diff --git a/charts/readarr/1.6.4/values.yaml b/charts/readarr/1.6.4/values.yaml deleted file mode 100644 index 4f208513b99..00000000000 --- a/charts/readarr/1.6.4/values.yaml +++ /dev/null @@ -1,72 +0,0 @@ -# Default values for Radarr. - -image: - repository: hotio/readarr - pullPolicy: IfNotPresent - tag: nightly - -strategy: - type: Recreate - -service: - port: - port: 8787 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -probes: - liveness: - enabled: true - ## Set this to true if you wish to specify your own livenessProbe - custom: true - ## The spec field contains the values for the default livenessProbe. - ## If you selected custom: true, this field holds the definition of the livenessProbe. - spec: - exec: - command: - - /usr/bin/env - - bash - - -c - - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while - read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` - failureThreshold: 5 - initialDelaySeconds: 60 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 10 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# media: -# enabled: false -# emptyDir: false diff --git a/charts/sabnzbd/1.6.4/Chart.lock b/charts/sabnzbd/1.6.4/Chart.lock deleted file mode 100644 index 1788d5a364d..00000000000 --- a/charts/sabnzbd/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:09.299519955Z" diff --git a/charts/sabnzbd/1.6.4/app-readme.md b/charts/sabnzbd/1.6.4/app-readme.md deleted file mode 100644 index 537f2facd99..00000000000 --- a/charts/sabnzbd/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Free and easy binary newsreader - diff --git a/charts/sabnzbd/1.6.4/charts/common-1.6.7.tgz b/charts/sabnzbd/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/sabnzbd/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/sabnzbd/1.6.4/docs/CONFIG.md b/charts/sabnzbd/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/sabnzbd/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/sabnzbd/1.6.4/docs/CONFIG.md.gotmpl b/charts/sabnzbd/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/sabnzbd/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/sabnzbd/1.6.4/questions.yaml b/charts/sabnzbd/1.6.4/questions.yaml deleted file mode 100644 index 8c9e6c7ad55..00000000000 --- a/charts/sabnzbd/1.6.4/questions.yaml +++ /dev/null @@ -1,379 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/sabnzbd" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-3.1.0" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - variable: downloads - label: "downloads dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/downloads" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/sabnzbd/1.6.4/values.yaml b/charts/sabnzbd/1.6.4/values.yaml deleted file mode 100644 index 71d72ab4578..00000000000 --- a/charts/sabnzbd/1.6.4/values.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# Default values for Sabnzbd. - -image: - repository: linuxserver/sabnzbd - pullPolicy: IfNotPresent - tag: version-3.1.0 - -strategy: - type: Recreate - -service: - port: - port: 8080 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - - media: - enabled: false - emptyDir: false - mountPath: /media - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -appIngressEnabled: false - - -# appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# media: -# enabled: false -# emptyDir: false -# downloads: -# enabled: false -# emptyDir: false diff --git a/charts/sonarr/1.6.4/Chart.lock b/charts/sonarr/1.6.4/Chart.lock deleted file mode 100644 index 8dcfab040ef..00000000000 --- a/charts/sonarr/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:06.594511124Z" diff --git a/charts/sonarr/1.6.4/app-readme.md b/charts/sonarr/1.6.4/app-readme.md deleted file mode 100644 index 034ec996703..00000000000 --- a/charts/sonarr/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Smart PVR for newsgroup and bittorrent users - diff --git a/charts/sonarr/1.6.4/charts/common-1.6.7.tgz b/charts/sonarr/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/sonarr/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/sonarr/1.6.4/docs/CONFIG.md b/charts/sonarr/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/sonarr/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/sonarr/1.6.4/docs/CONFIG.md.gotmpl b/charts/sonarr/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/sonarr/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/sonarr/1.6.4/questions.yaml b/charts/sonarr/1.6.4/questions.yaml deleted file mode 100644 index 8da38cf3a08..00000000000 --- a/charts/sonarr/1.6.4/questions.yaml +++ /dev/null @@ -1,437 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-sonarrService.port" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "linuxserver/sonarr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-3.0.4.993" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8989 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - variable: media - label: "media dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "media" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/media" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - variable: downloads - label: "downloads dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/downloads" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/tautulli/1.6.4/Chart.lock b/charts/tautulli/1.6.4/Chart.lock deleted file mode 100644 index d92b860685b..00000000000 --- a/charts/tautulli/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:33:03.798145174Z" diff --git a/charts/tautulli/1.6.4/app-readme.md b/charts/tautulli/1.6.4/app-readme.md deleted file mode 100644 index 0f332028468..00000000000 --- a/charts/tautulli/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -A Python based monitoring and tracking tool for Plex Media Server - diff --git a/charts/tautulli/1.6.4/charts/common-1.6.7.tgz b/charts/tautulli/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/tautulli/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/tautulli/1.6.4/docs/CONFIG.md b/charts/tautulli/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/tautulli/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/tautulli/1.6.4/docs/CONFIG.md.gotmpl b/charts/tautulli/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/tautulli/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/tautulli/1.6.4/questions.yaml b/charts/tautulli/1.6.4/questions.yaml deleted file mode 100644 index 08855723887..00000000000 --- a/charts/tautulli/1.6.4/questions.yaml +++ /dev/null @@ -1,325 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-tautulliService.port" - path: "/web" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "tautulli/tautulli" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "v2.6.6" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8181 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/config" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/tautulli/1.6.4/values.yaml b/charts/tautulli/1.6.4/values.yaml deleted file mode 100644 index dc3853d6e6c..00000000000 --- a/charts/tautulli/1.6.4/values.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# Default values for Tautulli. - -image: - repository: tautulli/tautulli - pullPolicy: IfNotPresent - tag: v2.6.6 - -strategy: - type: Recreate - -service: - port: - port: 8181 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false diff --git a/charts/traefik/1.3.5/Chart.lock b/charts/traefik/1.3.5/Chart.lock deleted file mode 100644 index 0aec2a62df3..00000000000 --- a/charts/traefik/1.3.5/Chart.lock +++ /dev/null @@ -1,12 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -- name: cert-manager - repository: https://charts.jetstack.io - version: v1.2.0 -- name: reflector - repository: https://emberstack.github.io/helm-charts - version: 5.4.17 -digest: sha256:52f7fd3acf117d0d78742b75cff0329bd49746fac421ee1234d4ba9c5bc7c695 -generated: "2021-03-09T20:32:59.031608062Z" diff --git a/charts/traefik/1.3.5/app-readme.md b/charts/traefik/1.3.5/app-readme.md deleted file mode 100644 index a0eee9b953a..00000000000 --- a/charts/traefik/1.3.5/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -A Traefik based Reverse Proxy and Certificate Manager - diff --git a/charts/traefik/1.3.5/charts/cert-manager-v1.2.0.tgz b/charts/traefik/1.3.5/charts/cert-manager-v1.2.0.tgz deleted file mode 100644 index 45aa0fd1842..00000000000 Binary files a/charts/traefik/1.3.5/charts/cert-manager-v1.2.0.tgz and /dev/null differ diff --git a/charts/traefik/1.3.5/charts/common-1.6.7.tgz b/charts/traefik/1.3.5/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/traefik/1.3.5/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/traefik/1.3.5/charts/reflector-5.4.17.tgz b/charts/traefik/1.3.5/charts/reflector-5.4.17.tgz deleted file mode 100644 index 20850c0504b..00000000000 Binary files a/charts/traefik/1.3.5/charts/reflector-5.4.17.tgz and /dev/null differ diff --git a/charts/traefik/1.3.5/docs/CONFIG.md b/charts/traefik/1.3.5/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/traefik/1.3.5/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/traefik/1.3.5/docs/CONFIG.md.gotmpl b/charts/traefik/1.3.5/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/traefik/1.3.5/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/traefik/1.3.5/questions.yaml b/charts/traefik/1.3.5/questions.yaml deleted file mode 100644 index d5fc4691055..00000000000 --- a/charts/traefik/1.3.5/questions.yaml +++ /dev/null @@ -1,505 +0,0 @@ -groups: - - name: "Container Images" - description: "Image to be used for container" - - name: "Container Entrypoint" - description: "Configuration of the executable that will be run when the container is started" - - name: "Container Environment Variables" - description: "Set the environment that will be visible to the container" - - name: "Networking" - description: "Configure networking for container" - - name: "Storage" - description: "Persist and share data that is separate from the lifecycle of the container" - - name: "Configuration" - description: "Configure container deployment" - - name: "Workload Details" - description: "Configure how workload should be deployed" - - name: "Scaling/Upgrade Policy" - description: "Configure how pods are replaced when configuration is upgraded" - - name: "Restart Policy" - description: "Configure when pod should be restarted in case of failure" - - name: "Resource Reservation" - description: "Specify resources to be allocated to workload" - - name: "Ingress" - description: "Configure Reverse Proxy" - - name: "Certmanager Settings" - description: "Configure Certmanager" - - name: "WARNING" - description: "WARNING" - -portals: - web_portal: - protocols: - - "https" - host: - - "$variable-appReverse Proxy.webui.host" - ports: - - "443" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Images" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "traefik" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "2.4.2" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: data - label: "Data Dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "data" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/data" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: host - label: "Host" - required: true - schema: - type: string - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - show_if: [["certType", "=", "existingcert"]] - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" - - - variable: certmanager - description: "Configure CertManager Settings" - label: "CertManager Settings" - group: "Certmanager Settings" - schema: - type: dict - required: true - attrs: - - variable: provider - description: "Select the CertManager provider to use" - label: "CertManager Provider" - schema: - type: string - default: "" - enum: - - value: "" - description: "none" - - value: "cloudflare" - description: "Cloudflare" - - value: "cloudDNS" - description: "Google cloudDNS" - - value: "route53" - description: "Route53" - - value: "digitalocean" - description: "Digitalocean" - - value: "rfc2136" - description: "rfc2136" - - value: "azureDNS" - description: "AzureDNS" - - value: "akamai" - description: "Akamai" - - value: "acmeDNS" - description: "acmeDNS" - - variable: email - description: "Email Adress to use with Letsencrypt" - label: "Email-Adress" - schema: - show_if: [["provider", "!=", ""]] - type: string - default: "" - required: true - - variable: wildcardDomain - description: "Enter Domain name here, if you want to setup a global wildcard-domain" - label: "Wildcard Domain" - schema: - show_if: [["provider", "!=", ""]] - type: string - default: "" - - variable: cloudflare - description: "Configure Cloudflare Settings" - label: "Cloudflare Settings" - schema: - show_if: [["provider", "=", "cloudflare"]] - type: dict - required: true - attrs: - - variable: apikey - description: "Enter your Cloudflare API-Key" - label: "API-Key" - schema: - type: string - default: "" - required: true - - variable: cloudDNS - description: "Configure Google cloudDNS Settings" - label: "Google cloudDNS Settings" - schema: - type: dict - show_if: [["provider", "=", "cloudDNS"]] - required: true - attrs: - - variable: project - description: "Enter your Google cloudDNS Project Name" - label: "Project" - schema: - type: string - default: "" - required: true - - variable: keyjson - description: "Enter your Google cloudDNS JSON Key" - label: "Key-JSON" - schema: - type: string - default: "" - required: true - - variable: route53 - description: "Configure Route53 Settings" - label: "Route53 Settings" - schema: - type: dict - show_if: [["provider", "=", "route53"]] - required: true - attrs: - - variable: region - description: "Enter your Route53 Region" - label: "Region" - schema: - type: string - default: "" - required: true - - variable: accessKeyID - description: "Enter your Route53 accessKeyID" - label: "accessKeyID" - schema: - type: string - default: "" - required: true - - variable: secretaccesskey - description: "Enter your Route53 secretaccesskey" - label: "Secretaccesskey" - schema: - type: string - default: "" - required: true - - variable: digitalocean - description: "Configure Digitalocean Settings" - label: "Digitalocean Settings" - schema: - type: dict - show_if: [["provider", "=", "digitalocean"]] - required: true - attrs: - - variable: accesstoken - description: "Enter your Digitalocean Access Token" - label: "Access Token" - schema: - type: string - default: "" - required: true - - variable: rfc2136 - description: "Configure rfc2136 Settings" - label: "rfc2136 Settings" - schema: - type: dict - show_if: [["provider", "=", "rfc2136"]] - required: true - attrs: - - variable: nameserver - description: "Enter your rfc2136 Nameserver" - label: "Nameserver" - schema: - type: string - default: "" - required: true - - variable: tsigKeyName - description: "Enter your rfc2136 tsigKeyName" - label: "tsigKeyName" - schema: - type: string - default: "" - required: true - - variable: tsigsecretkey - description: "Enter your rfc2136 tsigsecretkey" - label: "tsigsecretkey" - schema: - type: string - default: "" - required: true - - variable: tsigAlgorithm - description: "Enter your rfc2136 tsigAlgorithm" - label: "tsigAlgorithm" - schema: - type: string - default: "" - required: true - - variable: azureDNS - description: "Configure AzureDNS Settings" - label: "AzureDNS Settings" - schema: - type: dict - show_if: [["provider", "=", "azureDNS"]] - required: true - attrs: - - variable: environment - description: "Enter your AzureDNS environment" - label: "environment" - schema: - type: string - default: "" - required: true - - variable: subscriptionID - description: "Enter your AzureDNS subscriptionID" - label: "subscriptionID" - schema: - type: string - default: "" - required: true - - variable: resourceGroupName - description: "Enter your AzureDNS resourceGroupName" - label: "resourceGroupName" - schema: - type: string - default: "" - required: true - - variable: hostedZoneName - description: "Enter your AzureDNS hostedZoneName" - label: "hostedZoneName" - schema: - type: string - default: "" - required: true - - variable: akamai - description: "Configure Akamai Settings" - label: "Akamai Settings" - schema: - type: dict - show_if: [["provider", "=", "akamai"]] - required: true - attrs: - - variable: serviceConsumerDomain - description: "Enter your Akamai serviceConsumerDomain" - label: "serviceConsumerDomain" - schema: - type: string - default: "" - required: true - - variable: clientToken - description: "Enter your Akamai clientToken" - label: "clientToken" - schema: - type: string - default: "" - required: true - - variable: clientSecret - description: "Enter your Akamai clientSecret" - label: "clientSecret" - schema: - type: string - default: "" - required: true - - variable: accessToken - description: "Enter your Akamai accessToken" - label: "accessToken" - schema: - type: string - default: "" - required: true - - variable: acmeDNS - description: "Configure acmeDNS Settings" - label: "acmeDNS Settings" - schema: - type: dict - show_if: [["provider", "=", "acmeDNS"]] - required: true - attrs: - - variable: host - description: "Enter your acmeDNS host" - label: "host" - schema: - type: string - default: "" - required: true - - variable: apikey - description: "Enter your acmeDNS acmednsjson" - label: "acmednsjson" - schema: - type: string - default: "" - required: true - - - variable: warning - label: "This App binds to the same ports as TrueNAS SCALE UI: 80 and 443" - description: "Please be sure to set the UI to a different port or adapter" - group: "WARNING" - schema: - type: dict - attrs: - - variable: confirm-warning - description: "Check this to confirm you have made precautions against conflicts on port 80 and 443" - label: "I understand above warning and its consequences" - schema: - type: boolean - default: false - required: true diff --git a/charts/traefik/1.3.5/templates/custom/_appStorage.tpl b/charts/traefik/1.3.5/templates/custom/_appStorage.tpl deleted file mode 100644 index 1908fe0552d..00000000000 --- a/charts/traefik/1.3.5/templates/custom/_appStorage.tpl +++ /dev/null @@ -1,52 +0,0 @@ -{{/* -Retrieve host path from ix volumes based on dataset name -*/}} -{{- define "retrieveHostPathFromiXVolume" -}} -{{- range $index, $hostPathConfiguration := $.ixVolumes }} -{{- $dsName := base $hostPathConfiguration.hostPath -}} -{{- if eq $.datasetName $dsName -}} -{{- $hostPathConfiguration.hostPath -}} -{{- end }} -{{- end }} -{{- end -}} - -{{/* -Define appVolumeMounts for container -*/}} -{{- define "configuredAppVolumeMounts" -}} -{{- if and .Values.appVolumesEnabled .Values.appVolumeMounts }} -{{- range $name, $avm := .Values.appVolumeMounts -}} -{{- if $avm.enabled }} -- name: {{ $name }} - mountPath: {{ $avm.mountPath }} - {{- if $avm.subPath }} - subPath: {{ $avm.subPath }} - {{- end }} -{{- end }} -{{- end }} -{{- end }} -{{- end -}} - -{{/* -Define hostPath for appVolumes -*/}} -{{- define "configuredAppVolumes" -}} -{{- if and .Values.appVolumesEnabled .Values.appVolumeMounts }} -{{- range $name, $av := .Values.appVolumeMounts -}} -{{- if $av.enabled }} -- name: {{ $name }} - {{- if or $av.emptyDir $.Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - {{ if $av.hostPathEnabled }} - path: {{ required "hostPath not set" $av.hostPath }} - {{- else }} - {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.Values.ixVolumes -}} - path: {{ include "retrieveHostPathFromiXVolume" $volDict }} - {{- end }} - {{- end }} -{{- end }} -{{- end }} -{{- end }} -{{- end -}} diff --git a/charts/traefik/1.3.5/templates/custom/appingress.yaml b/charts/traefik/1.3.5/templates/custom/appingress.yaml deleted file mode 100644 index 92766f2146a..00000000000 --- a/charts/traefik/1.3.5/templates/custom/appingress.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- if .Values.appIngress.webui.enabled -}} -{{- if .Values.appIngress.webui.host -}} -{{- if or (eq .Values.appIngress.webui.certType "letsencrypt-prod") (eq .Values.appIngress.webui.certType "letsencrypt-staging") }} -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: {{ .Release.Name }} - annotations: - # hooks are defined here - "helm.sh/hook": post-install,post-upgrade - "helm.sh/hook-weight": "10" - "helm.sh/hook-delete-policy": before-hook-creation -spec: - commonName: {{ .Values.appIngress.webui.host }} - secretName: {{ .Release.Name }} - dnsNames: - - {{ .Values.appIngress.webui.host }} - issuerRef: - name: letsencrypt-prod - kind: ClusterIssuer - group: cert-manager.io ---- -{{- end }} -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: {{ .Release.Name }} -spec: - entryPoints: - - {{ .Values.appIngress.webui.entrypoint }} - routes: - - kind: Rule - match: Host(`{{ .Values.appIngress.webui.host }}`) - services: - - name: api@internal # The internal name of the Dashboard for Traefik - kind: TraefikService - middlewares: - - name: traefik-middlewares-chain-public@kubernetescrd - {{- if .Values.appIngress.webui.authForwardUrl -}} - - name: {{ .Release.Name }}-auth-forward - {{- end }} - {{- if .Values.appIngress.webui.certType }} - tls: {{- if eq .Values.appIngress.webui.certType "selfsigned" -}}[]{{ else if eq .Values.appIngress.webui.certType "existingcert" }} - secretName: {{ .Values.appIngress.webui.existingCert }} - {{- else if eq .Values.appIngress.webui.certType "wildcard" -}} - secretName: wildcardcert - {{ else }} - secretName: {{ .Release.Name }} - {{- end }} - {{- end }} -{{- if .Values.appIngress.webui.authForwardUrl -}} ---- -# Forward authentication -apiVersion: traefik.containo.us/v1alpha1 -kind: Middleware -metadata: - name: {{ .Release.Name }}-auth-forward -spec: - forwardAuth: - address: '{{ .Values.appIngress.webui.authForwardUrl }}' - trustForwardHeader: true - authResponseHeaders: - - Remote-User - - Remote-Groups - - Remote-Name - - Remote-Email -{{- end }} -{{- end }} -{{- end }} diff --git a/charts/traefik/1.3.5/templates/custom/clusterissuer.yaml b/charts/traefik/1.3.5/templates/custom/clusterissuer.yaml deleted file mode 100644 index 19a9c371d3c..00000000000 --- a/charts/traefik/1.3.5/templates/custom/clusterissuer.yaml +++ /dev/null @@ -1,197 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: dns-secrets - #namespace: cert-manager -type: Opaque -stringData: - {{- if eq .Values.certmanager.provider "cloudflare" }} - api-key: {{ .Values.certmanager.cloudflare.apikey | quote }} - {{- else if eq .Values.certmanager.provider "cloudDNS" }} - key-json: {{ .Values.certmanager.cloudDNS.keyjson | quote }} - {{- else if eq .Values.certmanager.provider "route53" }} - secret-access-key: {{ .Values.certmanager.route53.secretaccesskey | quote }} - {{- else if eq .Values.certmanager.provider "digitalocean" }} - access-token: {{ .Values.certmanager.digitalocean.accesstoken | quote }} - {{- else if eq .Values.certmanager.provider "rfc2136" }} - rfc2136: - tsig-secret-key: {{ .Values.certmanager.rfc2136.tsigsecretkey | quote }} - {{- else if eq .Values.certmanager.provider "akamai" }} - clientToken: {{ .Values.certmanager.akamai.clientToken| quote }} - clientSecret: {{ .Values.certmanager.akamai.clientSecret| quote }} - accessToken: {{ .Values.certmanager.akamai.accessToken| quote }} - {{- else if eq .Values.certmanager.provider "acmeDNS" }} - acmedns-json: {{ .Values.certmanager.acmeDNS.acmednsjson | quote }} - {{- end }} ---- -{{- if .Values.certmanager.email -}} -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-prod - #namespace: default - annotations: - # hooks are defined here - "helm.sh/hook": post-install,post-upgrade - #"helm.sh/hook-weight": "0" - "helm.sh/hook-delete-policy": before-hook-creation -spec: - acme: - # You must replace this email address with your own. - # Let's Encrypt will use this to contact you about expiring - # certificates, and issues related to your account. - email: {{ .Values.certmanager.email }} - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - # Secret resource used to store the account's private key. - name: prod-issuer-account-key - # Add a single challenge solver, DNS01 - solvers: - - dns01: - {{- if eq .Values.certmanager.provider "cloudflare" }} - cloudflare: - email: {{ .Values.certmanager.email }} - apiKeySecretRef: - name: dns-secrets - key: api-key - {{- else if eq .Values.certmanager.provider "cloudDNS" }} - cloudDNS: - # The ID of the GCP project - project: {{ .Values.certmanager.cloudDNS.project }} - # This is the secret used to access the service account - serviceAccountSecretRef: - name: dns-secrets - key: key-json - {{- else if eq .Values.certmanager.provider "route53" }} - route53: - region: {{ .Values.certmanager.route53.region }} - accessKeyID: {{ .Values.certmanager.route53.accessKeyID }} - secretAccessKeySecretRef: - name: dns-secrets - key: secret-access-key - # you can also assume a role with these credentials - role: {{ .Values.certmanager.route53.role }} - {{- else if eq .Values.certmanager.provider "digitalocean" }} - digitalocean: - tokenSecretRef: - name: dns-secrets - key: access-token - {{- else if eq .Values.certmanager.provider "rfc2136" }} - rfc2136: - nameserver: {{ .Values.certmanager.rfc2136.nameserver }} - tsigKeyName: {{ .Values.certmanager.rfc2136.tsigKeyName }} - tsigAlgorithm: {{ .Values.certmanager.rfc2136.tsigAlgorithm }} - tsigSecretSecretRef: - name: dns-secrets - key: tsig-secret-key - {{- else if eq .Values.certmanager.provider "azureDNS" }} - azureDNS: - subscriptionID: {{ .Values.certmanager.azureDNS.subscriptionID }} - resourceGroupName: {{ .Values.certmanager.azureDNS.resourceGroupName }} - hostedZoneName: {{ .Values.certmanager.azureDNS.hostedZoneName }} - environment: {{ .Values.certmanager.azureDNS.environment }} - {{- else if eq .Values.certmanager.provider "akamai" }} - akamai: - serviceConsumerDomain: {{ .Values.certmanager.akamai.serviceConsumerDomain }} - clientTokenSecretRef: - name: dns-secrets - key: clientToken - clientSecretSecretRef: - name: dns-secrets - key: clientSecret - accessTokenSecretRef: - name: dns-secrets - key: akamaiaccessToken - {{- else if eq .Values.certmanager.provider "acmeDNS" }} - acmeDNS: - host: {{ .Values.certmanager.acmeDNS.host }} - accountSecretRef: - name: dns-secrets - key: acmedns-json - {{- end }} ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: letsencrypt-staging - #namespace: default - annotations: - # hooks are defined here - "helm.sh/hook": post-install,post-upgrade - #"helm.sh/hook-weight": "0" - "helm.sh/hook-delete-policy": before-hook-creation -spec: - acme: - # You must replace this email address with your own. - # Let's Encrypt will use this to contact you about expiring - # certificates, and issues related to your account. - email: {{ .Values.certmanager.email }} - server: https://acme-staging-v02.api.letsencrypt.org/directory - privateKeySecretRef: - # Secret resource used to store the account's private key. - name: staging-issuer-account-key - # Add a single challenge solver, DNS01 - solvers: - - dns01: - {{- if eq .Values.certmanager.provider "cloudflare" }} - cloudflare: - email: {{ .Values.certmanager.email }} - apiKeySecretRef: - name: dns-secrets - key: api-key - {{- else if eq .Values.certmanager.provider "cloudDNS" }} - cloudDNS: - # The ID of the GCP project - project: {{ .Values.certmanager.cloudDNS.project }} - # This is the secret used to access the service account - serviceAccountSecretRef: - name: dns-secrets - key: key-json - {{- else if eq .Values.certmanager.provider "route53" }} - route53: - region: {{ .Values.certmanager.route53.region }} - accessKeyID: {{ .Values.certmanager.route53.accessKeyID }} - secretAccessKeySecretRef: - name: dns-secrets - key: secret-access-key - # you can also assume a role with these credentials - role: arn:aws:iam::YYYYYYYYYYYY:role/dns-manager - {{- else if eq .Values.certmanager.provider "digitalocean" }} - digitalocean: - tokenSecretRef: - name: dns-secrets - key: access-token - {{- else if eq .Values.certmanager.provider "rfc2136" }} - rfc2136: - nameserver: {{ .Values.certmanager.rfc2136.nameserver }} - tsigKeyName: {{ .Values.certmanager.rfc2136.tsigKeyName }} - tsigAlgorithm: {{ .Values.certmanager.rfc2136.tsigAlgorithm }} - tsigSecretSecretRef: - name: dns-secrets - key: tsig-secret-key - {{- else if eq .Values.certmanager.provider "azureDNS" }} - azureDNS: - subscriptionID: {{ .Values.certmanager.azureDNS.subscriptionID }} - resourceGroupName: {{ .Values.certmanager.azureDNS.resourceGroupName }} - hostedZoneName: {{ .Values.certmanager.azureDNS.hostedZoneName }} - environment: {{ .Values.certmanager.azureDNS.environment }} - {{- else if eq .Values.certmanager.provider "akamai" }} - akamai: - serviceConsumerDomain: {{ .Values.certmanager.akamai.serviceConsumerDomain }} - clientTokenSecretRef: - name: dns-secrets - key: clientToken - clientSecretSecretRef: - name: dns-secrets - key: clientSecret - accessTokenSecretRef: - name: dns-secrets - key: akamaiaccessToken - {{- else if eq .Values.certmanager.provider "acmeDNS" }} - acmeDNS: - host: {{ .Values.certmanager.acmeDNS.host }} - accountSecretRef: - name: dns-secrets - key: acmedns-json - {{- end }} -{{- end }} diff --git a/charts/traefik/1.3.5/templates/custom/delay_postinstall.yaml b/charts/traefik/1.3.5/templates/custom/delay_postinstall.yaml deleted file mode 100644 index 4fca82bc6fc..00000000000 --- a/charts/traefik/1.3.5/templates/custom/delay_postinstall.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: "{{ .Release.Name }}-wait" - labels: - app.kubernetes.io/managed-by: {{ .Release.Service | quote }} - app.kubernetes.io/instance: {{ .Release.Name | quote }} - app.kubernetes.io/version: {{ .Chart.AppVersion }} - helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - annotations: - # hooks are defined here - "helm.sh/hook": post-install - "helm.sh/hook-weight": "-10" - "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation -spec: - template: - metadata: - name: "{{ .Release.Name }}" - labels: - app.kubernetes.io/managed-by: {{ .Release.Service | quote }} - app.kubernetes.io/instance: {{ .Release.Name | quote }} - helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - spec: - restartPolicy: Never - containers: - - name: wait-30s - image: "alpine:3.3" - command: ["/bin/sleep","30"] diff --git a/charts/traefik/1.3.5/templates/custom/wildcard.yaml b/charts/traefik/1.3.5/templates/custom/wildcard.yaml deleted file mode 100644 index c3b441a18a9..00000000000 --- a/charts/traefik/1.3.5/templates/custom/wildcard.yaml +++ /dev/null @@ -1,23 +0,0 @@ -{{- if .Values.certmanager.wildcardDomain -}} -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: wildcardcert - annotations: - # hooks are defined here - "helm.sh/hook": post-install,post-upgrade - "helm.sh/hook-weight": "10" - "helm.sh/hook-delete-policy": before-hook-creation - reflector.v1.k8s.emberstack.com/secret-reflection-allowed: "true" - reflector.v1.k8s.emberstack.com/secret-reflection-auto-enabled: "true" -spec: - commonName: {{ .Values.certmanager.wildcardDomain }} - secretName: wildcardcert - dnsNames: - - {{ .Values.certmanager.wildcardDomain }} - - '*.{{ .Values.certmanager.wildcardDomain }}' - issuerRef: - name: letsencrypt-prod - kind: ClusterIssuer - group: cert-manager.io -{{- end }} diff --git a/charts/transmission/1.6.4/Chart.lock b/charts/transmission/1.6.4/Chart.lock deleted file mode 100644 index b9c3e14c605..00000000000 --- a/charts/transmission/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:32:55.635826661Z" diff --git a/charts/transmission/1.6.4/app-readme.md b/charts/transmission/1.6.4/app-readme.md deleted file mode 100644 index 6b9a1be91d3..00000000000 --- a/charts/transmission/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -API Support for your favorite torrent trackers. - diff --git a/charts/transmission/1.6.4/charts/common-1.6.7.tgz b/charts/transmission/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/transmission/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/transmission/1.6.4/docs/CONFIG.md b/charts/transmission/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/transmission/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/transmission/1.6.4/docs/CONFIG.md.gotmpl b/charts/transmission/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/transmission/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/transmission/1.6.4/values.yaml b/charts/transmission/1.6.4/values.yaml deleted file mode 100644 index 9932e5834c1..00000000000 --- a/charts/transmission/1.6.4/values.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# Default values for Jackett. - -image: - repository: linuxserver/transmission - pullPolicy: IfNotPresent - tag: version-3.00-r2 - -strategy: - type: Recreate - -service: - port: - port: 9091 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - config: - enabled: false - emptyDir: false - -## TrueCharts Values - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "config" -# downloads: -# enabled: true -# emptyDir: false -# datasetName: "downloads" - - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-tcp - protocol: TCP - targetPort: 51413 - nodePort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-udp - protocol: UDP - targetPort: 51413 - nodePort: 51413 diff --git a/charts/truecommand/1.6.4/Chart.lock b/charts/truecommand/1.6.4/Chart.lock deleted file mode 100644 index cc4edd058bc..00000000000 --- a/charts/truecommand/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:32:52.89582008Z" diff --git a/charts/truecommand/1.6.4/app-readme.md b/charts/truecommand/1.6.4/app-readme.md deleted file mode 100644 index 595aa6f9b47..00000000000 --- a/charts/truecommand/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Aggregated management of TrueNAS devices - diff --git a/charts/truecommand/1.6.4/charts/common-1.6.7.tgz b/charts/truecommand/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/truecommand/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/truecommand/1.6.4/docs/CONFIG.md b/charts/truecommand/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/truecommand/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/truecommand/1.6.4/docs/CONFIG.md.gotmpl b/charts/truecommand/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/truecommand/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/truecommand/1.6.4/questions.yaml b/charts/truecommand/1.6.4/questions.yaml deleted file mode 100644 index 520cd24769b..00000000000 --- a/charts/truecommand/1.6.4/questions.yaml +++ /dev/null @@ -1,324 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "network / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-truecommandService.port" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "ixsystems/truecommand" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "1.3.2" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - # Config ------------------------ - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/data" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/truecommand/1.6.4/values.yaml b/charts/truecommand/1.6.4/values.yaml deleted file mode 100644 index 08cb5210393..00000000000 --- a/charts/truecommand/1.6.4/values.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# Default values for Jackett. - -image: - repository: ixsystems/truecommand - pullPolicy: IfNotPresent - tag: 1.3.2 - -strategy: - type: Recreate - -service: - port: - port: 80 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 - -persistence: - data: - enabled: false - emptyDir: false - mountPath: /downloads - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - - -## TrueCharts Config - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false diff --git a/charts/tvheadend/1.6.4/Chart.lock b/charts/tvheadend/1.6.4/Chart.lock deleted file mode 100644 index 3528cb8106b..00000000000 --- a/charts/tvheadend/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:32:50.200768543Z" diff --git a/charts/tvheadend/1.6.4/app-readme.md b/charts/tvheadend/1.6.4/app-readme.md deleted file mode 100644 index 26cefb52392..00000000000 --- a/charts/tvheadend/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -TVheadend - a TV streaming server and digital video recorder - diff --git a/charts/tvheadend/1.6.4/charts/common-1.6.7.tgz b/charts/tvheadend/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/tvheadend/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/tvheadend/1.6.4/docs/CONFIG.md b/charts/tvheadend/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/tvheadend/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/tvheadend/1.6.4/docs/CONFIG.md.gotmpl b/charts/tvheadend/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/tvheadend/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/tvheadend/1.6.4/templates/NOTES.txt b/charts/tvheadend/1.6.4/templates/NOTES.txt deleted file mode 100644 index 90f7b653a50..00000000000 --- a/charts/tvheadend/1.6.4/templates/NOTES.txt +++ /dev/null @@ -1 +0,0 @@ -{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/tvheadend/1.6.4/values.yaml b/charts/tvheadend/1.6.4/values.yaml deleted file mode 100644 index 797e88be6af..00000000000 --- a/charts/tvheadend/1.6.4/values.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# Default values for tvheadend. - -image: - repository: linuxserver/tvheadend - pullPolicy: IfNotPresent - tag: latest - -strategy: - type: Recreate - -# See https://github.com/linuxserver/docker-tvheadend#parameters -env: {} - # PUID: 1000 - # PGID: 1000 - # TZ: Europe/London - # RUN_OPTS: - -service: - port: - port: 9981 - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /config - recordings: - enabled: false - emptyDir: false - mountPath: /recordings - -appIngressEnabled: false - - -# appVolumeMounts: -# config: -# enabled: false -# emptyDir: false -# recordings: -# enabled: false -# emptyDir: false - -appAdditionalServicesEnabled: true -appAdditionalServices: - htsp: - enabled: true - type: ClusterIP - port: - port: 9982 - name: htsp - protocol: TCP - targetPort: 9982 diff --git a/charts/unifi/1.3.4/Chart.lock b/charts/unifi/1.3.4/Chart.lock deleted file mode 100644 index ba61f6af3fb..00000000000 --- a/charts/unifi/1.3.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:32:47.547504958Z" diff --git a/charts/unifi/1.3.4/app-readme.md b/charts/unifi/1.3.4/app-readme.md deleted file mode 100644 index 85b798d43af..00000000000 --- a/charts/unifi/1.3.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Ubiquiti Network's Unifi Controller - diff --git a/charts/unifi/1.3.4/charts/common-1.6.7.tgz b/charts/unifi/1.3.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/unifi/1.3.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/unifi/1.3.4/docs/CONFIG.md b/charts/unifi/1.3.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/unifi/1.3.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/unifi/1.3.4/docs/CONFIG.md.gotmpl b/charts/unifi/1.3.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/unifi/1.3.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/unifi/1.3.4/questions.yaml b/charts/unifi/1.3.4/questions.yaml deleted file mode 100644 index 9baf321e3bd..00000000000 --- a/charts/unifi/1.3.4/questions.yaml +++ /dev/null @@ -1,468 +0,0 @@ -groups: - - name: "Container Image" - description: "configure container image" - - name: "Configuration" - description: "additional container configuration" - - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" - description: "Ingress configuration" -portals: - web_portal: - protocols: - - "https" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" - -questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" - group: "Container Image" - schema: - type: dict - required: true - attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" - schema: - type: string - required: true - default: "jacobalberty/unifi" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "stable-6" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" - - # Configure Time Zone - - variable: timezone - group: "Configuration" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - variable: PUID - group: "Configuration" - label: "PUID" - description: "The UserID of the user running the application and owning the files" - schema: - type: int - default: 568 - - - variable: PGID - group: "Configuration" - label: "PGID" - description: "The groupID of the user/group running the application and owning the files" - schema: - type: int - default: 568 - - - variable: UMASK - group: "Configuration" - label: "UMASK (advanced)" - description: "The UMASK used if supported by the application" - schema: - type: string - default: "002" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8443 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 34309 - required: true - - - variable: appAdditionalServices - group: "Networking" - label: "Configure additional services" - schema: - type: dict - attrs: - - variable: tcp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for device and controller communications" - schema: - type: boolean - default: true - show_subquestions_if: true - subquestions: - - variable: port - label: "Configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8080 - required: false - - variable: type - label: "service type" - schema: - type: string - default: "NodePort" - enum: - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort" - - variable: udp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP port for STUN Connections" - schema: - type: boolean - default: true - show_subquestions_if: true - subquestions: - - variable: port - label: "Configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 3478 - required: false - - variable: type - label: "service type" - schema: - type: string - default: "NodePort" - enum: - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort" - - # Enable Host Networking - - variable: hostNetwork - group: "Networking" - label: "Enable Host Networking" - schema: - type: boolean - default: false - -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" - schema: - type: dict - attrs: - - variable: config - label: "config dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/unifi" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - - - variable: appIngress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: webui - label: "Web Ingress Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Web Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: paths - label: "paths" - schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" - - variable: certType - label: "Select Certificate Type" - schema: - type: string - default: "letsencrypt-prod" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" - - variable: tcp - label: "TCP Ingress Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Ingress Type" - schema: - type: string - default: "TCP" - required: true - editable: false - enum: - - value: "TCP" - description: "Plain TCP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "unificom" - required: true - enum: - - value: "unificom" - description: "Unifi Communications TCP: port 8080" - - variable: certType - label: "Select Certificate Type" - schema: - editable: false - type: string - default: "" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - variable: udp - label: "UDP Ingress Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Ingress Type" - schema: - type: string - default: "UDP" - required: true - editable: false - enum: - - value: "UDP" - description: "Plain UDP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "stun-udp" - required: true - enum: - - value: "stun-udp" - description: "STUN UDP: port 3478" diff --git a/charts/unifi/1.3.4/values.yaml b/charts/unifi/1.3.4/values.yaml deleted file mode 100644 index 349888bc217..00000000000 --- a/charts/unifi/1.3.4/values.yaml +++ /dev/null @@ -1,44 +0,0 @@ -# Default values for Unifi. - -image: - repository: jacobalberty/unifi - tag: stable-6 - pullPolicy: IfNotPresent - -strategy: - type: Recreate - -service: - port: - port: 8443 - -env: {} - # TZ: - # PUID: - # PGID: - -persistence: - config: - enabled: false - emptyDir: false - -appIngressEnabled: true - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 8080 - name: unificom - protocol: TCP - targetPort: 8080 - udp: - enabled: true - type: ClusterIP - port: - port: 3478 - name: stun-udp - protocol: UDP - targetPort: 3478 diff --git a/charts/zwavejs2mqtt/1.6.4/Chart.lock b/charts/zwavejs2mqtt/1.6.4/Chart.lock deleted file mode 100644 index 69a2e74357f..00000000000 --- a/charts/zwavejs2mqtt/1.6.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 -digest: sha256:0a64f876c94732b644861a2da65f48bca5b507c99ffe3d341235d6f4b3bee2a1 -generated: "2021-03-09T20:32:44.477282758Z" diff --git a/charts/zwavejs2mqtt/1.6.4/app-readme.md b/charts/zwavejs2mqtt/1.6.4/app-readme.md deleted file mode 100644 index f8a07814e6d..00000000000 --- a/charts/zwavejs2mqtt/1.6.4/app-readme.md +++ /dev/null @@ -1,2 +0,0 @@ -Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue - diff --git a/charts/zwavejs2mqtt/1.6.4/charts/common-1.6.7.tgz b/charts/zwavejs2mqtt/1.6.4/charts/common-1.6.7.tgz deleted file mode 100644 index f372d2cf7ac..00000000000 Binary files a/charts/zwavejs2mqtt/1.6.4/charts/common-1.6.7.tgz and /dev/null differ diff --git a/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md b/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md deleted file mode 100644 index cc20c8c78ba..00000000000 --- a/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration Options - -N/A diff --git a/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md.gotmpl b/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md.gotmpl deleted file mode 100644 index 0242e267803..00000000000 --- a/charts/zwavejs2mqtt/1.6.4/docs/CONFIG.md.gotmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "custom.custom.configuration.header" -}} -# Configuration Options -{{- end -}} - -{{- define "custom.custom.configuration" -}} -{{ template "custom.custom.configuration.header" . }} - -N/A -{{- end -}} - -{{ template "custom.custom.configuration" . }} diff --git a/charts/zwavejs2mqtt/1.6.4/values.yaml b/charts/zwavejs2mqtt/1.6.4/values.yaml deleted file mode 100644 index c859d84aee6..00000000000 --- a/charts/zwavejs2mqtt/1.6.4/values.yaml +++ /dev/null @@ -1,139 +0,0 @@ -# Default values for zwavejs2mqtt. -# This chart inherits from our common library chart. You can check the default values/options here: -# https://github.com/k8s-at-home/charts/tree/master/charts/common - -image: - repository: zwavejs/zwavejs2mqtt - pullPolicy: IfNotPresent - tag: 1.1.1 - -strategy: - type: Recreate - -# # See more environment variables in the zwavejs2mqtt documentation -# https://zwave-js.github.io/zwavejs2mqtt/#/guide/env-vars -env: {} - # OZW_NETWORK_KEY: - -probes: - liveness: - enabled: true - # custom: true - # spec: - # failureThreshold: 5 - # httpGet: - # path: /health - # port: http - # httpHeaders: - # - name: Accept - # value: text/plain - # initialDelaySeconds: 30 - # periodSeconds: 10 - # timeoutSeconds: 10 - readiness: - enabled: true - # custom: true - # spec: - # failureThreshold: 5 - # httpGet: - # path: /health - # port: http - # httpHeaders: - # - name: Accept - # value: text/plain - # initialDelaySeconds: 30 - # periodSeconds: 10 - # timeoutSeconds: 10 - startup: - enabled: false - # custom: true - # spec: - # failureThreshold: 5 - # httpGet: - # path: /health - # port: http - # httpHeaders: - # - name: Accept - # value: text/plain - # initialDelaySeconds: 30 - # periodSeconds: 10 - # timeoutSeconds: 10 - -service: - type: NodePort - port: - name: webui - port: 8091 - -# Privileged may be required if USB controller is accessed directly through the host machine -# securityContext: -# privileged: true - -persistence: - config: - enabled: false - emptyDir: false - mountPath: /usr/src/app/store - ## Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - # storageClass: "-" - # accessMode: ReadWriteOnce - # size: 1Gi - ## Do not delete the pvc upon helm uninstall - # skipuninstall: false - # existingClaim: "" - -# Path to your zwave device in the container -additionalVolumeMounts: [] -# - name: usb -# mountPath: /dev/serial/by-id/usb-0658_0200-if00 - -# Path to your zwave device on the host -additionalVolumes: [] -# - name: usb -# hostPath: -# path: /dev/serial/by-id/usb-0658_0200-if00 - -# affinity: -# nodeAffinity: -# requiredDuringSchedulingIgnoredDuringExecution: -# nodeSelectorTerms: -# - matchExpressions: -# - key: app -# operator: In -# values: -# - zwave-controller - -## TrueCharts Config - - - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# datasetName: "store" -# mountPath: "/usr/src/app/store" -# hostPathEnabled: false -# zwave: -# enabled: true -# emptyDir: false -# mountPath: "/dev/ttyAMC0" -# hostPathEnabled: true -# hostPath: "/dev/ttyAMC0" - -appAdditionalServicesEnabled: true -appAdditionalServices: - ws: - enabled: true - type: ClusterIP - port: - port: 3000 - name: ws - protocol: TCP - targetPort: 3000 diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000000..4032aa563b3 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +truecharts.org diff --git a/.github/docs/_static/custom.css b/docs/_static/custom.css similarity index 100% rename from .github/docs/_static/custom.css rename to docs/_static/custom.css diff --git a/charts/collabora-online/icon.png b/docs/_static/img/collabora-icon.png similarity index 100% rename from charts/collabora-online/icon.png rename to docs/_static/img/collabora-icon.png diff --git a/docs/_static/img/emby-icon.png b/docs/_static/img/emby-icon.png new file mode 100644 index 00000000000..1f4a9f19c5b Binary files /dev/null and b/docs/_static/img/emby-icon.png differ diff --git a/charts/jackett/icon.png b/docs/_static/img/jackett-icon.png similarity index 100% rename from charts/jackett/icon.png rename to docs/_static/img/jackett-icon.png diff --git a/charts/jellyfin/icon.png b/docs/_static/img/jellyfin-icon.png similarity index 100% rename from charts/jellyfin/icon.png rename to docs/_static/img/jellyfin-icon.png diff --git a/charts/kms/icon.jpg b/docs/_static/img/kms-icon.jpg similarity index 100% rename from charts/kms/icon.jpg rename to docs/_static/img/kms-icon.jpg diff --git a/.github/docs/about/Apach2-licence.md b/docs/about/Apach2-licence.md similarity index 100% rename from .github/docs/about/Apach2-licence.md rename to docs/about/Apach2-licence.md diff --git a/.github/docs/about/FAQ.md b/docs/about/FAQ.md similarity index 64% rename from .github/docs/about/FAQ.md rename to docs/about/FAQ.md index 059a0b27563..1b2fc6d1365 100644 --- a/.github/docs/about/FAQ.md +++ b/docs/about/FAQ.md @@ -1,14 +1,14 @@ # FAQ -- Q: I tried to run TrueCharts on TrueNAS SCALE 20.12 and it doesn't work.
-A: TrueNAS SCALE 20.12 has never supported custom charts in any way, shape or form. Hence TrueCharts is 21.02+ only +- Q: I tried to run TrueCharts on TrueNAS SCALE 20.12 or 21.02 and it doesn't work.
+A: TrueNAS SCALE 20.12 has never supported custom charts in any way, shape or form. Hence TrueCharts is 21.04+ only - Q: Please include app X
A: Please file an issue about it, after checking the wiki to make sure it hasn't been discussed already: -https://github.com/truecharts/truecharts/wiki/k8s-at-home-to-SCALE-App-migration-list +https://github.com/truecharts/apps/wiki/k8s-at-home-to-SCALE-App-migration-list - Q: Isn't there more documentation for app x
-A: If it's not on our [wiki](https://wiki.truecharts.org), we do not. Currently during TrueNAS SCALE ALPHA/BETA we focus on the technical aspects. +A: If it's not on our [website](https://truecharts.org), we do not. There might be other sources for documentation however! - Q: Function x doesn't seem to be working, should it be working?
A: Maybe, please file an issue @@ -16,12 +16,6 @@ A: Maybe, please file an issue - Q: I'm missing a lot of configuration opions in the install GUI.
A: We try to aim for a balance in the amount of options vs the simplicity of installation. Suggestions are always welcome -- Q: The portal button isn't working.
-A: Portal buttons are current't not implemented very well and are considered "not supported" for the time being - -- Q: I selected letsencrypt but still get a traefik certificate.
-A: Cert Manager might take up to 10 minutes to fetch the right certificate and requires free access to 1.1.1.1:53. Until the right certificate is fetched, it will use the Traefik Default cert. - - Q: Is my data guaranteed to be secure?
A: ix_volumes (the auto generated storage) is considered relatively secure as long as you don't delete the App, but we can't give an absolute guarantee. data mounted using a hostPath, is as secure as the application that is using the data, our charts do not actively alter said dataset/folder. However: SCALE is still ALPHA, so breaking changes in the storage design are very likely. diff --git a/docs/about/LICENSE.md b/docs/about/LICENSE.md new file mode 100644 index 00000000000..1d29780c46d --- /dev/null +++ b/docs/about/LICENSE.md @@ -0,0 +1,31 @@ +# License
+ +BSD 3-Clause License + +Copyright (c) 2020-2021, the respective contributors, as shown by the AUTHORS file. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.github/docs/about/License-headers.md b/docs/about/License-headers.md similarity index 100% rename from .github/docs/about/License-headers.md rename to docs/about/License-headers.md diff --git a/docs/about/NOTICE.md b/docs/about/NOTICE.md new file mode 100644 index 00000000000..db450c1b750 --- /dev/null +++ b/docs/about/NOTICE.md @@ -0,0 +1,6 @@ +# NOTICE
+ +This product includes software developed at +The K8S-At-Home (https://k8s-at-home.com/). + +This Product Contains modified Apache2.0 Licensed software diff --git a/docs/about/code_of_conduct.md b/docs/about/code_of_conduct.md new file mode 100644 index 00000000000..6185a5dc8bb --- /dev/null +++ b/docs/about/code_of_conduct.md @@ -0,0 +1,71 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community + +Examples of unacceptable behavior by participants include: + +* The use of sexual imagery and unwelcome sexual advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at truecharts@schouten-lebbing.nl. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/docs/about/index.md b/docs/about/index.md new file mode 100644 index 00000000000..288d606b5f0 --- /dev/null +++ b/docs/about/index.md @@ -0,0 +1,51 @@ +# About TrueCharts
+**Community App Catalog for TrueNAS SCALE** + +[![GitHub last commit](https://img.shields.io/github/last-commit/truecharts/truecharts/master.svg)](https://github.com/truecharts/apps/commits) [![Charts: Release](https://github.com/truecharts/apps/actions/workflows/charts-release.yaml/badge.svg)](https://github.com/truecharts/apps/actions/workflows/charts-release.yaml) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_shield) [![License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/truecharts/apps/blob/master/docs/LICENSE.BSD3) +--- +Truecharts is an innitiative to provide high quality Apps to use with the TrueNAS SCALE App Ecosystem. +Our primary goals are: +- Micro-Service Centered +- Native Kubernetes +- Stability +- Consistancy + +All our apps are supposed to work together, be easy to setup using the TrueNAS UI and, above all, give the average user more than enough options to tune things to their liking. + + +## Getting started using TrueCharts +Installing TrueCharts within TrueNAS SCALE, is possible using the TrueNAS SCALE Catalog list. + +For more information: +https://truecharts.org/manual/adding-truecharts/ + +## FAQ + +Please refer to our [FAQ](https://truecharts.org/about/FAQ/) and [Issue tracker](https://github.com/truecharts/apps/issues) before creating an issue. +There is a significant chance your issue has been reported before! + +## Getting into creating Apps + +Creating charts takes some getting used to, as it's based on Helm charts. We highly suggest prior knowhow on creation/modifying Helm Charts, before taking on the challenge of creating SCALE Apps. + +## Featured Projects + +A lot of our work is based on the great effort of others. We would love to extend special thanks to these projects we owe a lot to: + +| | | | +| :---------------: | :---------------: | :---------------: | +| TrueNAS SCALE | K8S-At-Home | Traefik | + + +## Licence + +`SPDX-License-Identifier: BSD-3-Clause` + +Truecharts as a whole, is based on a BSD-3-clause license, this ensures almost everyone can use and modify our charts. However: As a lot of Apps are based on upstream Helm Charts, Licences can vary on a per-App basis. This can easily be seen by the presence of a "LICENSE" file in the App rootfolder. + +Some Apps may also contain parts in other licenses, such as libraries or templates, these files can be recognised by their individual headers. + +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftruecharts%2Ftruecharts?ref=badge_large) + +--- +![built-with-resentment](http://forthebadge.com/images/badges/built-with-resentment.svg) ![contains-technical-debt](http://forthebadge.com/images/badges/contains-technical-debt.svg) diff --git a/.github/docs/about/maintainers-wanted.md b/docs/about/maintainers-wanted.md similarity index 96% rename from .github/docs/about/maintainers-wanted.md rename to docs/about/maintainers-wanted.md index 89d971f76d2..41aeceaca2c 100644 --- a/.github/docs/about/maintainers-wanted.md +++ b/docs/about/maintainers-wanted.md @@ -9,12 +9,13 @@ _Please note: We always prefer maintainers that have worked on one of our Apps b ### Current Apps without maintainers +- bazarr - Calibre-web -- deluge - freshrss - gaps - grocy - heimdall +- lazylibrarian - lychee - navidrome - node-red @@ -26,3 +27,4 @@ _Please note: We always prefer maintainers that have worked on one of our Apps b - sabnzbd - truecommand - tvheadend +- unifi diff --git a/docs/apps/incubator/bazarr/CONFIG.md b/docs/apps/incubator/bazarr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/bazarr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/bazarr/index.md b/docs/apps/incubator/bazarr/index.md new file mode 100644 index 00000000000..02ca646dff9 --- /dev/null +++ b/docs/apps/incubator/bazarr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `bazarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `bazarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/calibre-web/CONFIG.md b/docs/apps/incubator/calibre-web/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/calibre-web/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/calibre-web/index.md b/docs/apps/incubator/calibre-web/index.md new file mode 100644 index 00000000000..65d29f3cb8f --- /dev/null +++ b/docs/apps/incubator/calibre-web/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `calibre-web` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `calibre-web` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/deluge/CONFIG.md b/docs/apps/incubator/deluge/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/deluge/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/deluge/index.md b/docs/apps/incubator/deluge/index.md new file mode 100644 index 00000000000..9dd914bee97 --- /dev/null +++ b/docs/apps/incubator/deluge/index.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Deluge App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `deluge` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `deluge` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/freshrss/CONFIG.md b/docs/apps/incubator/freshrss/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/freshrss/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/freshrss/index.md b/docs/apps/incubator/freshrss/index.md new file mode 100644 index 00000000000..4ac76c139fc --- /dev/null +++ b/docs/apps/incubator/freshrss/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +FreshRSS is a self-hosted RSS feed aggregator + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `freshrss` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `freshrss` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/gaps/CONFIG.md b/docs/apps/incubator/gaps/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/gaps/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/gaps/index.md b/docs/apps/incubator/gaps/index.md new file mode 100644 index 00000000000..28a860bf935 --- /dev/null +++ b/docs/apps/incubator/gaps/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `gaps` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `gaps` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/grocy/CONFIG.md b/docs/apps/incubator/grocy/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/grocy/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/grocy/index.md b/docs/apps/incubator/grocy/index.md new file mode 100644 index 00000000000..28b20de2fc9 --- /dev/null +++ b/docs/apps/incubator/grocy/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `grocy` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `grocy` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/heimdall/CONFIG.md b/docs/apps/incubator/heimdall/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/heimdall/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/heimdall/index.md b/docs/apps/incubator/heimdall/index.md new file mode 100644 index 00000000000..ffe3b776492 --- /dev/null +++ b/docs/apps/incubator/heimdall/index.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +An Application dashboard and launcher + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `heimdall` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `heimdall` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/lazylibrarian/CONFIG.md b/docs/apps/incubator/lazylibrarian/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/lazylibrarian/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/lazylibrarian/index.md b/docs/apps/incubator/lazylibrarian/index.md new file mode 100644 index 00000000000..6c7d69fd1f3 --- /dev/null +++ b/docs/apps/incubator/lazylibrarian/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Get all your books, like series with Sonarr... + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `lazylibrarian` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lazylibrarian` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/lychee/CONFIG.md b/docs/apps/incubator/lychee/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/lychee/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/lychee/index.md b/docs/apps/incubator/lychee/index.md new file mode 100644 index 00000000000..a06445dc40a --- /dev/null +++ b/docs/apps/incubator/lychee/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Lychee is a free photo-management tool, which runs on your server or web-space + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `lychee` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lychee` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/navidrome/CONFIG.md b/docs/apps/incubator/navidrome/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/navidrome/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/navidrome/index.md b/docs/apps/incubator/navidrome/index.md new file mode 100644 index 00000000000..ecfab273577 --- /dev/null +++ b/docs/apps/incubator/navidrome/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Navidrome is an open source web-based music collection server and streamer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `navidrome` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `navidrome` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/node-red/CONFIG.md b/docs/apps/incubator/node-red/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/node-red/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/node-red/index.md b/docs/apps/incubator/node-red/index.md new file mode 100644 index 00000000000..904a12a2437 --- /dev/null +++ b/docs/apps/incubator/node-red/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Node-RED is low-code programming for event-driven applications + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `node-red` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `node-red` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/nzbget/CONFIG.md b/docs/apps/incubator/nzbget/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/nzbget/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/nzbget/index.md b/docs/apps/incubator/nzbget/index.md new file mode 100644 index 00000000000..7511c4bdf21 --- /dev/null +++ b/docs/apps/incubator/nzbget/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +NZBGet is a Usenet downloader client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `nzbget` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nzbget` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/nzbhydra/CONFIG.md b/docs/apps/incubator/nzbhydra/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/nzbhydra/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/nzbhydra/index.md b/docs/apps/incubator/nzbhydra/index.md new file mode 100644 index 00000000000..5b42b4fec18 --- /dev/null +++ b/docs/apps/incubator/nzbhydra/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Usenet meta search + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `nzbhydra` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `nzbhydra` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/organizr/CONFIG.md b/docs/apps/incubator/organizr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/organizr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/organizr/index.md b/docs/apps/incubator/organizr/index.md new file mode 100644 index 00000000000..88b57eeebee --- /dev/null +++ b/docs/apps/incubator/organizr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +HTPC/Homelab Services Organizer + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `organizr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `organizr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/qbittorrent/CONFIG.md b/docs/apps/incubator/qbittorrent/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/qbittorrent/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/qbittorrent/index.md b/docs/apps/incubator/qbittorrent/index.md new file mode 100644 index 00000000000..f5f8d9fe6b8 --- /dev/null +++ b/docs/apps/incubator/qbittorrent/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +qBittorrent is a cross-platform free and open-source BitTorrent client + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `qbittorrent` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `qbittorrent` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/readarr/CONFIG.md b/docs/apps/incubator/readarr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/readarr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/readarr/index.md b/docs/apps/incubator/readarr/index.md new file mode 100644 index 00000000000..da030719b9c --- /dev/null +++ b/docs/apps/incubator/readarr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Radarr to work with Books & AudioBooks + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `readarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `readarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/sabnzbd/CONFIG.md b/docs/apps/incubator/sabnzbd/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/sabnzbd/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/sabnzbd/index.md b/docs/apps/incubator/sabnzbd/index.md new file mode 100644 index 00000000000..016be203d42 --- /dev/null +++ b/docs/apps/incubator/sabnzbd/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Free and easy binary newsreader + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `sabnzbd` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `sabnzbd` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/truecommand/CONFIG.md b/docs/apps/incubator/truecommand/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/truecommand/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/truecommand/index.md b/docs/apps/incubator/truecommand/index.md new file mode 100644 index 00000000000..f19b98569fe --- /dev/null +++ b/docs/apps/incubator/truecommand/index.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: nightly](https://img.shields.io/badge/AppVersion-nightly-informational?style=flat-square) + +Aggregated management of TrueNAS devices + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `truecommand` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `truecommand` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/tvheadend/CONFIG.md b/docs/apps/incubator/tvheadend/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/tvheadend/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/tvheadend/index.md b/docs/apps/incubator/tvheadend/index.md new file mode 100644 index 00000000000..7a317430139 --- /dev/null +++ b/docs/apps/incubator/tvheadend/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +TVheadend - a TV streaming server and digital video recorder + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `tvheadend` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `tvheadend` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/incubator/unifi/CONFIG.md b/docs/apps/incubator/unifi/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/incubator/unifi/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/incubator/unifi/index.md b/docs/apps/incubator/unifi/index.md new file mode 100644 index 00000000000..d64dca1470e --- /dev/null +++ b/docs/apps/incubator/unifi/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Ubiquiti Network's Unifi Controller + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `unifi` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `unifi` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/collabora-online/CONFIG.md b/docs/apps/stable/collabora-online/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/collabora-online/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/collabora-online/index.md b/docs/apps/stable/collabora-online/index.md new file mode 100644 index 00000000000..28bec90895f --- /dev/null +++ b/docs/apps/stable/collabora-online/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `collabora-online` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `collabora-online` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/collabora-online/notes.md b/docs/apps/stable/collabora-online/notes.md new file mode 100644 index 00000000000..50d89398cec --- /dev/null +++ b/docs/apps/stable/collabora-online/notes.md @@ -0,0 +1,8 @@ +# Installation Notes + +* If you don't enable `Reverse Proxy` on `Collabora` (It's not recommended as it is unsecure), in order for it to work you have to + * Remove `-o:ssl.termination=true -o:ssl.enable=false` from `Extra Parameters`. + * Set `Server Name` to `hostIP:port` (The port number you set for `NodePort`) + * Set `Service type` to `NodePort` + * Set `Port type` to `HTTPS` + * Disable certificate validation in the app you are going to use it. (eg. Nextcloud have a checkbox under Collabora's URL to disable Cert Validtation) diff --git a/docs/apps/stable/emby/CONFIG.md b/docs/apps/stable/emby/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/emby/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/emby/index.md b/docs/apps/stable/emby/index.md new file mode 100644 index 00000000000..bc7ee43f54e --- /dev/null +++ b/docs/apps/stable/emby/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Emby Server is a home media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `emby` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `emby` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/esphome/CONFIG.md b/docs/apps/stable/esphome/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/esphome/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/esphome/index.md b/docs/apps/stable/esphome/index.md new file mode 100644 index 00000000000..8a67fc3f9ba --- /dev/null +++ b/docs/apps/stable/esphome/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `esphome` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `esphome` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/handbrake/CONFIG.md b/docs/apps/stable/handbrake/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/handbrake/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/handbrake/index.md b/docs/apps/stable/handbrake/index.md new file mode 100644 index 00000000000..9caca97e9cd --- /dev/null +++ b/docs/apps/stable/handbrake/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `handbrake` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `handbrake` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/handbrake/notes.md b/docs/apps/stable/handbrake/notes.md new file mode 100644 index 00000000000..bb946ce21b5 --- /dev/null +++ b/docs/apps/stable/handbrake/notes.md @@ -0,0 +1,6 @@ +# Installation Notes + +* If you enable `Reverse Proxy` for `Handbrake`, you need to have `SECURE_CONNECTION` set to `0` and `Port Type` set to `HTTP`, otherwise you may run into errors for `Too many redirects`. +* `VNC` can't be `Reversed Proxied`. if you want to use `VNC`, you must set this service to `NodePort` instead of `clusterIP`. +* `VNC` with `SECURE_CONNECTION` set 1, only works with very few clients. One of them is `SSVNC`. +* `SECURE_CONNECTION` affects both `WebUI` and `VNC`. diff --git a/docs/apps/stable/home-assistant/CONFIG.md b/docs/apps/stable/home-assistant/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/home-assistant/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/home-assistant/index.md b/docs/apps/stable/home-assistant/index.md new file mode 100644 index 00000000000..3c252b5b123 --- /dev/null +++ b/docs/apps/stable/home-assistant/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +home-assistant App for TrueNAS SCALE + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `home-assistant` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `home-assistant` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/jackett/CONFIG.md b/docs/apps/stable/jackett/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/jackett/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/jackett/index.md b/docs/apps/stable/jackett/index.md new file mode 100644 index 00000000000..71a39d88691 --- /dev/null +++ b/docs/apps/stable/jackett/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `jackett` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `jackett` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/jellyfin/CONFIG.md b/docs/apps/stable/jellyfin/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/jellyfin/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/jellyfin/index.md b/docs/apps/stable/jellyfin/index.md new file mode 100644 index 00000000000..3ffd34dab55 --- /dev/null +++ b/docs/apps/stable/jellyfin/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Jellyfin is a Free Software Media System + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `jellyfin` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `jellyfin` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/kms/CONFIG.md b/docs/apps/stable/kms/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/kms/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/kms/index.md b/docs/apps/stable/kms/index.md new file mode 100644 index 00000000000..d73ae202cc7 --- /dev/null +++ b/docs/apps/stable/kms/index.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: minimal](https://img.shields.io/badge/AppVersion-minimal-informational?style=flat-square) + +Private Windows Activation Server for development and testing + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `kms` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `kms` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/lidarr/CONFIG.md b/docs/apps/stable/lidarr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/lidarr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/lidarr/index.md b/docs/apps/stable/lidarr/index.md new file mode 100644 index 00000000000..fda35dda068 --- /dev/null +++ b/docs/apps/stable/lidarr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Looks and smells like Sonarr but made for music + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `lidarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `lidarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/ombi/CONFIG.md b/docs/apps/stable/ombi/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/ombi/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/ombi/index.md b/docs/apps/stable/ombi/index.md new file mode 100644 index 00000000000..528b12ffeeb --- /dev/null +++ b/docs/apps/stable/ombi/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Want a Movie or TV Show on Plex or Emby? Use Ombi! + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `ombi` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `ombi` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/plex/CONFIG.md b/docs/apps/stable/plex/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/plex/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/plex/index.md b/docs/apps/stable/plex/index.md new file mode 100644 index 00000000000..46204cef901 --- /dev/null +++ b/docs/apps/stable/plex/index.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `plex` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `plex` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/radarr/CONFIG.md b/docs/apps/stable/radarr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/radarr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/radarr/index.md b/docs/apps/stable/radarr/index.md new file mode 100644 index 00000000000..738b7a22cf8 --- /dev/null +++ b/docs/apps/stable/radarr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A fork of Sonarr to work with movies à la Couchpotato + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `radarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `radarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/sonarr/CONFIG.md b/docs/apps/stable/sonarr/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/sonarr/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/sonarr/index.md b/docs/apps/stable/sonarr/index.md new file mode 100644 index 00000000000..d73012b6ff3 --- /dev/null +++ b/docs/apps/stable/sonarr/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Smart PVR for newsgroup and bittorrent users + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `sonarr` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `sonarr` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/tautulli/CONFIG.md b/docs/apps/stable/tautulli/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/tautulli/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/tautulli/index.md b/docs/apps/stable/tautulli/index.md new file mode 100644 index 00000000000..cda3f0db269 --- /dev/null +++ b/docs/apps/stable/tautulli/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A Python based monitoring and tracking tool for Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `tautulli` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `tautulli` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/traefik/CONFIG.md b/docs/apps/stable/traefik/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/traefik/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/traefik/LICENSE.md b/docs/apps/stable/traefik/LICENSE.md new file mode 100644 index 00000000000..833ba9da683 --- /dev/null +++ b/docs/apps/stable/traefik/LICENSE.md @@ -0,0 +1,204 @@ +# License
+ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Containous + Copyright 2020 Traefik Labs + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/apps/stable/traefik/externalservices.md b/docs/apps/stable/traefik/externalservices.md new file mode 100644 index 00000000000..1a2089d0089 --- /dev/null +++ b/docs/apps/stable/traefik/externalservices.md @@ -0,0 +1,11 @@ +# External Service + +Some users may want to use Traefik for things that are not part of a TrueNAS SCALE App. For these users we support "External Services". + +"External Services" are an advanced configuration option that lets you forward Traefik from Ingress to a service outside of the Container network. For example: A TrueNAS Host system. This allows you to, for example, use the same SSL certificates for both services inside and outside the TrueNAS SCALE App ecosystem. + +##### Configuration + +External Services require both the IP Address and Port of the service you want to forward. These will internally create a special 'service' that receives traffic on the same ports (internally) and forwards it to the external service. + +Additionally it creates an ingress which forwards traffic to the special forwarding service. diff --git a/docs/apps/stable/traefik/index.md b/docs/apps/stable/traefik/index.md new file mode 100644 index 00000000000..ccd59d7a68e --- /dev/null +++ b/docs/apps/stable/traefik/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +A Traefik based Reverse Proxy and Certificate Manager + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `traefik` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `traefik` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/traefik/used-ports.md b/docs/apps/stable/traefik/used-ports.md new file mode 100644 index 00000000000..75f1ccaaa0e --- /dev/null +++ b/docs/apps/stable/traefik/used-ports.md @@ -0,0 +1,37 @@ +# Used Ports + +Traefik forwards traffic for a lot of applications and we don't want to require from users to edit its configuration. + +This means that by default Traefik will claim a lot of ports from the node. Please be aware: these ports can NOT be used by other applications as NodePorts. Under "Advanced" we offer options to disable exposing these ports, freeing them for other applications, or altering the port numbers. + +Note that these default ports also clash with the defaults for the TrueNAS SCALE UI. To avoid losing access to the UI after Traefik starts up, go to System Settings -> General and edit the GUI settings to listen on a different port. +###### Used Port List + + +- **web:** 80 + +- **websecure:** 443 + +- **plex:** 32400 + +- **kms:** 1688 + +- **dns-tcp:** 53 + +- **dns-udp:** 53/UDP + +- **stun-tcp:** 3478 + +- **stun-udp:** 3478/UDP + +- **torrent-tcp:** 51413 + +- **torrent-udp:** 51413/UDP + +- **radius:** 1812 + +- **radius-acc:** 1813 + +- **ldaps:** 636 + +- **unificom:** 8080 diff --git a/docs/apps/stable/transmission/CONFIG.md b/docs/apps/stable/transmission/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/transmission/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/transmission/index.md b/docs/apps/stable/transmission/index.md new file mode 100644 index 00000000000..9da76697b02 --- /dev/null +++ b/docs/apps/stable/transmission/index.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +API Support for your favorite torrent trackers. + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `transmission` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `transmission` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/stable/zwavejs2mqtt/CONFIG.md b/docs/apps/stable/zwavejs2mqtt/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/docs/apps/stable/zwavejs2mqtt/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/stable/zwavejs2mqtt/index.md b/docs/apps/stable/zwavejs2mqtt/index.md new file mode 100644 index 00000000000..9e93eef4226 --- /dev/null +++ b/docs/apps/stable/zwavejs2mqtt/index.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `zwavejs2mqtt` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `zwavejs2mqtt` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/.github/docs/development/chart-structure.md b/docs/development/app development/chart-structure.md similarity index 100% rename from .github/docs/development/chart-structure.md rename to docs/development/app development/chart-structure.md diff --git a/.github/docs/development/chart-yaml-structure.md b/docs/development/app development/chart-yaml-structure.md similarity index 92% rename from .github/docs/development/chart-yaml-structure.md rename to docs/development/app development/chart-yaml-structure.md index 8c59d9046d8..caef727eccd 100644 --- a/.github/docs/development/chart-yaml-structure.md +++ b/docs/development/app development/chart-yaml-structure.md @@ -1,7 +1,7 @@ # Chart.yaml layout At TrueCharts we try to keep some files standardised, this enables us to make changes to these charts in bulk with less risk of mistakes. Chart.yaml is one of these files. -In this documentation we will explain the standardised layout options. For an example layout, please see our standard Chart.yaml [template](https://github.com/truecharts/charts/tree/master/.tools/templates/chart/Chart.yaml) +In this documentation we will explain the standardised layout options. For an example layout, please see our standard Chart.yaml [template](https://github.com/truecharts/apps/tree/master/.tools/templates/chart/Chart.yaml) ### Layout Explained @@ -44,7 +44,7 @@ annotations: In the above description there are a lot of values that are not actually used. Some of those, like `deprecated`, we just set to false. While others, like `annotations` get commented out. -Please refer to our standard Chart.yaml [template](https://github.com/truecharts/charts/tree/master/.tools/templates/chart/Chart.yaml) to see which unused values needs which treatment. +Please refer to our standard Chart.yaml [template](https://github.com/truecharts/apps/tree/master/.tools/templates/chart/Chart.yaml) to see which unused values needs which treatment. ##### Dependencies @@ -55,7 +55,7 @@ All other dependencies are expected to be listed in alphabetical order. ##### Maintainers The first maintainer should always be TrueCharts, as the TrueCharts core team is expected to step in if the other maintainers fail to maintain their work. -An example of how to list TrueCharts as a maintainer is available in our standard Chart.yaml [template](https://github.com/truecharts/charts/tree/master/.tools/templates/chart/Chart.yaml). +An example of how to list TrueCharts as a maintainer is available in our standard Chart.yaml [template](https://github.com/truecharts/apps/tree/master/.tools/templates/chart/Chart.yaml). While currently we primarily use the CODEOWNERS file to define maintainers. We might in the future either automate keeping track of maintainers, completely rely on the maintainers or do both. For this reason it's important to add yourself as a maintainer if you expect to maintain your work. All other maintainers are, ofcoarse, expected to be entered in importance. With the primary maintainer under "truecharts" and secondary maintainers thereunder. diff --git a/.github/docs/development/common-libary.md b/docs/development/app development/common-libary.md similarity index 100% rename from .github/docs/development/common-libary.md rename to docs/development/app development/common-libary.md diff --git a/docs/development/app development/ingress.md b/docs/development/app development/ingress.md new file mode 100644 index 00000000000..e940961a6e1 --- /dev/null +++ b/docs/development/app development/ingress.md @@ -0,0 +1,366 @@ +# Ingress + +Ingress is what we call "Reverse Proxy" in the UI and in the user side of the documentation. Please be aware that those refer to the same system. An Ingress is, simply put, just Kubernetes way of connecting outsides to Apps running in containers. + +### Ingress Types + +We currently support: +- HTTP via Ingres +- HTTP via Traefik IngressRoute (HTTP-IR) +- TCP via Traefik IngressRouteTCP +- UDP via Traefik IngressRouteUDP + +From questions.yaml and the UI, these can be changed with selecting another "Type". However: Under the hood IngressRoutes and Ingress are totally different beasts and have a seperate creation process. Errors for Plain HTTP do NOT have to be present in HTTP-IR. + +It's also important to note that TCP (and even more so: UDP) have less options available. The example configurations below contain a mostly complete overview of what is currently available and reasonable. + +##### Ingress and Services + +It's important to know what Ingress does, before you start creating ingresses in questions.yaml. Ingresses send outside Traffic, to a kubernetes Service, which in turn forwards traffic to the actual containers. + +This means that every container needs to know how to reach their Service. If they do not, things go wrong. + +To ensure this, it's adviced to keep the names of your Ingresses the same as the names of your services. We made sure the ingress would automatically detect (and connect to) the main port of a Service with the same name. + +However: In case you need to do this differently, need to connect to additionalServices and/or need to connect to a secondary port, you can manually set both the serviceName and servicePort in questions.yaml. We advice however, to only do so if absolutely necessary! + +##### The Main Ingress + +The main Ingress and Main service take an important role in our standardisation. Where the main Service is used for healthchecks and the "portal" button, the main Ingress is just used for the portal button. + +However: As the maintainers expect new features to be connecting to the main service and main ingress, it will cause problems if you decide to bypass/ignore these. + +### Standards/Examples + +We try to maintain as much of a standardised questions.yaml format as possible, to ensure (bulk) editing stays as easy as possible. + +##### HTTP Ingress + +``` + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: webui + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + +``` + +##### TCP Ingress + +``` + - variable: tcp + label: "TCP Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable TCP Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Select Reverse Proxy Type" + schema: + type: string + default: "TCP" + required: true + editable: false + hidden: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "torrent-tcp" + required: true + enum: + - value: "torrent-tcp" + description: "Torrent-TCP: port 51413" +``` + +##### UDP Ingress + +``` + - variable: udp + label: "UDP Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable UDP Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Select Reverse Proxy Type" + schema: + type: string + default: "UDP" + required: true + editable: false + hidden: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "torrent-udp" + required: true + enum: + - value: "torrent-udp" + description: "Torrent-UDP: port 51413" +``` + +### Other Ingress options + +There are a few other options that are rarely (if ever) used. + +##### servicePort + +``` + - variable: servicePort + label: "Service Port to proxy to" + schema: + hidden: true + editable: false + type: int + default: 80 +``` + + +##### serviceKind + +``` + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" +``` + + +### External Services + +The externalServices option, is actually mostly an Ingress "under the hood" which just creates a very small (minimal) service. + +``` + - variable: externalServices + label: "(Advanced) Add External Services" + group: "Advanced" + schema: + type: list + default: [] + items: + - variable: externalService + label: "External Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + hidden: true + editable: false + default: true + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: serviceTarget + label: "IP Adress of the external service" + schema: + hidden: false + editable: true + required: true + type: string + default: "192.168.0.0" + - variable: servicePort + label: "External Service Port" + description: "The port on the external service you want to proxy" + schema: + hidden: false + required: true + editable: true + type: int + default: 80 + - variable: serviceType + label: "Connection Type" + description: "Connection Type between Traefik and the external service" + schema: + hidden: false + editable: true + required: true + default: "HTTP" + type: string + enum: + - value: "HTTP" + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: false + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" +``` diff --git a/docs/development/app development/portal.md b/docs/development/app development/portal.md new file mode 100644 index 00000000000..cf8d8b0e92f --- /dev/null +++ b/docs/development/app development/portal.md @@ -0,0 +1,66 @@ +# Portal Button + +After installation almost every app should have a "portal" button. This button is an easy and streamlined way of entering the Applications after installation. However, one should be aware that it does not magically follow changes inside the application (for example: from http to https). + +##### questions.yaml example + +Every questions.yaml file should contain the following snippets to enable the portal button. Please be aware to change `"http"` to `"https"` in services.main.port.protocol if your application uses http instead of https when running using "NodePort". + +Also please be aware that the portal only(!) points towards the main service, main service port and main ingress. + +``` +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + +``` + +There are also some additional (advanced) options availale, these can be added below the above required portion as required: + +**ingressPort:** +``` + - variable: ingressPort + label: "Port when ingress is not using 443" + description: "Advanced setting, please enter a different port to use if Ingress uses something other than port 443" + schema: + hidden: true + editable: false + type: int + default: 8443 +``` + +**host:** +``` + - variable: host + label: "override Host when using NodePort" + description: "Overrides the host setting when using NodePort. Example usecase would be loadbalanced NodePorts." + schema: + hidden: true + editable: false + type: string + default: "test.com" +``` diff --git a/.github/docs/development/questions-yaml.md b/docs/development/app development/questions-yaml.md similarity index 78% rename from .github/docs/development/questions-yaml.md rename to docs/development/app development/questions-yaml.md index 5dc2476af36..dabdd59ccd6 100644 --- a/.github/docs/development/questions-yaml.md +++ b/docs/development/app development/questions-yaml.md @@ -94,6 +94,31 @@ To minimise the maintenance load of our App collection, we always aim to standar Be aware that sometimes specific functions might or might not completely function. Leaving them out would, however, everely increase the maintenance load and often said functionality will be added in the common-chart later on anyway. +##### Groups + +To make sure all apps stay somewhat the same, we use a standardised `groups:` section. Please make sure to use this in your Apps: + +``` +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "WARNING" + description: "WARNING" +``` + + ##### General Configuration options These options are always included because almost every chart (eventually) has a use for them and/or other parts of the common chart depend on them. @@ -156,53 +181,3 @@ They are called general options, because they affect the basic functionalities o schema: type: string ``` - -##### Main Service - -Services in Kubernetes (the underlaying framework in TrueNAS SCALE), are (simply put) internal loadbalancers. Besides being load balancers, they are always guaranteed to be reachable by (internal!) DNS name and (in some cases) prevent traffic from reaching your App when the healthcheck isn't finished yet (or is failing). - -Every App is required to have a main service, the primary thing that users (or other Apps!) connect with. No mater if it's a webUI, an API, a database connection or something totally else, A service is always required. - -Please keep in mind that every App is different, some just have one service (the primary one) and others need more (which get defined in `appAdditionalService`). Every App also uses different ports, so please alter accordingly. - -``` - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true -``` - -_ Note: Our final main service format has not been fully completed as of yet, this might change the above snipped considerably_ diff --git a/docs/development/app development/services.md b/docs/development/app development/services.md new file mode 100644 index 00000000000..43c1fbd2ff6 --- /dev/null +++ b/docs/development/app development/services.md @@ -0,0 +1,164 @@ +# Services + +Every App needs to be exposed to something, either an UI, API or other containers.However with Kubernetes we don't directly connect to the containers running the App, because those might be on another node or there might be multiple "high available" containers for the App. Instead we use what is called `Services`. Services are simply put "Internal Load-Balancers", they also guaranteed to be reachable by (internal!) DNS name and (in some cases) prevent traffic from reaching your App when the healthcheck isn't finished yet (or is failing). + +### Two kinds of services + +##### First: hostNetwork + +Always add the hostNetwork option above the "services" section. +This is to try and keep things clear for the user. + +``` + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false +``` + +##### Main Service + +Every App is required to have a main service, the primary thing that users (or other Apps!) connect with. No mater if it's a webUI, an API, a database connection or something totally else, A service is always required. + +Please keep in mind that every App is different, some just have one service (which *ALWAYS* has to be called `main`) and others need more (which each has to have an unique name). Every App also uses different ports, so please alter accordingly. + +``` + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "nodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true +``` + +##### Unlimited custom services + +in some edgecases users might need or want to have the option to add unlimited custom Services. While we _highly_ suggest not doing so, these services can be added with the following standardised template: + +``` + - variable: additionalServices + label: "Custom Services" + group: "Networking" + schema: + type: list + default: [] + items: + - variable: additionalService + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "nodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +``` diff --git a/.github/docs/development/storage.md b/docs/development/app development/storage.md similarity index 98% rename from .github/docs/development/storage.md rename to docs/development/app development/storage.md index 073674d1210..3714fd53748 100644 --- a/.github/docs/development/storage.md +++ b/docs/development/app development/storage.md @@ -19,7 +19,7 @@ Preventing the user to disable them, ensures that users don't (by mistake) remov ``` - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -60,6 +60,7 @@ Preventing the user to disable them, ensures that users don't (by mistake) remov default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -92,7 +93,7 @@ It should always be included in any App, to give users the option to customise t ``` - variable: additionalAppVolumeMounts label: "Custom app storage" - group: "Storage" + group: "Storage and Devices" schema: type: list default: [] diff --git a/.github/docs/development/unit-tests.md b/docs/development/app development/unit-tests.md similarity index 100% rename from .github/docs/development/unit-tests.md rename to docs/development/app development/unit-tests.md diff --git a/docs/development/app development/values-yaml.md b/docs/development/app development/values-yaml.md new file mode 100644 index 00000000000..3fe8b4c065c --- /dev/null +++ b/docs/development/app development/values-yaml.md @@ -0,0 +1,52 @@ +# Values.yaml Files + +Values.yaml files generally always contain configuration setting for Helm charts, TrueCharts is no different. +However, we have multiple different values.yaml files, with different goals. Because TrueNAS SCALE just works slightly differently from standard Helm Charts + +### The Files + +##### values.yaml + +The normal file with default setting in helm charts. However, for our non-library and non-dependency charts, this is not used for TrueCharts. As questions.yaml generates configs on demand (with addition of ix_values.yaml), this file might interfere with some Helm operations combined with the questions.yaml or test_values.yaml systems or cause unexpected behavior if used. + +##### ix_values.yaml + +This file contains config values that are not included in questions.yaml, but should be copied into the resulting configuration anyway. It's mostly used to ensure setting can be changed by the maintainer with every update, such as versions, which is not possible when setting things as defaults inside questions.yaml + +This file is, however, not very well checked by validation and CI. Use it when you absolutely have to. + +One important setting in ix_values.yaml is the optional setting: `startAsRoot: true` +This setting is a compatibility toggle for containers that need to be started by root, often these containers use PUID and PGID to descalate (lower) away from root but require it to start. + +A minimal example ix_values.yaml would be: + +``` +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jacobalberty/unifi + tag: 6.0.45 + pullPolicy: IfNotPresent + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## + +``` + + +##### test_values.yaml + +Our Apps often use special features of TrueNAS inside questions.yaml and our charts. However these features are not (always) compatible with stock Helm. Therefore we define a set of seperate "test" values.yaml setting that get used when we run the test CI. + +They should, however, be as close as possible to your "actual" default settings in questions.yaml + +##### default_values.yaml + +This on is the "odd one" of the bunch. We prefer not to use it for actual default, but to store default when porting charts from upstream. diff --git a/docs/development/app-addition.md b/docs/development/app-addition.md new file mode 100644 index 00000000000..cd7f9e9bdc2 --- /dev/null +++ b/docs/development/app-addition.md @@ -0,0 +1,30 @@ +# App Addition Guidelines + +Though we aim to be as open to contributions, at TrueCharts we still sometimes have to decide which Apps we do and do not add to our catalog. This document aims to give some guidelines in how we are going to make such decisions. + +### Guidelines + +##### Target Audience + +- Our target audience is Home and SMB users +- While we currently support only one node, due to TrueNAS SCALE constraints, we aim for a maximum adviced deployment size of 10 Nodes and/or 50 Drives. This is in line with what we expect our target audience to be + + +##### Commercial vs non-commercial + +- Apps that are only useable for paying customers are a no-go +- Apps that are trial-ware to non-paying customers are a no-go. Apps that have an enterprise option, that doesn't obstruct the open-core version are generally allowed +- Apps that are open-source are prefered over closed-source Apps. If opensource alternatives are available we might not approve a closed-source App. +- If a company or official maintainer submits an App, we expect them to maintain it themselves. We do not have the resources to work for external projects. + +##### Update Policies and stability + +- We expect Apps to have decent security (options) in place +- We expect Apps not to contain higher-level CVE's +- We prefer Apps that are actively maintained. Expect Apps that are abandoned (or barely maintained) for a year or more to even be removed, as we do not expect those to be secure. + +##### App design + +- Apps charts are expected to be kept as simple as possible, preferably using the common-chart where-ever possible. +- It's adviced to only deploy HA versions of apps if they are relatively simple. Complicated Apps (with addon operators and load balancers for example), should only be used in key area's because they are harder to maintain. +- We aim for a "1 App - 1 DB - 1 DB Instance" solution, because small single DB instances can be easily spread over multiple nodes in the future. diff --git a/docs/development/container development/index.md b/docs/development/container development/index.md new file mode 100644 index 00000000000..3b26a37280a --- /dev/null +++ b/docs/development/container development/index.md @@ -0,0 +1,20 @@ +# Container Images + +These [container images](https://github.com/truecharts/containers) are tailored for Kubernetes. + +## Purpose + +The goal of this project and the container images are to support [Semantic Versioning](https://semver.org/), security and native K8S support. +We try to keep a [KISS principle](https://en.wikipedia.org/wiki/KISS_principle) when building these images, which means no [s6-overlay](https://github.com/just-containers/s6-overlay) and all images are built on top of [ubuntu:focal](https://hub.docker.com/_/ubuntu). + +## Configuration + +In order to get the Container images repository and tags see [here](https://github.com/orgs/truecharts/packages?ecosystem=container&visibility=public). + +For configuration and documentation see [here](https://truecharts/containers/getting-started/). + +## Support + +We have several different methods for getting support. + +- [GitHub Discussions](https://github.com/truecharts/apps/discussions) diff --git a/docs/development/contributing.md b/docs/development/contributing.md new file mode 100644 index 00000000000..a6af5331ac4 --- /dev/null +++ b/docs/development/contributing.md @@ -0,0 +1,77 @@ +# Contribution Guidelines + +This project welcomes any and all input, but we need to have a few quality guidelines. These guidelines will be examplained here, in this document. + +### GIT Guidelines +*** +#### New to GIT + +If you have never used git before, you can look up our general reference on our wiki. + +#### Git and You + +GIT is a fantastic system, but while using it we have a few guidelines to keep it fantastic for everyone. + +* Submit complete PR's. +* Add [DNM] if you do not want your PR merged yet. +* Always try and fill in the whole form, even for small PR's. +* Don't close when a reviewer requests changes (just push the changes or ask for help). +* Explain what you did in your PR. +* Be thorough. +* If you can add screenshots to clarify. +* Always try to add "Fixes #000" (where 000 is the Issue your PR fixes) +* found something you want to fix yourself? Please do make an issue too. + +### Structure Guidelines +*** + +#### Inclusion of files and folders + +Although GIT is quite friendly in what it accepts in terms of files and folder changes in a commit, a reviewer's or bugfixer's time is not unlimited. For that reason, we have a few specific guidelines in regards to the inclusion of files and folders in your PR. + +* Only include files you actually changed. +* Try not to include multiple changes in one PR +* Want to change the formatting of multiple files too? Make a separate PR. + + +### Code Guidelines +*** +#### Your code, your style, my review + +Here at TrueCharts, we value people having their own style. But your code needs to be reviewable and editable by others too. For that reason, we have a few basic coding guidelines + +* **Always** explain regex in a comment within your code. +* Write simple code and don't try to impress. +* We will run (Basic) automated reformating of code once in a while. +* Document your changes in your code and if need be, on the wiki. +* All PR's should be able to pass our automated tests. + +#### Apps requirements + +- Apps should always save user-specific data in a persistant location. That can be connected by both IXVolume or Hostpath +- Apps should not require the user to edit any config file themselves. All config changes should be either automated or using the UI +- Apps should not use default passwords, the user should always be forced(!) to put credentials in manually + + +### Review Guidelines +*** +Even us review gods need some guidelines once in a while. + +* Let people learn from their mistakes +* Review instead of merging without comments +* Abide by these guidelines in your review +* Tests exist for a reason. Don't merge with test-failures + + + +### Todo vs Feature vs bug: +*** +Please take note of the difference between a TODO and Feature + +* Bug: An unexpected behavior of the script or a crash. Including, but not limited to, errors and warnings. +* Todo: When you come across something that needs tweaking/adding during development, is not an unexpected behavior +* Feature: When you, out of personal preference, want something added or changed. + +### That's it! +*** +Someone will come along and review the changes. If everything looks good then they will merge it with the main repo. If you need any help don't be afraid to ask in the discord channel: [https://discord.gg/tFcTpBp](https://discord.gg/tFcTpBp) diff --git a/.github/docs/development/getting-started.md b/docs/development/getting-started.md similarity index 95% rename from .github/docs/development/getting-started.md rename to docs/development/getting-started.md index 15f9635e1b0..74b68ed24cf 100644 --- a/.github/docs/development/getting-started.md +++ b/docs/development/getting-started.md @@ -20,7 +20,7 @@ You will need these to start your journey: ### Setting up your dev environment -If you already know what you're doing, go to our [GitHub](https://github.com/truecharts/charts) and fork. Otherwise, look at this picture, from now on this will be the **contribution cycle**. This is how our workflow will look at the end of the tutorial. +If you already know what you're doing, go to our [GitHub](https://github.com/truecharts/apps) and fork. Otherwise, look at this picture, from now on this will be the **contribution cycle**. This is how our workflow will look at the end of the tutorial. Contribution cycle @@ -28,7 +28,7 @@ If you already know what you're doing, go to our [GitHub](https://github.com/tru What's that? You have no idea what any of that means? Worry not, my fellow contributor! I will guide you step by step. -First, you did your [GitHub account](https://github.com/) account as suggested, right? Good. We will now visit the [TrueCharts Repository in GitHub](https://github.com/truecharts/charts) and click this little button located at the top right corner of the page: +First, you did your [GitHub account](https://github.com/) account as suggested, right? Good. We will now visit the [TrueCharts Repository in GitHub](https://github.com/truecharts/apps) and click this little button located at the top right corner of the page: ![Fork button](https://i.imgur.com/lw1XYPS.png) @@ -78,7 +78,7 @@ Are you done downloading? Awesome! Now your local repo is automagically soul-lin | GitHub Desktop | Git Bash | | :------------------------: | :----------------------------------------------------------: | -| This is automagically done | Navigate to the folder where your local repo is
``git remote add upstream https://github.com/truecharts/charts.git``
Now to make sure everything is in order, we do
``git remote -v``
and it should show both repos, yours in **origin** and central in **upstream** | +| This is automagically done | Navigate to the folder where your local repo is
``git remote add upstream https://github.com/truecharts/apps.git``
Now to make sure everything is in order, we do
``git remote -v``
and it should show both repos, yours in **origin** and central in **upstream** | ##### Setting up Pre-Commit @@ -142,7 +142,7 @@ Now all that is missing is publishing your commits to your remote (**origin**) #### Making a PR -A **P**ull **R**equest is the only way to get your changes into the central version of the game. You do a PR by **committing** your changes and **pushing them** to your remote repo (**origin**). Then, visit the [TrueCharts Repository in GitHub](https://github.com/truecharts/charts) and click this green button: +A **P**ull **R**equest is the only way to get your changes into the central version of the game. You do a PR by **committing** your changes and **pushing them** to your remote repo (**origin**). Then, visit the [TrueCharts Repository in GitHub](https://github.com/truecharts/apps) and click this green button: ![make a pr button](https://i.imgur.com/yt2QJd4.png) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000000..60c71de5f84 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,54 @@ +--- +hide: + - navigation # Hide navigation + - toc # Hide table of contents +--- + + +TrueCharts is the community that maintains TrueCharts. + +### TrueCharts +TrueCharts is a catalog of highly optimised TrueNAS SCALE Apps. Made for the community, By the community! +If you are interested in using TrueCharts, please visit us on github [github](https://github.com/truecharts/apps/) + +--- + +### Supported operating systems + +While we always aim for our charts to be fully stock-kubernetes compatbile, we can only guarantee compatibility with TrueNAS SCALE Apps. As we are primarily a TrueNAS SCALE App catalog. + +Though we try to make our Apps as version independent as possible we have a limited capacity to support older versions of TrueNAS SCALE. Our focus is the current version of TrueNAS. + +That being said: We do look forward to contributions to improve support for stock-kubernetes for our Charts! + +### Development + +Our development proces is fully distributed and agile, every chart-maintainer is free to set their own roadmap and development speed and does not have to comply to a centralised roadmap. + +This ensures freedom and flexibility for everyone involved and makes sure you, the end user, always has the latest and greated of every App installed. + +#### Roadmap + +However for big "breaking" changes we do have a roadmap during the ALPHA and BETA stages of TrueNAS SCALE. +Assuming the release dates of TrueNAS SCALE will keep following the previous 2 months between releases, we will have the following big milestones: + +--- + +- TrueCharts DB Edition - TrueNAS SCALE 21.06 + +_This release will focus on adding a solid framework of using (and adding) databases to Apps within TrueCharts. This will lead to significantly more App possibilities and performance increases for existing Apps._ + +--- + +### Featured Projects + +A lot of our work is based on the great effort of others. We would love to extend special thanks to these projects we owe a lot to: + +| | | | +| :---------------: | :---------------: | :---------------: | +| TrueNAS SCALE | K8S-At-Home | Traefik | + + +### Support or Contact + +Having trouble with TrueCharts? Check out the documentation available on this website or our [github](https://github.com/truecharts/apps/) and we’ll help you sort it out. diff --git a/docs/index.yaml b/docs/index.yaml new file mode 100644 index 00000000000..542703ee485 --- /dev/null +++ b/docs/index.yaml @@ -0,0 +1,52 @@ +apiVersion: v1 +entries: + common: + - apiVersion: v2 + created: "2021-03-17T14:27:24.125854125Z" + description: Function library for TrueCharts + digest: 41a2bf000d3a9ed7959b1d10690121869593c86c8f689bf70a652e98798c3e88 + home: https://github.com/truecharts/apps/tree/master/common + keywords: + - truecharts + - library-chart + - common + kubeVersion: '>=1.16.0-0' + maintainers: + - email: info@truecharts.org + name: TrueCharts + url: truecharts.org + name: common + sources: + - https://github.com/truecharts/apps/tree/master/library/common + type: library + urls: + - https://github.com/truecharts/apps/releases/download/common-2.0.0/common-2.0.0.tgz + version: 2.0.0 + common-test: + - apiVersion: v2 + created: "2021-03-17T14:27:24.209993243Z" + dependencies: + - name: common + repository: file://../common + version: n/a + description: Helper chart to test different use cases of the common library + digest: 62611017e79eaaa94b57cd5229bb1058b9780e19eb502f9f54b5ae1903b67374 + home: https://github.com/truecharts/apps/tree/master/library/common-test + keywords: + - common-test + - truecharts + - common + - test + kubeVersion: '>=1.16.0-0' + maintainers: + - email: info@truecharts.org + name: TrueCharts + url: truecharts.org + name: common-test + sources: + - https://github.com/truecharts/apps/tree/master/library/common-test + type: application + urls: + - https://github.com/truecharts/apps/releases/download/common-test-2.0.0/common-test-2.0.0.tgz + version: 2.0.0 +generated: "2021-03-17T14:27:24.209999643Z" diff --git a/docs/manual/Migration Guides/index.md b/docs/manual/Migration Guides/index.md new file mode 100644 index 00000000000..efa6a87b2c8 --- /dev/null +++ b/docs/manual/Migration Guides/index.md @@ -0,0 +1,23 @@ +# Migration Guides + +Sometimes we can not guarantee automatic updating between new versions of our Apps. +These pages include some common scenario's and give some guidance how to manually move between different versions and Trains. + +##### Between Trains + +An app will always be just in one train. If an App moves to a different train, you will not be able to update automatically +Our basic guidence for these cases is: + + +- Backup all your files, config and databases. +- Make notes on how you set up your app previously +- Delete the old App +- Install the new app using your previously made setup notes +- Stop the new App +- Put back all your old files. +- Re start the new App + +##### Between Versions + +When new versions introduce breaking changes (which would often be major version changes) they might(!) require the user to reinstall. +However: We often already provide migration scrips and dealth with these issues manually. diff --git a/docs/manual/adding-truecharts.md b/docs/manual/adding-truecharts.md new file mode 100644 index 00000000000..c4b566eba54 --- /dev/null +++ b/docs/manual/adding-truecharts.md @@ -0,0 +1,43 @@ +# Adding TrueCharts to SCALE + +Adding the TrueCharts Community App Catalog is relatively straight forwards. + +##### Requirements + +- Make sure your storage-pool is created and working +- Make Make sure you selected your storage-pool when you first opened the "Apps" interface, if not please refert to the TrueNAS SCALE documentation how to setup your Apps using the apps settings menu. +- Make sure you have a working internet connection and can reach github and truecharts.org from the host system. + +##### Adding TrueCharts + +- Go to "Apps" in the left hand menu +- Select the "Manage Catalogs" tab +- Click "Add Catalog" and enter the required information: + +Name: `truecharts` + +Repository: `https://github.com/truecharts/apps` + +Preferred Trains: `stable` (and optionally: `incubator`) + +Branch: `master` + +##### Difference between Stable and Incubator + +TrueCharts has 2 trains: `Staging` and `Incubator`. Both trains contain Apps that should work fine. However they have a slightly different meaning: + +`Staging` Contains Apps that have an active maintainer that uses and maintains these Apps. This person guarantees that the Apps should function without issues. They also are reviewed more strictly before being accepted into `Stable`, for both security and stability. + +`Incubator` Contains Apps that either do not have an active maintainer or are not fully reviewed to comply to all our technical guidelines. They should, however, still function without issues. + +##### Adding TrueCharts on TrueNAS SCALE 21.02ALPHA + +Because we are very close to release of TrueNAS SCALE 21.04ALPHA and we have made considerably bugfixes and rewrites of code already, TrueNAS SCALE 21.02ALPHA is considered to be depricated by the TrueCharts team. +However: Your old installed apps should still be available in the "installed applications" section. + +In case you really need to add the old "legacy" version of TrueCharts, you can install a special legacy branch named `legacy_21.02ALPHA` + + +##### Notes + +- If this doesn't work right away, try clicking "Refresh Catalogs". diff --git a/docs/manual/certificates.md b/docs/manual/certificates.md new file mode 100644 index 00000000000..80265ce0364 --- /dev/null +++ b/docs/manual/certificates.md @@ -0,0 +1,84 @@ +# How to: Create Certificates + +At TrueCharts we support HTTPS deployments of every app using our Traefik Reverse Proxy. We support both self-signed, custom and lets-encrypt certificates, using the TrueNAS SCALE building certificate manager. Available under "Credentials" + +### Self Signed certificates + +Self signed certificates are relatively straight forward and handled by Traefik itself. You just select "self signed" when adding a reverse-proxy to your App and Traefik does the rest! + +Please be aware that these certificates are not really secure, but are "good enough" for testing. + +### Lets-Encrypt Certificates + +With the current version of TrueNAS SCALE, it's possible to automatically generate certificates for your domain(s) using letsencrypt. However, this process is not very clear, hence we added a short how-to guide on getting up-and-running with TrueNAS SCALE and Letsencrypt. +After you managed to complete this how-to, you should be able to select "iX Certificate" as certificate option and your personal certificate in the other drop-down box! + +##### Requirements + +To use iX Certificates with letsencrypt there are a few requirements: +- Preferably use a DNS server that doesn't have any caching (no local DNS server) for your TrueNAS system. +- Have an email address entered for your TrueNAS SCALE `root` user. (this email will also be used for letsencrypt reminder!) +- Own a domain name +- Use either Cloudflare or AWS Route53 for your domain. (In case you wonder: Using Cloudflare as DNS provider is free) +- Have an active internet connection so TrueNAS SCALE can contact Cloudflare or AWS to verify your domain ownership + +##### How-To + +- Click `Credentials` in the Left side menu and go the `Certificates` page. + + +TODO: Insert Screenshot + + +- Notice `ACME DNS-Authenticators`, select `Add` besides `ACME DNS-Authenticators` to open the menu for adding your DNS provider for domain verification. + + +TODO: Insert Screenshot + + +- Enter the required information and click `save`. +For Cloudflare you need either a global API-Key or a limited-scope API token. Please refer to cloudflare and/or AWS on how to get the required credentials. + + +TODO: Insert Screenshot + + +- Notice `Certificate Signing Requests`, select `Add` besides `Certificate Signing Requests` to open the menu for adding the domain information you want a certificate for. + +TODO: Insert Screenshot + + +- Enter all information required in the wizard and save it. +If you are not sure, the defaults are alsmost always "alright", because most of what you enter here is completely ignored by Letsencrypt. +`Common Name` in this case means `Primary domain name`, whereas `Subject Alternate Names` means `Extra domain names`. + + +TODO: Insert Screenshot + + +- Notice your new `Certificate Signing Request` showing up in the box below `Certificate Signing Requests`. Also notice the small `wrench` icon to the right of your `Certificate Signing Request` + + +- Click the small `wrench` icon, this will open the `Create ACME Certificate` menu. In this menu we can actually request either a real (Production) certificate or a testing (staging) certificate from Letsencrypt. +For clearity, it's advicable to use the same Authenticator for all domain names. However: It's okey to generate both a testing and a staging certificate for the same domain. + +- After saving and awaiting the generation proces, you should end up with another `Certificate Signing Request` and a new `Certificate` under `Certificates`, this new `Certificate Signing Request` is used to renew your `Certificate` in the future and should not be deleted! + +### Import existing certificates + +TrueNAS SCALE also allows you to manually import certificates, this is rather straight forward: +Copy-Paste the keys into their respective boxes and hit `save` + + +### Notes + +There are a few known bugs, issues and/or oddities currently in regards to Certificates + +##### Traefik not accepting/using certificates + +Sometimes you might notice Traefik ignores your certificate. This is most likely due to the domain on your certificate, being different from the domain you entered into the reverse proxy host box. +Traefik requires your certificate to match the domain used for Ingress. This is an upstream design decision and something we can easily and safely disable. + +##### New certificates not showing without refresh + +Currently recently added certificates will not show in the App UI, without hitting the button to refresh the App list. diff --git a/docs/manual/clustering.md b/docs/manual/clustering.md new file mode 100644 index 00000000000..ea183496fd3 --- /dev/null +++ b/docs/manual/clustering.md @@ -0,0 +1,48 @@ +# Clustering + +One of the eventual goals of SCALE is to run hyper-converged clusters based on ZFS, Gluster and Kubernetes. +While this is awesome, we like to highlight 3 ways of using Clustering with TrueCharts Apps in the future. + +Currently no clustering is supported with TrueCharts yet, but we already make precautions during our design phase to implement clustering smoothly in the future. + + + +##### Single-Pod Flexible + +These Apps (can) only run a single instance of a pod at a time, so no "high available" setup available. However these Apps can still dynamically moved over to different nodes if a node fails, this should make sure the downtime stays relatively small. +These apps can also be "spread" over all nodes by kubernetes. This also means it's worth cutting big Single-Pod Apps into multiple smaller deployements, For example: n we prefer to deploy small database servers with every App (as those can more dynamically be spread over multiple nodes) over one Big single-pod Flexbile App. + +Some examples of Apps that can not run with more than one pod at a time, even if we wanted to, are: + +- Sonarr +- Lidarr +- Radarr +- Plex + + + +##### Single-Pod non-flexible + +These Apps can not be run with more than 1 pod at a time and on the other hand are bound to a node. +This means: Host-Down? Pod-Down! + +Almost always this is caused by Apps being bound to a specific hardware setup. + +*Examples:* + +- zwavejs2mqtt +- HomeAssistant (depending on added hardware) +- Handbrake (depending on added hardware) + + + +##### High Availability Apps + +These Apps are designed to be the most resiliant of all, they can handle node failures and pod failures without any issue, because they always run multiple Pods at once that fill in once pods or nodes start failing. + +Because these Apps are also the most complicated of all, we try to limit them to key-area's of the TrueCharts ecosystem that can not be cut into smaller pieces (Single-Pod Flexible) easily. Like: Ingress and Monitoring. + +*Examples:* + + +- Traefik diff --git a/docs/manual/general-configuration.md b/docs/manual/general-configuration.md new file mode 100644 index 00000000000..b6012ccdb76 --- /dev/null +++ b/docs/manual/general-configuration.md @@ -0,0 +1,24 @@ +# General Configuration + +There are some setting that are always present on every App from TrueCharts. + +##### Explaination sheet: + +- **timezone** + +_Select your timezone for correct time inside the containers_ + + +- **PUID** + +_Select the user id of the user running your application. Defaults to 568 aka the `apps` user_ + + +- **PGID** + +_Select the group of the user running your application. Defaults to 568 aka the `apps` group_ + + +- **UMASK** + +_The mask here gets substracted from the default CHOWN setting of your App, it's an advanced setting and we advice not to change this unless you already know what UMASK does_. diff --git a/docs/manual/linking.md b/docs/manual/linking.md new file mode 100644 index 00000000000..1625857ceff --- /dev/null +++ b/docs/manual/linking.md @@ -0,0 +1,22 @@ +# Linking Apps Together + +We often need to connect individual apps together, for example: Ombi and Plex. This means we first need to know how to reach those Apps. + +##### Linking Apps Internally + +The backend for TrueNAS SCALE Apps is Kubernetes. Linking apps together in kubernetes is done slightly different than in other systems, as you can't point directly to other Containers using their IP-Address. + +Instead we need to use their internal(!) domain name. Please be ware: this name is only available between Apps and can not be reached from the host/node or your own PC. +The format for internal domain name for the main service is as follows, please replace `$APPNAME` with the name you gave your App when installing. + +`$APPNAME.ix-$APPNAME.svc.cluster.local` + +However, if you need to reach a different service (which is not often the case!), you need a slightly different format, where `$SVCNAME` is the name of the service you want to reach: + +`$SVCNAME.ix-$APPNAME.svc.cluster.local` + +*For example:* + +To reach an app named "plex", we use the following internal domain name: + +`plex.ix-plex.svc.cluster.local` diff --git a/docs/manual/networking.md b/docs/manual/networking.md new file mode 100644 index 00000000000..2c6a142834b --- /dev/null +++ b/docs/manual/networking.md @@ -0,0 +1,30 @@ +# Networking + +TrueCharts contain a number of networking options, some super-easy, others quite-advanced. In this document we will try to give a general overview what the general configuration options are and what are their downside and upsides. + +### General Choices + +##### Host Networking + +This option is considered to be an advanced option and is rarely needed. It connects the network-stack of the host to the App. + +The reason this is not needed in most Apps, is because we already have great options to deal with most forms of network traffic and every maintainer has the goal to make sure you don't need this setting. + +Please refer to the documentation of individual Apps or the Support-Discussions section on github, if you think you might need this setting in your specific usecase + +##### ClusterIP + +The "Basic" network mode, it create a special load-balancer called a "service" thats only available on the internal network between the Apps. + +Don't think you can't connect to it though, because our [Reverse proxy](https://wiki.truecharts.org/general/reverse-proxy/) can forward most traffic for you! + +##### NodePort + +The name already makes clear what this one does: It connect to a port on your node (the PC hosting your App). + +Its a special ClusterIP that forwards all traffic from a certain port on your host-system aka "node", directly to the service. However, it's also still a ClusterIP, so it's very well possible to use both the Reverse proxy and the NodePort, just not at the same port. + +There are, however, multiple downsides to using nodeports: + +- You can only pick ports above 9000 +- You can not connect two Apps to the same port diff --git a/docs/manual/reverse-proxy.md b/docs/manual/reverse-proxy.md new file mode 100644 index 00000000000..3652b6fbd63 --- /dev/null +++ b/docs/manual/reverse-proxy.md @@ -0,0 +1,34 @@ +# Reverse Proxy + +Within TrueCharts our aim is to make it as easy as possible to secure your Apps. To support this we supply a seperate Traefik "Reverse Proxy" app, which has been preconfigured to provide secure and fast connections. + +To use Traefik as a Reverse Proxy, all you have to do is enable "Reverse Proxy" in the App of your choice and fill out a little form. + +### Types of Reverse Proxys + +We currently offer the following types of pre-configured reverse proxies: + +- HTTP + +- HTTP using CRD (Advanced) + +- TCP + +- UDP + +Besides HTTP, all these options, require Traefik to be installed before you enable Reverse Proxy on your App. In many cases, the maintainer of your app has hidden specific settings, like the type of Reverse proxies available, to suit your App. + + +### Adding Certificates + +To add certificates to Apps, we use the TrueNAS SCALE certificate storage. This means you first need to add Certificates to TrueNAS SCALE, after which you can select them when Installing or Editing your App. + +### Notes + +There are a few highlights to take into account when adding a reverse proxy to an App: + +##### Adding hosts is required + +By default the hosts list is empty, this is due to upstream design choices and is a issue that is yet to be solved upstream. + +However: adding hosts (preferably just one) is required for ANY app to function with a reverse proxy enabled. Apps might not install and throw errors if you do not add any hosts. diff --git a/.github/docs/general/storage.md b/docs/manual/storage.md similarity index 86% rename from .github/docs/general/storage.md rename to docs/manual/storage.md index fa875e06cac..e429e105f3c 100644 --- a/.github/docs/general/storage.md +++ b/docs/manual/storage.md @@ -32,6 +32,8 @@ For that reason TrueCharts introduced a feature to automatically set permissions Setting permissions automatically means we `chown` the folder and all folder within it, to a user and group of your choice. However, we only do so when installing or updating an app. +Please be aware that automatically setting ownership/permissions, does mean it overrides your current CHOWN and CHMOD settings. This could break things and yes, it will destroy your system if used carelessly. It's also not wise to enable the automatic permissions on mounted shares from an external system. + These permission get based on the user and group you enter in the App configuration dialog and default to `568` (the SCALE default Apps user). ### Custom Storage diff --git a/features_capability.json b/features_capability.json index 653d4a76ab2..14b386c739d 100644 --- a/features_capability.json +++ b/features_capability.json @@ -30,5 +30,13 @@ "definitions/certificateAuthority": { "stable": {"min": "21.04-ALPHA"}, "nightlies": {"min": "21.02-MASTER"} + }, + "validations/containerImage": { + "stable": {"min": "21.06-BETA"}, + "nightlies": {"min": "21.04-MASTER"} + }, + "validations/nodePort": { + "stable": {"min": "21.04-ALPHA"}, + "nightlies": {"min": "21.04-MASTER"} } } diff --git a/charts/bazarr/1.6.4/.helmignore b/incubator/bazarr/2.0.0/.helmignore similarity index 100% rename from charts/bazarr/1.6.4/.helmignore rename to incubator/bazarr/2.0.0/.helmignore diff --git a/incubator/bazarr/2.0.0/CONFIG.md b/incubator/bazarr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/bazarr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/bazarr/1.6.4/Chart.yaml b/incubator/bazarr/2.0.0/Chart.yaml similarity index 71% rename from charts/bazarr/1.6.4/Chart.yaml rename to incubator/bazarr/2.0.0/Chart.yaml index 3a74c0cefd5..dd05235c458 100644 --- a/charts/bazarr/1.6.4/Chart.yaml +++ b/incubator/bazarr/2.0.0/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: bazarr -version: 1.6.4 +version: 2.0.0 upstream_version: 5.2.1 -appVersion: v0.9.0.5 +appVersion: "auto" description: Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/bazarr +home: https://github.com/truecharts/apps/tree/master/incubator/bazarr icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/bazarr.png keywords: - bazarr @@ -17,23 +17,20 @@ keywords: - usenet - torrent sources: - - https://github.com/truecharts/charts/tree/master/charts/bazarr + - https://github.com/truecharts/apps/tree/master/incubator/bazarr - https://github.com/k8s-at-home/charts/tree/master/charts/bazarr - https://github.com/Bazarr/Bazarr - https://hub.docker.com/r/linuxserver/bazarr dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/bazarr/1.6.4/README.md b/incubator/bazarr/2.0.0/README.md similarity index 74% rename from charts/bazarr/1.6.4/README.md rename to incubator/bazarr/2.0.0/README.md index 9eae84c180b..02ca646dff9 100644 --- a/charts/bazarr/1.6.4/README.md +++ b/incubator/bazarr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.9.0.5](https://img.shields.io/badge/AppVersion-v0.9.0.5-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/bazarr/1.6.4/app-readme.md b/incubator/bazarr/2.0.0/app-readme.md similarity index 55% rename from charts/bazarr/1.6.4/app-readme.md rename to incubator/bazarr/2.0.0/app-readme.md index 2e7cc147037..d8c9534c837 100644 --- a/charts/bazarr/1.6.4/app-readme.md +++ b/incubator/bazarr/2.0.0/app-readme.md @@ -1,2 +1,2 @@ Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/bazarr/2.0.0/charts/common-2.0.0.tgz b/incubator/bazarr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/bazarr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/bazarr/2.0.0/ix_values.yaml b/incubator/bazarr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..e6a02921e85 --- /dev/null +++ b/incubator/bazarr/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/bazarr + pullPolicy: IfNotPresent + tag: v0.9.3-beta.9 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/bazarr/2.0.0/questions.yaml b/incubator/bazarr/2.0.0/questions.yaml new file mode 100644 index 00000000000..8734a6f8189 --- /dev/null +++ b/incubator/bazarr/2.0.0/questions.yaml @@ -0,0 +1,526 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/.tools/templates/chart/templates/common.yaml b/incubator/bazarr/2.0.0/templates/common.yaml similarity index 100% rename from .tools/templates/chart/templates/common.yaml rename to incubator/bazarr/2.0.0/templates/common.yaml diff --git a/charts/bazarr/1.6.4/test_values.yaml b/incubator/bazarr/2.0.0/test_values.yaml similarity index 91% rename from charts/bazarr/1.6.4/test_values.yaml rename to incubator/bazarr/2.0.0/test_values.yaml index 851d649f3b0..db349d780d0 100644 --- a/charts/bazarr/1.6.4/test_values.yaml +++ b/incubator/bazarr/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Bazarr. image: - repository: linuxserver/bazarr + repository: ghcr.io/truecharts/bazarr pullPolicy: IfNotPresent - tag: version-v0.9.0.5 + tag: v0.9.3-beta.9 strategy: type: Recreate -service: - port: - port: 6767 +services: + main: + port: + port: 6767 env: {} # TZ: UTC diff --git a/incubator/bazarr/2.0.0/values.yaml b/incubator/bazarr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/bazarr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/bazarr/item.yaml b/incubator/bazarr/item.yaml similarity index 100% rename from charts/bazarr/item.yaml rename to incubator/bazarr/item.yaml diff --git a/charts/calibre-web/1.6.4/.helmignore b/incubator/calibre-web/2.0.0/.helmignore similarity index 100% rename from charts/calibre-web/1.6.4/.helmignore rename to incubator/calibre-web/2.0.0/.helmignore diff --git a/incubator/calibre-web/2.0.0/CONFIG.md b/incubator/calibre-web/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/calibre-web/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/calibre-web/1.6.4/Chart.yaml b/incubator/calibre-web/2.0.0/Chart.yaml similarity index 72% rename from charts/calibre-web/1.6.4/Chart.yaml rename to incubator/calibre-web/2.0.0/Chart.yaml index c17abfd442b..cd9d9f7789b 100644 --- a/charts/calibre-web/1.6.4/Chart.yaml +++ b/incubator/calibre-web/2.0.0/Chart.yaml @@ -1,31 +1,28 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: calibre-web -version: 1.6.4 +version: 2.0.0 upstream_version: 4.3.1 -appVersion: 0.6.9 +appVersion: "auto" description: Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/calibre-web +home: https://github.com/truecharts/apps/tree/master/incubator/calibre-web icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png keywords: - calibre-web - calibre - ebook sources: - - https://github.com/truecharts/charts/tree/master/charts/calibre-web + - https://github.com/truecharts/apps/tree/master/incubator/calibre-web - https://github.com/k8s-at-home/charts/tree/master/charts/calibre-web - https://hub.docker.com/r/linuxserver/calibre-web/ - https://github.com/janeczku/calibre-web dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/calibre-web/1.6.4/README.md b/incubator/calibre-web/2.0.0/README.md similarity index 74% rename from charts/calibre-web/1.6.4/README.md rename to incubator/calibre-web/2.0.0/README.md index bbd6a2d9d18..65d29f3cb8f 100644 --- a/charts/calibre-web/1.6.4/README.md +++ b/incubator/calibre-web/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.6.9](https://img.shields.io/badge/AppVersion-0.6.9-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/calibre-web/1.6.4/app-readme.md b/incubator/calibre-web/2.0.0/app-readme.md similarity index 59% rename from charts/calibre-web/1.6.4/app-readme.md rename to incubator/calibre-web/2.0.0/app-readme.md index 9c3e1c28826..a99211941ec 100644 --- a/charts/calibre-web/1.6.4/app-readme.md +++ b/incubator/calibre-web/2.0.0/app-readme.md @@ -1,2 +1,2 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/calibre-web/2.0.0/charts/common-2.0.0.tgz b/incubator/calibre-web/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/calibre-web/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/calibre-web/2.0.0/ix_values.yaml b/incubator/calibre-web/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..b529a6b199a --- /dev/null +++ b/incubator/calibre-web/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/calibre-web + pullPolicy: IfNotPresent + tag: version-0.6.9 + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/lidarr/1.6.4/questions.yaml b/incubator/calibre-web/2.0.0/questions.yaml similarity index 63% rename from charts/lidarr/1.6.4/questions.yaml rename to incubator/calibre-web/2.0.0/questions.yaml index da2a479b824..9a48421ba2e 100644 --- a/charts/lidarr/1.6.4/questions.yaml +++ b/incubator/calibre-web/2.0.0/questions.yaml @@ -1,64 +1,67 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-lidarrService.port" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/lidarr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-0.8.0.1886" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +70,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +78,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +86,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +115,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8686 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,15 +123,84 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: - # Config ------------------------ - variable: config label: "config dataset" schema: @@ -203,6 +237,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -259,6 +294,7 @@ questions: default: "media" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -279,12 +315,18 @@ questions: schema: type: hostpath required: true - - variable: downloads - label: "downloads dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -301,6 +343,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -308,43 +357,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/downloads" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -355,6 +395,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -380,54 +435,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/.tools/templates/chart/templates/NOTES.txt b/incubator/calibre-web/2.0.0/templates/NOTES.txt similarity index 100% rename from .tools/templates/chart/templates/NOTES.txt rename to incubator/calibre-web/2.0.0/templates/NOTES.txt diff --git a/charts/bazarr/1.6.4/templates/common.yaml b/incubator/calibre-web/2.0.0/templates/common.yaml similarity index 100% rename from charts/bazarr/1.6.4/templates/common.yaml rename to incubator/calibre-web/2.0.0/templates/common.yaml diff --git a/charts/calibre-web/1.6.4/test_values.yaml b/incubator/calibre-web/2.0.0/test_values.yaml similarity index 94% rename from charts/calibre-web/1.6.4/test_values.yaml rename to incubator/calibre-web/2.0.0/test_values.yaml index bf0ba994498..f88e33f922f 100644 --- a/charts/calibre-web/1.6.4/test_values.yaml +++ b/incubator/calibre-web/2.0.0/test_values.yaml @@ -8,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 8083 +startAsRoot: true + +services: + main: + port: + port: 8083 env: {} # TZ: @@ -40,8 +43,6 @@ persistence: # skipuninstall: false # existingClaim: "" -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/calibre-web/2.0.0/values.yaml b/incubator/calibre-web/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/calibre-web/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/calibre-web/item.yaml b/incubator/calibre-web/item.yaml similarity index 100% rename from charts/calibre-web/item.yaml rename to incubator/calibre-web/item.yaml diff --git a/charts/esphome/1.6.4/.helmignore b/incubator/deluge/2.0.0/.helmignore similarity index 100% rename from charts/esphome/1.6.4/.helmignore rename to incubator/deluge/2.0.0/.helmignore diff --git a/incubator/deluge/2.0.0/CONFIG.md b/incubator/deluge/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/deluge/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/incubator/deluge/2.0.0/Chart.yaml b/incubator/deluge/2.0.0/Chart.yaml new file mode 100644 index 00000000000..e463295f4fa --- /dev/null +++ b/incubator/deluge/2.0.0/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: deluge +version: 2.0.0 +# upstream_version: +appVersion: "auto" +description: Deluge App for TrueNAS SCALE +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/incubator/deluge +icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200 +keywords: + - transmission + - torrent + - usenet +sources: + - https://github.com/truecharts/apps/tree/master/incubator/deluge + - https://github.com/deluge-torrent/deluge +dependencies: + - name: common + repository: https://truecharts.org/ + version: 2.0.0 + # condition: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org +# annotations: diff --git a/charts/deluge/1.6.4/README.md b/incubator/deluge/2.0.0/README.md similarity index 64% rename from charts/deluge/1.6.4/README.md rename to incubator/deluge/2.0.0/README.md index e94f74e13c3..9dd914bee97 100644 --- a/charts/deluge/1.6.4/README.md +++ b/incubator/deluge/2.0.0/README.md @@ -1,18 +1,16 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.0.3-2201906121747](https://img.shields.io/badge/AppVersion-v2.0.3--2201906121747-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) -Deluge is a torrent download client +Deluge App for TrueNAS SCALE TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* -* -* -* +* +* ## Requirements @@ -22,7 +20,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +45,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/deluge/2.0.0/app-readme.md b/incubator/deluge/2.0.0/app-readme.md new file mode 100644 index 00000000000..36248a2f4e6 --- /dev/null +++ b/incubator/deluge/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Deluge App for TrueNAS SCALE +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/deluge/2.0.0/charts/common-2.0.0.tgz b/incubator/deluge/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/deluge/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/deluge/2.0.0/ix_values.yaml b/incubator/deluge/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..2afdab41bd7 --- /dev/null +++ b/incubator/deluge/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/deluge/1.6.4/questions.yaml b/incubator/deluge/2.0.0/questions.yaml similarity index 67% rename from charts/deluge/1.6.4/questions.yaml rename to incubator/deluge/2.0.0/questions.yaml index 88c51c1b02f..d3756ddd0fa 100644 --- a/charts/deluge/1.6.4/questions.yaml +++ b/incubator/deluge/2.0.0/questions.yaml @@ -1,96 +1,97 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "network / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + +## Portal Button + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/deluge" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-2.0.3-2201906121747ubuntu18.04.1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true - # Configure Time Zone +## Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + +## Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string - default: "Etc/UTC" + default: "Australia/Hobart" $ref: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: type: int default: 568 - - variable: PGID - group: "Configuration" - label: "PGID" + - variable: GUID + group: "Container Image" + label: "GUID" description: "The groupID of the user/group running the application and owning the files" schema: type: int default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: type: string default: "002" - # Configure Enviroment Variables +## Configure Enviroment Variables - variable: environmentVariables label: "Image environment" group: "Configuration" @@ -112,7 +113,7 @@ questions: schema: type: string - # Enable Host Network +## Enable Host Network - variable: hostNetwork group: "Networking" label: "Enable Host Network" @@ -120,177 +121,10 @@ questions: type: boolean default: false - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8112 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - - - variable: appAdditionalServices - group: "Networking" - label: "Configure additional services" - schema: - type: dict - attrs: - - variable: tcp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-tcp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "TCP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - variable: udp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-udp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "UDP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - -## TrueCharts Specific - +## Volumes - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -407,16 +241,269 @@ questions: type: hostpath required: true + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress - label: "" - group: "Ingress" + - variable: services + group: "Networking" + label: "Configure Service" schema: type: dict attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: tcp + label: "" + description: "TCP port for Torrent Connections" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable TCP port for Torrent Connections" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: name + label: "port name" + schema: + type: string + default: "torrent-tcp" + hidden: true + - variable: protocol + label: "Protocol" + schema: + type: string + default: "TCP" + hidden: true + - variable: port + label: "container port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "container targetport" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "Node Port to expose" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + required: false + - variable: udp + label: "" + description: "UDP port for Torrent Connections" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable UDP port for Torrent Connections" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: name + label: "port name" + schema: + type: string + default: "torrent-udp" + hidden: true + - variable: protocol + label: "Protocol" + schema: + type: string + default: "UDP" + hidden: true + - variable: port + label: "container port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "container targetport" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "Node Port to expose" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + required: false + + +## Ingres + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" schema: type: dict attrs: @@ -427,6 +514,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -452,129 +554,34 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: type: string default: "" - - variable: tcp - label: "TCP Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Reverse Proxy Type" - schema: - type: string - default: "TCP" - required: true - editable: false - enum: - - value: "TCP" - description: "Plain TCP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "torrent-tcp" - required: true - enum: - - value: "torrent-tcp" - description: "Torrent-TCP: port 51413" - - variable: certType - label: "Select Certificate Type" - schema: - editable: false - type: string - default: "" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - variable: udp - label: "UDP Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Reverse Proxy Type" - schema: - type: string - default: "UDP" - required: true - editable: false - enum: - - value: "UDP" - description: "Plain UDP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "torrent-udp" - required: true - enum: - - value: "torrent-udp" - description: "Torrent-UDP: port 51413" diff --git a/charts/calibre-web/1.6.4/templates/common.yaml b/incubator/deluge/2.0.0/templates/common.yaml similarity index 100% rename from charts/calibre-web/1.6.4/templates/common.yaml rename to incubator/deluge/2.0.0/templates/common.yaml diff --git a/incubator/deluge/2.0.0/test_values.yaml b/incubator/deluge/2.0.0/test_values.yaml new file mode 100644 index 00000000000..592a8461525 --- /dev/null +++ b/incubator/deluge/2.0.0/test_values.yaml @@ -0,0 +1,42 @@ +# Default values for deluge. + +image: + repository: linuxserver/deluge + pullPolicy: IfNotPresent + tag: version-2.0.3-2201906121747ubuntu18.04.1 + +strategy: + type: Recreate + +startAsRoot: true + +services: + main: + port: + port: 8112 + tcp: + enabled: true + type: ClusterIP + port: + port: 51413 + protocol: TCP + targetPort: 51413 + udp: + enabled: true + type: ClusterIP + port: + port: 51413 + protocol: UDP + targetPort: 51413 + +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" +# downloads: +# enabled: false +# emptyDir: false +# setPermissions: true +# mountPath: "/downloads" diff --git a/incubator/deluge/2.0.0/values.yaml b/incubator/deluge/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/deluge/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/deluge/item.yaml b/incubator/deluge/item.yaml similarity index 100% rename from charts/deluge/item.yaml rename to incubator/deluge/item.yaml diff --git a/charts/freshrss/1.6.4/.helmignore b/incubator/freshrss/2.0.0/.helmignore similarity index 100% rename from charts/freshrss/1.6.4/.helmignore rename to incubator/freshrss/2.0.0/.helmignore diff --git a/incubator/freshrss/2.0.0/CONFIG.md b/incubator/freshrss/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/freshrss/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/freshrss/1.6.4/Chart.yaml b/incubator/freshrss/2.0.0/Chart.yaml similarity index 68% rename from charts/freshrss/1.6.4/Chart.yaml rename to incubator/freshrss/2.0.0/Chart.yaml index 685bd3164ce..ea705c75f07 100644 --- a/charts/freshrss/1.6.4/Chart.yaml +++ b/incubator/freshrss/2.0.0/Chart.yaml @@ -1,30 +1,27 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: freshrss -version: 1.6.4 +version: 2.0.0 upstream_version: 2.3.1 -appVersion: 1.17.0 +appVersion: "auto" description: FreshRSS is a self-hosted RSS feed aggregator type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/freshrss +home: https://github.com/truecharts/apps/tree/master/incubator/freshrss icon: https://github.com/FreshRSS/FreshRSS/blob/master/docs/img/FreshRSS-logo.png?raw=true keywords: - freshrss - rss sources: - - https://github.com/truecharts/charts/tree/master/charts/freshrss + - https://github.com/truecharts/apps/tree/master/incubator/freshrss - https://github.com/k8s-at-home/charts/tree/master/charts/freshrss - https://github.com/FreshRSS/FreshRSS - https://hub.docker.com/r/linuxserver/freshrss dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/freshrss/1.6.4/README.md b/incubator/freshrss/2.0.0/README.md similarity index 73% rename from charts/freshrss/1.6.4/README.md rename to incubator/freshrss/2.0.0/README.md index a01de8d5267..4ac76c139fc 100644 --- a/charts/freshrss/1.6.4/README.md +++ b/incubator/freshrss/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.17.0](https://img.shields.io/badge/AppVersion-1.17.0-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) FreshRSS is a self-hosted RSS feed aggregator TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/freshrss/2.0.0/app-readme.md b/incubator/freshrss/2.0.0/app-readme.md new file mode 100644 index 00000000000..107a74ac938 --- /dev/null +++ b/incubator/freshrss/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +FreshRSS is a self-hosted RSS feed aggregator +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/freshrss/2.0.0/charts/common-2.0.0.tgz b/incubator/freshrss/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/freshrss/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/freshrss/2.0.0/ix_values.yaml b/incubator/freshrss/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..a50f786f428 --- /dev/null +++ b/incubator/freshrss/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/freshrss + pullPolicy: IfNotPresent + tag: version-1.17.0 + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/calibre-web/1.6.4/questions.yaml b/incubator/freshrss/2.0.0/questions.yaml similarity index 58% rename from charts/calibre-web/1.6.4/questions.yaml rename to incubator/freshrss/2.0.0/questions.yaml index f6cbc058318..60f9c584d8d 100644 --- a/charts/calibre-web/1.6.4/questions.yaml +++ b/incubator/freshrss/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/calibre-web" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-0.6.9" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8083 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -202,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -222,12 +259,18 @@ questions: schema: type: hostpath required: true - - variable: media - label: "media dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -244,6 +287,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -251,43 +301,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "media" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/media" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -298,6 +339,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -323,54 +379,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/calibre-web/1.6.4/templates/NOTES.txt b/incubator/freshrss/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/calibre-web/1.6.4/templates/NOTES.txt rename to incubator/freshrss/2.0.0/templates/NOTES.txt diff --git a/charts/collabora-online/1.6.4/templates/common.yaml b/incubator/freshrss/2.0.0/templates/common.yaml similarity index 100% rename from charts/collabora-online/1.6.4/templates/common.yaml rename to incubator/freshrss/2.0.0/templates/common.yaml diff --git a/charts/freshrss/1.6.4/test_values.yaml b/incubator/freshrss/2.0.0/test_values.yaml similarity index 86% rename from charts/freshrss/1.6.4/test_values.yaml rename to incubator/freshrss/2.0.0/test_values.yaml index be7e8af2682..0b1524fdd29 100644 --- a/charts/freshrss/1.6.4/test_values.yaml +++ b/incubator/freshrss/2.0.0/test_values.yaml @@ -8,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # TZ: UTC @@ -22,8 +25,6 @@ persistence: enabled: false emptyDir: false -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/freshrss/2.0.0/values.yaml b/incubator/freshrss/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/freshrss/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/freshrss/item.yaml b/incubator/freshrss/item.yaml similarity index 100% rename from charts/freshrss/item.yaml rename to incubator/freshrss/item.yaml diff --git a/charts/gaps/1.6.4/.helmignore b/incubator/gaps/2.0.0/.helmignore similarity index 100% rename from charts/gaps/1.6.4/.helmignore rename to incubator/gaps/2.0.0/.helmignore diff --git a/incubator/gaps/2.0.0/CONFIG.md b/incubator/gaps/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/gaps/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/gaps/1.6.4/Chart.yaml b/incubator/gaps/2.0.0/Chart.yaml similarity index 70% rename from charts/gaps/1.6.4/Chart.yaml rename to incubator/gaps/2.0.0/Chart.yaml index 4af7798f461..f5446f43e45 100644 --- a/charts/gaps/1.6.4/Chart.yaml +++ b/incubator/gaps/2.0.0/Chart.yaml @@ -1,30 +1,27 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: gaps -version: 1.6.4 +version: 2.0.0 upstream_version: 1.1.1 -appVersion: latest +appVersion: "auto" description: Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/gaps +home: https://github.com/truecharts/apps/tree/master/incubator/gaps icon: https://raw.githubusercontent.com/JasonHHouse/gaps/master/images/Final-Black.png keywords: - gaps - plex - plex-media-server sources: - - https://github.com/truecharts/charts/tree/master/charts/gaps + - https://github.com/truecharts/apps/tree/master/incubator/gaps - https://github.com/k8s-at-home/charts/tree/master/charts/gaps - https://github.com/JasonHHouse/gaps dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/gaps/1.6.4/README.md b/incubator/gaps/2.0.0/README.md similarity index 74% rename from charts/gaps/1.6.4/README.md rename to incubator/gaps/2.0.0/README.md index c5f6a370d0f..28a860bf935 100644 --- a/charts/gaps/1.6.4/README.md +++ b/incubator/gaps/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/gaps/1.6.4/app-readme.md b/incubator/gaps/2.0.0/app-readme.md similarity index 57% rename from charts/gaps/1.6.4/app-readme.md rename to incubator/gaps/2.0.0/app-readme.md index 0c89f3767e8..8a76167bfc8 100644 --- a/charts/gaps/1.6.4/app-readme.md +++ b/incubator/gaps/2.0.0/app-readme.md @@ -1,2 +1,2 @@ Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/gaps/2.0.0/charts/common-2.0.0.tgz b/incubator/gaps/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/gaps/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/gaps/2.0.0/ix_values.yaml b/incubator/gaps/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..d11177660e5 --- /dev/null +++ b/incubator/gaps/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: housewrecker/gaps + pullPolicy: IfNotPresent + tag: v0.8.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/gaps/2.0.0/questions.yaml b/incubator/gaps/2.0.0/questions.yaml new file mode 100644 index 00000000000..11ff405aedf --- /dev/null +++ b/incubator/gaps/2.0.0/questions.yaml @@ -0,0 +1,412 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + - variable: data + label: "data dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "data" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/usr/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/collabora-online/1.6.4/templates/NOTES.txt b/incubator/gaps/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/collabora-online/1.6.4/templates/NOTES.txt rename to incubator/gaps/2.0.0/templates/NOTES.txt diff --git a/charts/deluge/1.6.4/templates/common.yaml b/incubator/gaps/2.0.0/templates/common.yaml similarity index 100% rename from charts/deluge/1.6.4/templates/common.yaml rename to incubator/gaps/2.0.0/templates/common.yaml diff --git a/charts/gaps/1.6.4/test_values.yaml b/incubator/gaps/2.0.0/test_values.yaml similarity index 82% rename from charts/gaps/1.6.4/test_values.yaml rename to incubator/gaps/2.0.0/test_values.yaml index 9db31f2b553..ce80e0b618d 100644 --- a/charts/gaps/1.6.4/test_values.yaml +++ b/incubator/gaps/2.0.0/test_values.yaml @@ -3,14 +3,15 @@ image: repository: housewrecker/gaps pullPolicy: IfNotPresent - tag: latest + tag: v0.8.8 strategy: type: Recreate -service: - port: - port: 8484 +services: + main: + port: + port: 8484 env: {} # TZ: UTC @@ -21,8 +22,6 @@ persistence: emptyDir: false mountPath: /usr/data -appIngressEnabled: false - appVolumeMounts: data: diff --git a/incubator/gaps/2.0.0/values.yaml b/incubator/gaps/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/gaps/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/gaps/item.yaml b/incubator/gaps/item.yaml similarity index 100% rename from charts/gaps/item.yaml rename to incubator/gaps/item.yaml diff --git a/charts/grocy/1.6.4/.helmignore b/incubator/grocy/2.0.0/.helmignore similarity index 100% rename from charts/grocy/1.6.4/.helmignore rename to incubator/grocy/2.0.0/.helmignore diff --git a/incubator/grocy/2.0.0/CONFIG.md b/incubator/grocy/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/grocy/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/grocy/1.6.4/Chart.yaml b/incubator/grocy/2.0.0/Chart.yaml similarity index 68% rename from charts/grocy/1.6.4/Chart.yaml rename to incubator/grocy/2.0.0/Chart.yaml index 200af2216a9..77ef4f6c423 100644 --- a/charts/grocy/1.6.4/Chart.yaml +++ b/incubator/grocy/2.0.0/Chart.yaml @@ -1,28 +1,25 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: grocy -version: 1.6.4 +version: 2.0.0 upstream_version: 4.3.1 -appVersion: v2.7.1 +appVersion: "auto" description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/grocy +home: https://github.com/truecharts/apps/tree/master/incubator/grocy icon: https://github.com/grocy/grocy/raw/master/public/img/appicons/mstile-150x150.png keywords: - grocy sources: - - https://github.com/truecharts/charts/tree/master/charts/grocy + - https://github.com/truecharts/apps/tree/master/incubator/grocy - https://github.com/k8s-at-home/charts/tree/master/charts/grocy - https://github.com/grocy/grocy dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/grocy/1.6.4/README.md b/incubator/grocy/2.0.0/README.md similarity index 73% rename from charts/grocy/1.6.4/README.md rename to incubator/grocy/2.0.0/README.md index 199f81896a2..28b20de2fc9 100644 --- a/charts/grocy/1.6.4/README.md +++ b/incubator/grocy/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.7.1](https://img.shields.io/badge/AppVersion-v2.7.1-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/grocy/1.6.4/app-readme.md b/incubator/grocy/2.0.0/app-readme.md similarity index 55% rename from charts/grocy/1.6.4/app-readme.md rename to incubator/grocy/2.0.0/app-readme.md index 39247b6d51b..a599b757008 100644 --- a/charts/grocy/1.6.4/app-readme.md +++ b/incubator/grocy/2.0.0/app-readme.md @@ -1,2 +1,2 @@ ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/grocy/2.0.0/charts/common-2.0.0.tgz b/incubator/grocy/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/grocy/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/grocy/2.0.0/ix_values.yaml b/incubator/grocy/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..957cb3c4d9c --- /dev/null +++ b/incubator/grocy/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/grocy + tag: version-v2.7.1 + pullPolicy: IfNotPresent + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/nzbhydra/1.6.4/questions.yaml b/incubator/grocy/2.0.0/questions.yaml similarity index 58% rename from charts/nzbhydra/1.6.4/questions.yaml rename to incubator/grocy/2.0.0/questions.yaml index b16ddce6253..7b4fd1fa97b 100644 --- a/charts/nzbhydra/1.6.4/questions.yaml +++ b/incubator/grocy/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/nzbhydra2" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-v3.8.1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 5076 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -202,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -222,12 +259,19 @@ questions: schema: type: hostpath required: true - - variable: downloads - label: "downloads dataset" + + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -244,6 +288,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -251,43 +302,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/downloads" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -298,6 +340,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -323,54 +380,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/esphome/1.6.4/templates/common.yaml b/incubator/grocy/2.0.0/templates/common.yaml similarity index 100% rename from charts/esphome/1.6.4/templates/common.yaml rename to incubator/grocy/2.0.0/templates/common.yaml diff --git a/charts/grocy/1.6.4/test_values.yaml b/incubator/grocy/2.0.0/test_values.yaml similarity index 85% rename from charts/grocy/1.6.4/test_values.yaml rename to incubator/grocy/2.0.0/test_values.yaml index ee7f8128a30..4b3de49fa1a 100644 --- a/charts/grocy/1.6.4/test_values.yaml +++ b/incubator/grocy/2.0.0/test_values.yaml @@ -8,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # TZ: @@ -22,8 +25,6 @@ persistence: enabled: false emptyDir: false -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/grocy/2.0.0/values.yaml b/incubator/grocy/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/grocy/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/grocy/item.yaml b/incubator/grocy/item.yaml similarity index 100% rename from charts/grocy/item.yaml rename to incubator/grocy/item.yaml diff --git a/charts/heimdall/1.6.4/.helmignore b/incubator/heimdall/2.0.0/.helmignore similarity index 100% rename from charts/heimdall/1.6.4/.helmignore rename to incubator/heimdall/2.0.0/.helmignore diff --git a/incubator/heimdall/2.0.0/CONFIG.md b/incubator/heimdall/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/heimdall/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/heimdall/1.6.4/Chart.yaml b/incubator/heimdall/2.0.0/Chart.yaml similarity index 61% rename from charts/heimdall/1.6.4/Chart.yaml rename to incubator/heimdall/2.0.0/Chart.yaml index 5271138e682..770b9777396 100644 --- a/charts/heimdall/1.6.4/Chart.yaml +++ b/incubator/heimdall/2.0.0/Chart.yaml @@ -1,27 +1,24 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: heimdall -version: 1.6.4 +version: 2.0.0 upstream_version: 4.1.1 -appVersion: 2.2.2 +appVersion: "auto" description: An Application dashboard and launcher type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/heimdall +home: https://github.com/truecharts/apps/tree/master/incubator/heimdall icon: https://i.imgur.com/mM4tcO5.png keywords: - heimdall sources: - - https://github.com/truecharts/charts/tree/master/charts/heimdall + - https://github.com/truecharts/apps/tree/master/incubator/heimdall - https://github.com/k8s-at-home/charts/tree/master/charts/heimdall dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/heimdall/1.6.4/README.md b/incubator/heimdall/2.0.0/README.md similarity index 72% rename from charts/heimdall/1.6.4/README.md rename to incubator/heimdall/2.0.0/README.md index 4da442bcc8f..ffe3b776492 100644 --- a/charts/heimdall/1.6.4/README.md +++ b/incubator/heimdall/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.2.2](https://img.shields.io/badge/AppVersion-2.2.2-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) An Application dashboard and launcher TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * ## Requirements @@ -20,7 +20,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -45,9 +45,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/heimdall/2.0.0/app-readme.md b/incubator/heimdall/2.0.0/app-readme.md new file mode 100644 index 00000000000..11d19fa23e1 --- /dev/null +++ b/incubator/heimdall/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +An Application dashboard and launcher +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/heimdall/2.0.0/charts/common-2.0.0.tgz b/incubator/heimdall/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/heimdall/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/heimdall/2.0.0/ix_values.yaml b/incubator/heimdall/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..5d8a294c05d --- /dev/null +++ b/incubator/heimdall/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/heimdall + tag: version-2.2.2 + pullPolicy: IfNotPresent + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/organizr/1.6.4/questions.yaml b/incubator/heimdall/2.0.0/questions.yaml similarity index 59% rename from charts/organizr/1.6.4/questions.yaml rename to incubator/heimdall/2.0.0/questions.yaml index 5914dd5b9d9..8333218d6fd 100644 --- a/charts/organizr/1.6.4/questions.yaml +++ b/incubator/heimdall/2.0.0/questions.yaml @@ -1,65 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-organizrService.port" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "organizr/organizr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "latest" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -68,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -76,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -84,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -113,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -159,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -204,6 +239,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -224,12 +260,18 @@ questions: schema: type: hostpath required: true - - variable: data - label: "data dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -246,6 +288,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -253,44 +302,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "data" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/data" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -301,6 +340,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -326,54 +380,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/freshrss/1.6.4/templates/common.yaml b/incubator/heimdall/2.0.0/templates/common.yaml similarity index 100% rename from charts/freshrss/1.6.4/templates/common.yaml rename to incubator/heimdall/2.0.0/templates/common.yaml diff --git a/charts/heimdall/1.6.4/test_values.yaml b/incubator/heimdall/2.0.0/test_values.yaml similarity index 87% rename from charts/heimdall/1.6.4/test_values.yaml rename to incubator/heimdall/2.0.0/test_values.yaml index 23cb71bec5f..07fdf3e723b 100644 --- a/charts/heimdall/1.6.4/test_values.yaml +++ b/incubator/heimdall/2.0.0/test_values.yaml @@ -8,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # TZ: diff --git a/incubator/heimdall/2.0.0/values.yaml b/incubator/heimdall/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/heimdall/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/heimdall/item.yaml b/incubator/heimdall/item.yaml similarity index 100% rename from charts/heimdall/item.yaml rename to incubator/heimdall/item.yaml diff --git a/charts/home-assistant/1.6.4/.helmignore b/incubator/lazylibrarian/2.0.0/.helmignore similarity index 100% rename from charts/home-assistant/1.6.4/.helmignore rename to incubator/lazylibrarian/2.0.0/.helmignore diff --git a/incubator/lazylibrarian/2.0.0/CONFIG.md b/incubator/lazylibrarian/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/lazylibrarian/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/lazylibrarian/1.6.4/Chart.yaml b/incubator/lazylibrarian/2.0.0/Chart.yaml similarity index 66% rename from charts/lazylibrarian/1.6.4/Chart.yaml rename to incubator/lazylibrarian/2.0.0/Chart.yaml index 3b08083e758..3c0985f4cf9 100644 --- a/charts/lazylibrarian/1.6.4/Chart.yaml +++ b/incubator/lazylibrarian/2.0.0/Chart.yaml @@ -1,35 +1,32 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lazylibrarian -version: 1.6.4 +version: 2.0.0 upstream_version: 2.1.0 -appVersion: 1.7.2 +appVersion: "latest" description: Get all your books, like series with Sonarr... type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/lazylibrarian +home: https://github.com/truecharts/apps/tree/master/incubator/lazylibrarian icon: https://lazylibrarian.gitlab.io/logo.svg keywords: - lazylibrarian - ebooks sources: - - https://github.com/truecharts/charts/tree/master/charts/lazylibrarian + - https://github.com/truecharts/apps/tree/master/incubator/lazylibrarian - https://github.com/k8s-at-home/charts/tree/master/charts/lazylibrarian - https://gitlab.com/LazyLibrarian/LazyLibrarian.git - https://lazylibrarian.gitlab.io dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/lazylibrarian/1.6.4/README.md b/incubator/lazylibrarian/2.0.0/README.md similarity index 73% rename from charts/lazylibrarian/1.6.4/README.md rename to incubator/lazylibrarian/2.0.0/README.md index 1325b0031c1..6c7d69fd1f3 100644 --- a/charts/lazylibrarian/1.6.4/README.md +++ b/incubator/lazylibrarian/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.7.2](https://img.shields.io/badge/AppVersion-1.7.2-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) Get all your books, like series with Sonarr... TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/lazylibrarian/2.0.0/app-readme.md b/incubator/lazylibrarian/2.0.0/app-readme.md new file mode 100644 index 00000000000..2c407f701cc --- /dev/null +++ b/incubator/lazylibrarian/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Get all your books, like series with Sonarr... +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/lazylibrarian/2.0.0/charts/common-2.0.0.tgz b/incubator/lazylibrarian/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/lazylibrarian/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/lazylibrarian/2.0.0/ix_values.yaml b/incubator/lazylibrarian/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..cc54f40da2e --- /dev/null +++ b/incubator/lazylibrarian/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/lazylibrarian + pullPolicy: IfNotPresent + tag: latest + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/lazylibrarian/2.0.0/questions.yaml b/incubator/lazylibrarian/2.0.0/questions.yaml new file mode 100644 index 00000000000..07f7774cb0f --- /dev/null +++ b/incubator/lazylibrarian/2.0.0/questions.yaml @@ -0,0 +1,526 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/gaps/1.6.4/templates/common.yaml b/incubator/lazylibrarian/2.0.0/templates/common.yaml similarity index 100% rename from charts/gaps/1.6.4/templates/common.yaml rename to incubator/lazylibrarian/2.0.0/templates/common.yaml diff --git a/charts/lazylibrarian/1.6.4/test_values.yaml b/incubator/lazylibrarian/2.0.0/test_values.yaml similarity index 93% rename from charts/lazylibrarian/1.6.4/test_values.yaml rename to incubator/lazylibrarian/2.0.0/test_values.yaml index ed8e2f974e9..a13e76753d8 100644 --- a/charts/lazylibrarian/1.6.4/test_values.yaml +++ b/incubator/lazylibrarian/2.0.0/test_values.yaml @@ -3,14 +3,17 @@ image: repository: linuxserver/lazylibrarian pullPolicy: IfNotPresent - tag: version-047f91af + tag: latest strategy: type: Recreate -service: - port: - port: 5299 +startAsRoot: true + +services: + main: + port: + port: 5299 env: {} # TZ: UTC diff --git a/incubator/lazylibrarian/2.0.0/values.yaml b/incubator/lazylibrarian/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/lazylibrarian/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/lazylibrarian/item.yaml b/incubator/lazylibrarian/item.yaml similarity index 100% rename from charts/lazylibrarian/item.yaml rename to incubator/lazylibrarian/item.yaml diff --git a/charts/lychee/1.6.4/.helmignore b/incubator/lychee/2.0.0/.helmignore similarity index 100% rename from charts/lychee/1.6.4/.helmignore rename to incubator/lychee/2.0.0/.helmignore diff --git a/incubator/lychee/2.0.0/CONFIG.md b/incubator/lychee/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/lychee/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/lychee/1.6.4/Chart.yaml b/incubator/lychee/2.0.0/Chart.yaml similarity index 69% rename from charts/lychee/1.6.4/Chart.yaml rename to incubator/lychee/2.0.0/Chart.yaml index bd9dd8a3ff9..b142889dc63 100644 --- a/charts/lychee/1.6.4/Chart.yaml +++ b/incubator/lychee/2.0.0/Chart.yaml @@ -1,31 +1,28 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lychee -version: 1.6.4 +version: 2.0.0 upstream_version: 2.3.1 -appVersion: 4.0.8 +appVersion: "auto" description: Lychee is a free photo-management tool, which runs on your server or web-space type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/lychee +home: https://github.com/truecharts/apps/tree/master/incubator/lychee icon: https://github.com/LycheeOrg/Lychee/blob/master/Banner.png?raw=true keywords: - lychee - photo - pictures sources: - - https://github.com/truecharts/charts/tree/master/charts/lychee + - https://github.com/truecharts/apps/tree/master/incubator/lychee - https://github.com/k8s-at-home/charts/tree/master/charts/lychee - https://github.com/LycheeOrg/Lychee - https://hub.docker.com/r/lycheeorg/lychee dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/lychee/1.6.4/README.md b/incubator/lychee/2.0.0/README.md similarity index 74% rename from charts/lychee/1.6.4/README.md rename to incubator/lychee/2.0.0/README.md index 9fbfce0b1ca..a06445dc40a 100644 --- a/charts/lychee/1.6.4/README.md +++ b/incubator/lychee/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.0.8](https://img.shields.io/badge/AppVersion-4.0.8-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Lychee is a free photo-management tool, which runs on your server or web-space TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/lychee/2.0.0/app-readme.md b/incubator/lychee/2.0.0/app-readme.md new file mode 100644 index 00000000000..b795577b32c --- /dev/null +++ b/incubator/lychee/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Lychee is a free photo-management tool, which runs on your server or web-space +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/lychee/2.0.0/charts/common-2.0.0.tgz b/incubator/lychee/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/lychee/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/lychee/2.0.0/ix_values.yaml b/incubator/lychee/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..4e05224eb6f --- /dev/null +++ b/incubator/lychee/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: lycheeorg/lychee-laravel + pullPolicy: IfNotPresent + tag: v4.0.8 + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/lychee/1.6.4/questions.yaml b/incubator/lychee/2.0.0/questions.yaml similarity index 60% rename from charts/lychee/1.6.4/questions.yaml rename to incubator/lychee/2.0.0/questions.yaml index 7fd84374393..12a1b75ec23 100644 --- a/charts/lychee/1.6.4/questions.yaml +++ b/incubator/lychee/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "lycheeorg/lychee-laravel" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "v4.0.8" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -202,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -335,15 +372,75 @@ questions: type: hostpath required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -354,6 +451,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -379,54 +491,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/deluge/1.6.4/templates/NOTES.txt b/incubator/lychee/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/deluge/1.6.4/templates/NOTES.txt rename to incubator/lychee/2.0.0/templates/NOTES.txt diff --git a/charts/grocy/1.6.4/templates/common.yaml b/incubator/lychee/2.0.0/templates/common.yaml similarity index 100% rename from charts/grocy/1.6.4/templates/common.yaml rename to incubator/lychee/2.0.0/templates/common.yaml diff --git a/charts/lychee/1.6.4/test_values.yaml b/incubator/lychee/2.0.0/test_values.yaml similarity index 97% rename from charts/lychee/1.6.4/test_values.yaml rename to incubator/lychee/2.0.0/test_values.yaml index c252ab2d473..e4bc4fb97cc 100644 --- a/charts/lychee/1.6.4/test_values.yaml +++ b/incubator/lychee/2.0.0/test_values.yaml @@ -8,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # PHP_TZ: UTC @@ -69,8 +72,6 @@ persistence: # skipuninstall: false # existingClaim: "" -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/lychee/2.0.0/values.yaml b/incubator/lychee/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/lychee/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/lychee/item.yaml b/incubator/lychee/item.yaml similarity index 100% rename from charts/lychee/item.yaml rename to incubator/lychee/item.yaml diff --git a/charts/navidrome/1.6.4/.helmignore b/incubator/navidrome/2.0.0/.helmignore similarity index 100% rename from charts/navidrome/1.6.4/.helmignore rename to incubator/navidrome/2.0.0/.helmignore diff --git a/incubator/navidrome/2.0.0/CONFIG.md b/incubator/navidrome/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/navidrome/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/navidrome/1.6.4/Chart.yaml b/incubator/navidrome/2.0.0/Chart.yaml similarity index 69% rename from charts/navidrome/1.6.4/Chart.yaml rename to incubator/navidrome/2.0.0/Chart.yaml index 37385573bb3..fd095d42085 100644 --- a/charts/navidrome/1.6.4/Chart.yaml +++ b/incubator/navidrome/2.0.0/Chart.yaml @@ -1,31 +1,28 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: navidrome -version: 1.6.4 +version: 2.0.0 upstream_version: 2.3.1 -appVersion: 0.39.0 +appVersion: "auto" description: Navidrome is an open source web-based music collection server and streamer type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/navidrome +home: https://github.com/truecharts/apps/tree/master/incubator/navidrome icon: https://github.com/deluan/navidrome/blob/master/ui/src/icons/android-icon-72x72.png?raw=true keywords: - navidrome - music - streaming sources: - - https://github.com/truecharts/charts/tree/master/charts/navidrome + - https://github.com/truecharts/apps/tree/master/incubator/navidrome - https://github.com/k8s-at-home/charts/tree/master/charts/navidrome - https://github.com/deluan/navidrome - https://hub.docker.com/r/deluan/navidrome dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/navidrome/1.6.4/README.md b/incubator/navidrome/2.0.0/README.md similarity index 73% rename from charts/navidrome/1.6.4/README.md rename to incubator/navidrome/2.0.0/README.md index 5333c944bae..ecfab273577 100644 --- a/charts/navidrome/1.6.4/README.md +++ b/incubator/navidrome/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.39.0](https://img.shields.io/badge/AppVersion-0.39.0-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Navidrome is an open source web-based music collection server and streamer TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/navidrome/2.0.0/app-readme.md b/incubator/navidrome/2.0.0/app-readme.md new file mode 100644 index 00000000000..68cb6652a6b --- /dev/null +++ b/incubator/navidrome/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Navidrome is an open source web-based music collection server and streamer +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/navidrome/2.0.0/charts/common-2.0.0.tgz b/incubator/navidrome/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/navidrome/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/navidrome/2.0.0/ix_values.yaml b/incubator/navidrome/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..b806468453d --- /dev/null +++ b/incubator/navidrome/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: deluan/navidrome + pullPolicy: IfNotPresent + tag: 0.39.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/navidrome/2.0.0/questions.yaml b/incubator/navidrome/2.0.0/questions.yaml new file mode 100644 index 00000000000..36ceb1a4b02 --- /dev/null +++ b/incubator/navidrome/2.0.0/questions.yaml @@ -0,0 +1,470 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + # Config ------------------------ + - variable: music + label: "music dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "music" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/music" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/freshrss/1.6.4/templates/NOTES.txt b/incubator/navidrome/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/freshrss/1.6.4/templates/NOTES.txt rename to incubator/navidrome/2.0.0/templates/NOTES.txt diff --git a/charts/handbrake/1.3.4/templates/common.yaml b/incubator/navidrome/2.0.0/templates/common.yaml similarity index 100% rename from charts/handbrake/1.3.4/templates/common.yaml rename to incubator/navidrome/2.0.0/templates/common.yaml diff --git a/charts/navidrome/1.6.4/test_values.yaml b/incubator/navidrome/2.0.0/test_values.yaml similarity index 79% rename from charts/navidrome/1.6.4/test_values.yaml rename to incubator/navidrome/2.0.0/test_values.yaml index 8018d4a4164..51f24faec0d 100644 --- a/charts/navidrome/1.6.4/test_values.yaml +++ b/incubator/navidrome/2.0.0/test_values.yaml @@ -8,16 +8,17 @@ image: strategy: type: Recreate -service: - port: - port: 4533 +services: + main: + port: + port: 4533 env: - ND_SCANINTERVAL: 15m - ND_LOGLEVEL: info - ND_SESSIONTIMEOUT: 24h + ND_SCANINTERVAL: "15m" + ND_LOGLEVEL: "info" + ND_SESSIONTIMEOUT: "24h" ND_ENABLETRANSCODINGCONFIG: "true" - ND_MUSICFOLDER: /music + ND_MUSICFOLDER: "/music" persistence: config: @@ -29,8 +30,8 @@ persistence: ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) # storageClass: "-" # accessMode: ReadWriteOnce # size: 1Gi @@ -46,8 +47,8 @@ persistence: ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) # storageClass: "-" # accessMode: ReadWriteOnce # size: 1Gi @@ -55,10 +56,6 @@ persistence: # skipuninstall: false # existingClaim: "" - -appIngressEnabled: false - - appVolumeMounts: config: enabled: true diff --git a/incubator/navidrome/2.0.0/values.yaml b/incubator/navidrome/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/navidrome/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/navidrome/item.yaml b/incubator/navidrome/item.yaml similarity index 100% rename from charts/navidrome/item.yaml rename to incubator/navidrome/item.yaml diff --git a/charts/jackett/1.6.4/.helmignore b/incubator/node-red/2.0.0/.helmignore similarity index 100% rename from charts/jackett/1.6.4/.helmignore rename to incubator/node-red/2.0.0/.helmignore diff --git a/incubator/node-red/2.0.0/CONFIG.md b/incubator/node-red/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/node-red/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/node-red/1.6.4/Chart.yaml b/incubator/node-red/2.0.0/Chart.yaml similarity index 66% rename from charts/node-red/1.6.4/Chart.yaml rename to incubator/node-red/2.0.0/Chart.yaml index f913d4f4926..77dfadf53f0 100644 --- a/charts/node-red/1.6.4/Chart.yaml +++ b/incubator/node-red/2.0.0/Chart.yaml @@ -1,29 +1,26 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: node-red -version: 1.6.4 +version: 2.0.0 upstream_version: 5.2.1 -appVersion: 1.2.5 +appVersion: "auto" description: Node-RED is low-code programming for event-driven applications type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/node-red +home: https://github.com/truecharts/apps/tree/master/incubator/node-red icon: https://nodered.org/about/resources/media/node-red-icon-2.png keywords: - node-red - nodered sources: - - https://github.com/truecharts/charts/tree/master/charts/node-red + - https://github.com/truecharts/apps/tree/master/incubator/node-red - https://github.com/k8s-at-home/charts/tree/master/charts/node-red - https://github.com/node-red/node-red-docker dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/node-red/1.6.4/README.md b/incubator/node-red/2.0.0/README.md similarity index 73% rename from charts/node-red/1.6.4/README.md rename to incubator/node-red/2.0.0/README.md index 15091737ea7..904a12a2437 100644 --- a/charts/node-red/1.6.4/README.md +++ b/incubator/node-red/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.2.5](https://img.shields.io/badge/AppVersion-1.2.5-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Node-RED is low-code programming for event-driven applications TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/node-red/2.0.0/app-readme.md b/incubator/node-red/2.0.0/app-readme.md new file mode 100644 index 00000000000..a45ce7c4d5a --- /dev/null +++ b/incubator/node-red/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Node-RED is low-code programming for event-driven applications +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/node-red/2.0.0/charts/common-2.0.0.tgz b/incubator/node-red/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/node-red/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/node-red/2.0.0/ix_values.yaml b/incubator/node-red/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..5c35f8a014b --- /dev/null +++ b/incubator/node-red/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: nodered/node-red + pullPolicy: IfNotPresent + tag: 1.2.5 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/node-red/2.0.0/questions.yaml b/incubator/node-red/2.0.0/questions.yaml new file mode 100644 index 00000000000..a53200acde9 --- /dev/null +++ b/incubator/node-red/2.0.0/questions.yaml @@ -0,0 +1,414 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Data ------------------------ + - variable: data + label: "data dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/heimdall/1.6.4/templates/common.yaml b/incubator/node-red/2.0.0/templates/common.yaml similarity index 100% rename from charts/heimdall/1.6.4/templates/common.yaml rename to incubator/node-red/2.0.0/templates/common.yaml diff --git a/charts/node-red/1.6.4/test_values.yaml b/incubator/node-red/2.0.0/test_values.yaml similarity index 89% rename from charts/node-red/1.6.4/test_values.yaml rename to incubator/node-red/2.0.0/test_values.yaml index 0d1c4f5c343..ddb6d82dab1 100644 --- a/charts/node-red/1.6.4/test_values.yaml +++ b/incubator/node-red/2.0.0/test_values.yaml @@ -17,9 +17,10 @@ env: {} # NODE_RED_ENABLE_SAFE_MODE: # FLOWS: -service: - port: - port: 1880 +services: + main: + port: + port: 1880 persistence: data: @@ -30,11 +31,9 @@ persistence: ## TrueCharts Config - - appVolumeMounts: config: enabled: true emptyDir: true setPermissions: true - mountPath: "/config" + mountPath: "/data" diff --git a/incubator/node-red/2.0.0/values.yaml b/incubator/node-red/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/node-red/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/node-red/item.yaml b/incubator/node-red/item.yaml similarity index 100% rename from charts/node-red/item.yaml rename to incubator/node-red/item.yaml diff --git a/charts/nzbget/1.6.4/.helmignore b/incubator/nzbget/2.0.0/.helmignore similarity index 100% rename from charts/nzbget/1.6.4/.helmignore rename to incubator/nzbget/2.0.0/.helmignore diff --git a/incubator/nzbget/2.0.0/CONFIG.md b/incubator/nzbget/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/nzbget/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/nzbget/1.6.4/Chart.yaml b/incubator/nzbget/2.0.0/Chart.yaml similarity index 66% rename from charts/nzbget/1.6.4/Chart.yaml rename to incubator/nzbget/2.0.0/Chart.yaml index 33ce7bd59d2..4deefe7b822 100644 --- a/charts/nzbget/1.6.4/Chart.yaml +++ b/incubator/nzbget/2.0.0/Chart.yaml @@ -1,30 +1,27 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: nzbget -version: 1.6.4 +version: 2.0.0 upstream_version: 7.3.1 -appVersion: v21.0 +appVersion: "auto" description: NZBGet is a Usenet downloader client type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/nzbget +home: https://github.com/truecharts/apps/tree/master/incubator/nzbget icon: https://avatars1.githubusercontent.com/u/3368377?s=400&v=4 keywords: - nzbget - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/nzbget + - https://github.com/truecharts/apps/tree/master/incubator/nzbget - https://github.com/k8s-at-home/charts/tree/master/charts/nzbget - https://hub.docker.com/r/linuxserver/nzbget/ - https://nzbget.net/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/nzbget/1.6.4/README.md b/incubator/nzbget/2.0.0/README.md similarity index 73% rename from charts/nzbget/1.6.4/README.md rename to incubator/nzbget/2.0.0/README.md index 7d930ce7a9b..7511c4bdf21 100644 --- a/charts/nzbget/1.6.4/README.md +++ b/incubator/nzbget/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v21.0](https://img.shields.io/badge/AppVersion-v21.0-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) NZBGet is a Usenet downloader client TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/nzbget/2.0.0/app-readme.md b/incubator/nzbget/2.0.0/app-readme.md new file mode 100644 index 00000000000..4b7040a4d9c --- /dev/null +++ b/incubator/nzbget/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +NZBGet is a Usenet downloader client +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/nzbget/2.0.0/charts/common-2.0.0.tgz b/incubator/nzbget/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/nzbget/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/nzbget/2.0.0/ix_values.yaml b/incubator/nzbget/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..08de88a7357 --- /dev/null +++ b/incubator/nzbget/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/nzbget + pullPolicy: IfNotPresent + tag: v21.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/radarr/1.6.4/questions.yaml b/incubator/nzbget/2.0.0/questions.yaml similarity index 64% rename from charts/radarr/1.6.4/questions.yaml rename to incubator/nzbget/2.0.0/questions.yaml index c32f62a4904..def3319a7f5 100644 --- a/charts/radarr/1.6.4/questions.yaml +++ b/incubator/nzbget/2.0.0/questions.yaml @@ -1,65 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-radarrService.port" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/radarr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-3.0.0.3989" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -68,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -76,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -84,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -113,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 7878 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -159,15 +124,84 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: - # Config ------------------------ - variable: config label: "config dataset" schema: @@ -204,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -224,62 +259,6 @@ questions: schema: type: hostpath required: true - - variable: media - label: "media dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "media" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/media" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - variable: downloads label: "downloads dataset" schema: @@ -337,15 +316,75 @@ questions: type: hostpath required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -356,6 +395,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -381,62 +435,34 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: type: string default: "" - - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - type: string - default: "" diff --git a/charts/gaps/1.6.4/templates/NOTES.txt b/incubator/nzbget/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/gaps/1.6.4/templates/NOTES.txt rename to incubator/nzbget/2.0.0/templates/NOTES.txt diff --git a/charts/home-assistant/1.6.4/templates/common.yaml b/incubator/nzbget/2.0.0/templates/common.yaml similarity index 100% rename from charts/home-assistant/1.6.4/templates/common.yaml rename to incubator/nzbget/2.0.0/templates/common.yaml diff --git a/charts/nzbget/1.6.4/test_values.yaml b/incubator/nzbget/2.0.0/test_values.yaml similarity index 93% rename from charts/nzbget/1.6.4/test_values.yaml rename to incubator/nzbget/2.0.0/test_values.yaml index 35f2c68ae5a..38c4f330969 100644 --- a/charts/nzbget/1.6.4/test_values.yaml +++ b/incubator/nzbget/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for nzbget. image: - repository: linuxserver/nzbget + repository: ghcr.io/truecharts/nzbget pullPolicy: IfNotPresent - tag: version-v21.0 + tag: v21.0 strategy: type: Recreate -service: - port: - port: 6789 +services: + main: + port: + port: 6789 persistence: config: @@ -51,8 +52,6 @@ persistence: # skipuninstall: false # existingClaim: "" -appIngressEnabled: false - appVolumeMounts: config: enabled: true diff --git a/incubator/nzbget/2.0.0/values.yaml b/incubator/nzbget/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/nzbget/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/nzbget/item.yaml b/incubator/nzbget/item.yaml similarity index 100% rename from charts/nzbget/item.yaml rename to incubator/nzbget/item.yaml diff --git a/charts/nzbhydra/1.6.4/.helmignore b/incubator/nzbhydra/2.0.0/.helmignore similarity index 100% rename from charts/nzbhydra/1.6.4/.helmignore rename to incubator/nzbhydra/2.0.0/.helmignore diff --git a/incubator/nzbhydra/2.0.0/CONFIG.md b/incubator/nzbhydra/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/nzbhydra/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/nzbhydra/1.6.4/Chart.yaml b/incubator/nzbhydra/2.0.0/Chart.yaml similarity index 68% rename from charts/nzbhydra/1.6.4/Chart.yaml rename to incubator/nzbhydra/2.0.0/Chart.yaml index a0330a85ad0..2d6050bfd56 100644 --- a/charts/nzbhydra/1.6.4/Chart.yaml +++ b/incubator/nzbhydra/2.0.0/Chart.yaml @@ -1,30 +1,27 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: nzbhydra -version: 1.6.4 +version: 2.0.0 upstream_version: 5.3.1 -appVersion: v3.8.1 +appVersion: "auto" description: Usenet meta search type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/nzbhydra +home: https://github.com/truecharts/apps/tree/master/incubator/nzbhydra icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png keywords: - nzbhydra - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/nzbhydra + - https://github.com/truecharts/apps/tree/master/incubator/nzbhydra - https://github.com/k8s-at-home/charts/tree/master/charts/nzbhydra - https://hub.docker.com/r/linuxserver/nzbhydra2 - https://github.com/theotherp/nzbhydra2 dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/nzbhydra/1.6.4/README.md b/incubator/nzbhydra/2.0.0/README.md similarity index 73% rename from charts/nzbhydra/1.6.4/README.md rename to incubator/nzbhydra/2.0.0/README.md index c04acec2742..5b42b4fec18 100644 --- a/charts/nzbhydra/1.6.4/README.md +++ b/incubator/nzbhydra/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v3.8.1](https://img.shields.io/badge/AppVersion-v3.8.1-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Usenet meta search TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/nzbhydra/2.0.0/app-readme.md b/incubator/nzbhydra/2.0.0/app-readme.md new file mode 100644 index 00000000000..48888f89366 --- /dev/null +++ b/incubator/nzbhydra/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Usenet meta search +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/nzbhydra/2.0.0/charts/common-2.0.0.tgz b/incubator/nzbhydra/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/nzbhydra/2.0.0/charts/common-2.0.0.tgz differ diff --git a/charts/nzbhydra/1.6.4/values.yaml b/incubator/nzbhydra/2.0.0/ix_values.yaml similarity index 62% rename from charts/nzbhydra/1.6.4/values.yaml rename to incubator/nzbhydra/2.0.0/ix_values.yaml index 01840df65f7..c5ebd5f5b2b 100644 --- a/charts/nzbhydra/1.6.4/values.yaml +++ b/incubator/nzbhydra/2.0.0/ix_values.yaml @@ -1,21 +1,13 @@ -# Default values for nzbhydra. +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## image: - repository: linuxserver/nzbhydra2 + repository: ghcr.io/truecharts/nzbhydra2 pullPolicy: IfNotPresent - tag: version-v3.8.1 - -strategy: - type: Recreate - -service: - port: - port: 5076 - -env: {} - # TZ: UTC - # PUID: 1001 - # PGID: 1001 + tag: v3.13.1 probes: liveness: @@ -53,15 +45,7 @@ probes: timeoutSeconds: 10 -persistence: - config: - enabled: false - emptyDir: false - -appIngressEnabled: false - - -#appVolumeMounts: -# config: -# enabled: false -# emptyDir: false +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/lazylibrarian/1.6.4/questions.yaml b/incubator/nzbhydra/2.0.0/questions.yaml similarity index 64% rename from charts/lazylibrarian/1.6.4/questions.yaml rename to incubator/nzbhydra/2.0.0/questions.yaml index 902101c6701..42ebc8e4f23 100644 --- a/charts/lazylibrarian/1.6.4/questions.yaml +++ b/incubator/nzbhydra/2.0.0/questions.yaml @@ -1,65 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-lazylibrarianService.port" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/lazylibrarian" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-047f91af" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -68,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -76,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -84,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -113,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 5299 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -159,15 +124,84 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: - # Config ------------------------ - variable: config label: "config dataset" schema: @@ -204,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -224,62 +259,6 @@ questions: schema: type: hostpath required: true - - variable: media - label: "media dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "media" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/media" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - variable: downloads label: "downloads dataset" schema: @@ -337,15 +316,75 @@ questions: type: hostpath required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -356,6 +395,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -381,54 +435,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/handbrake/1.3.4/templates/NOTES.txt b/incubator/nzbhydra/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/handbrake/1.3.4/templates/NOTES.txt rename to incubator/nzbhydra/2.0.0/templates/NOTES.txt diff --git a/charts/jackett/1.6.4/templates/common.yaml b/incubator/nzbhydra/2.0.0/templates/common.yaml similarity index 100% rename from charts/jackett/1.6.4/templates/common.yaml rename to incubator/nzbhydra/2.0.0/templates/common.yaml diff --git a/charts/nzbhydra/1.6.4/test_values.yaml b/incubator/nzbhydra/2.0.0/test_values.yaml similarity index 90% rename from charts/nzbhydra/1.6.4/test_values.yaml rename to incubator/nzbhydra/2.0.0/test_values.yaml index 67c12bfb8c8..58bb65b8d11 100644 --- a/charts/nzbhydra/1.6.4/test_values.yaml +++ b/incubator/nzbhydra/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for nzbhydra. image: - repository: linuxserver/nzbhydra2 + repository: ghcr.io/truecharts/nzbhydra2 pullPolicy: IfNotPresent - tag: version-v3.8.1 + tag: v3.13.1 strategy: type: Recreate -service: - port: - port: 5076 +services: + main: + port: + port: 5076 env: {} # TZ: UTC @@ -58,8 +59,6 @@ persistence: enabled: false emptyDir: false -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/nzbhydra/2.0.0/values.yaml b/incubator/nzbhydra/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/nzbhydra/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/nzbhydra/item.yaml b/incubator/nzbhydra/item.yaml similarity index 100% rename from charts/nzbhydra/item.yaml rename to incubator/nzbhydra/item.yaml diff --git a/charts/jellyfin/1.6.4/.helmignore b/incubator/organizr/2.0.0/.helmignore similarity index 100% rename from charts/jellyfin/1.6.4/.helmignore rename to incubator/organizr/2.0.0/.helmignore diff --git a/incubator/organizr/2.0.0/CONFIG.md b/incubator/organizr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/organizr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/organizr/1.6.4/Chart.yaml b/incubator/organizr/2.0.0/Chart.yaml similarity index 67% rename from charts/organizr/1.6.4/Chart.yaml rename to incubator/organizr/2.0.0/Chart.yaml index b5f27753c5a..9ab13cd2d13 100644 --- a/charts/organizr/1.6.4/Chart.yaml +++ b/incubator/organizr/2.0.0/Chart.yaml @@ -1,29 +1,26 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: organizr -version: 1.6.4 +version: 2.0.0 upstream_version: 3.2.1 -appVersion: latest +appVersion: "latest" description: HTPC/Homelab Services Organizer type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/organizr +home: https://github.com/truecharts/apps/tree/master/incubator/organizr icon: https://github.com/causefx/Organizr/blob/v2-master/plugins/images/organizr/logo.png?raw=true keywords: - organizr sources: - - https://github.com/truecharts/charts/tree/master/charts/organizr + - https://github.com/truecharts/apps/tree/master/incubator/organizr - https://github.com/k8s-at-home/charts/tree/master/charts/organizr - https://github.com/causefx/Organizr - https://hub.docker.com/r/organizr/organizr dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/organizr/1.6.4/README.md b/incubator/organizr/2.0.0/README.md similarity index 78% rename from charts/organizr/1.6.4/README.md rename to incubator/organizr/2.0.0/README.md index e275b41eac4..88b57eeebee 100644 --- a/charts/organizr/1.6.4/README.md +++ b/incubator/organizr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) HTPC/Homelab Services Organizer TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/organizr/2.0.0/app-readme.md b/incubator/organizr/2.0.0/app-readme.md new file mode 100644 index 00000000000..54d9442b18b --- /dev/null +++ b/incubator/organizr/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +HTPC/Homelab Services Organizer +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/organizr/2.0.0/charts/common-2.0.0.tgz b/incubator/organizr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/organizr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/organizr/2.0.0/ix_values.yaml b/incubator/organizr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..bb40951b9af --- /dev/null +++ b/incubator/organizr/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: organizr/organizr + pullPolicy: Always + tag: latest + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/bazarr/1.6.4/questions.yaml b/incubator/organizr/2.0.0/questions.yaml similarity index 63% rename from charts/bazarr/1.6.4/questions.yaml rename to incubator/organizr/2.0.0/questions.yaml index 538af27ee91..2ef18d6d04c 100644 --- a/charts/bazarr/1.6.4/questions.yaml +++ b/incubator/organizr/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-bazarrService.port" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/bazarr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-v0.9.0.5" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 6767 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -203,6 +239,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -223,8 +260,8 @@ questions: schema: type: hostpath required: true - - variable: media - label: "media dataset" + - variable: data + label: "data dataset" schema: type: dict $ref: @@ -256,7 +293,7 @@ questions: label: "Dataset Name" schema: type: string - default: "media" + default: "data" required: true editable: false - variable: mountPath @@ -265,63 +302,7 @@ questions: schema: type: path required: true - default: "/media" - editable: false - - variable: hostPathEnabled - label: "host Path Enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true - - variable: downloads - label: "downloads dataset" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: enabled - label: "Enabled" - schema: - type: boolean - default: true - required: true - hidden: true - editable: false - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - type: boolean - default: true - hidden: false - - variable: emptyDir - label: "emptyDir" - schema: - type: boolean - default: false - hidden: true - editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - - variable: mountPath - label: "Mount Path" - description: "Path to mount inside the pod" - schema: - type: path - required: true - default: "/downloads" + default: "/data" editable: false - variable: hostPathEnabled label: "host Path Enabled" @@ -336,15 +317,76 @@ questions: type: hostpath required: true - - variable: appIngress + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -355,6 +397,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -380,54 +437,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/jellyfin/1.6.4/templates/common.yaml b/incubator/organizr/2.0.0/templates/common.yaml similarity index 100% rename from charts/jellyfin/1.6.4/templates/common.yaml rename to incubator/organizr/2.0.0/templates/common.yaml diff --git a/charts/organizr/1.6.4/test_values.yaml b/incubator/organizr/2.0.0/test_values.yaml similarity index 86% rename from charts/organizr/1.6.4/test_values.yaml rename to incubator/organizr/2.0.0/test_values.yaml index 0b9961fbf0a..b8de47f26fb 100644 --- a/charts/organizr/1.6.4/test_values.yaml +++ b/incubator/organizr/2.0.0/test_values.yaml @@ -1,4 +1,3 @@ - # Default values for Organizr. image: @@ -9,9 +8,12 @@ image: strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # TZ: UTC diff --git a/incubator/organizr/2.0.0/values.yaml b/incubator/organizr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/organizr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/organizr/item.yaml b/incubator/organizr/item.yaml similarity index 100% rename from charts/organizr/item.yaml rename to incubator/organizr/item.yaml diff --git a/charts/qbittorrent/1.6.4/.helmignore b/incubator/qbittorrent/2.0.0/.helmignore similarity index 100% rename from charts/qbittorrent/1.6.4/.helmignore rename to incubator/qbittorrent/2.0.0/.helmignore diff --git a/incubator/qbittorrent/2.0.0/CONFIG.md b/incubator/qbittorrent/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/qbittorrent/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/qbittorrent/1.6.4/Chart.yaml b/incubator/qbittorrent/2.0.0/Chart.yaml similarity index 68% rename from charts/qbittorrent/1.6.4/Chart.yaml rename to incubator/qbittorrent/2.0.0/Chart.yaml index c676840e663..355afbaf818 100644 --- a/charts/qbittorrent/1.6.4/Chart.yaml +++ b/incubator/qbittorrent/2.0.0/Chart.yaml @@ -1,29 +1,26 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: qbittorrent -version: 1.6.4 +version: 2.0.0 upstream_version: 7.2.1 -appVersion: 4.3.0 +appVersion: "auto" description: qBittorrent is a cross-platform free and open-source BitTorrent client type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/qbittorrent +home: https://github.com/truecharts/apps/tree/master/incubator/qbittorrent icon: https://cloud.githubusercontent.com/assets/14862437/23586868/89ef2922-01c4-11e7-869c-52aafcece17f.png keywords: - qbittorrent - torrrent sources: - - https://github.com/truecharts/charts/tree/master/charts/qbittorrent + - https://github.com/truecharts/apps/tree/master/incubator/qbittorrent - https://github.com/k8s-at-home/charts/tree/master/charts/qbittorrent - https://hub.docker.com/r/linuxserver/qbittorrent/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/qbittorrent/1.6.4/README.md b/incubator/qbittorrent/2.0.0/README.md similarity index 73% rename from charts/qbittorrent/1.6.4/README.md rename to incubator/qbittorrent/2.0.0/README.md index 5b2877aecb5..f5f8d9fe6b8 100644 --- a/charts/qbittorrent/1.6.4/README.md +++ b/incubator/qbittorrent/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.3.0](https://img.shields.io/badge/AppVersion-4.3.0-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) qBittorrent is a cross-platform free and open-source BitTorrent client TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/qbittorrent/2.0.0/app-readme.md b/incubator/qbittorrent/2.0.0/app-readme.md new file mode 100644 index 00000000000..2f8f8c2fd5a --- /dev/null +++ b/incubator/qbittorrent/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +qBittorrent is a cross-platform free and open-source BitTorrent client +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/qbittorrent/2.0.0/charts/common-2.0.0.tgz b/incubator/qbittorrent/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/qbittorrent/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/qbittorrent/2.0.0/ix_values.yaml b/incubator/qbittorrent/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..073039d93a2 --- /dev/null +++ b/incubator/qbittorrent/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/qbittorrent + pullPolicy: IfNotPresent + tag: v4.3.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/transmission/1.6.4/questions.yaml b/incubator/qbittorrent/2.0.0/questions.yaml similarity index 61% rename from charts/transmission/1.6.4/questions.yaml rename to incubator/qbittorrent/2.0.0/questions.yaml index 0167fa149d8..1466a01aabf 100644 --- a/charts/transmission/1.6.4/questions.yaml +++ b/incubator/qbittorrent/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "network / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/transmission" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-3.00-r2" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,46 +116,203 @@ questions: schema: type: string - - # Enable Host Network + # Enable Host Networking - variable: hostNetwork group: "Networking" - label: "Enable Host Network" + label: "Enable Host Networking" schema: type: boolean default: false - - variable: service + - variable: services group: "Networking" label: "Configure Service" schema: type: dict attrs: - - variable: type - label: "Service type" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" - variable: port label: "Port configuration" schema: type: dict attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" - variable: port label: "container port" schema: type: int - default: 9091 + default: 8080 editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8080 + editable: false + hidden: true - variable: nodePort - label: "Node Port to expose for UI" + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: tcp + label: "TCP Torrent connections" + description: "This service is used to process incomming torrent connections over TCP" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 6881 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: udp + label: "UDP Torrent connections" + description: "This service is used to process incomming torrent connections over UDP" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 6881 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" schema: type: int min: 9000 @@ -159,138 +320,11 @@ questions: default: 36052 required: true - - variable: appAdditionalServices - group: "Networking" - label: "Configure additional services" - schema: - type: dict - attrs: - - variable: tcp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-tcp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "TCP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - variable: udp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-udp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "UDP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -330,6 +364,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -408,15 +443,75 @@ questions: required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -427,6 +522,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -452,129 +562,34 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: type: string default: "" - - variable: tcp - label: "TCP Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Reverse Proxy Type" - schema: - type: string - default: "TCP" - required: true - editable: false - enum: - - value: "TCP" - description: "Plain TCP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "torrent-tcp" - required: true - enum: - - value: "torrent-tcp" - description: "Torrent-TCP: port 51413" - - variable: certType - label: "Select Certificate Type" - schema: - editable: false - type: string - default: "" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" - - variable: udp - label: "UDP Reverse Proxy Configuration" - group: "Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Reverse Proxy Type" - schema: - type: string - default: "UDP" - required: true - editable: false - enum: - - value: "UDP" - description: "Plain UDP Connections" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "torrent-udp" - required: true - enum: - - value: "torrent-udp" - description: "Torrent-UDP: port 51413" diff --git a/charts/lychee/1.6.4/templates/NOTES.txt b/incubator/qbittorrent/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/lychee/1.6.4/templates/NOTES.txt rename to incubator/qbittorrent/2.0.0/templates/NOTES.txt diff --git a/charts/kms/1.6.4/templates/common.yaml b/incubator/qbittorrent/2.0.0/templates/common.yaml similarity index 100% rename from charts/kms/1.6.4/templates/common.yaml rename to incubator/qbittorrent/2.0.0/templates/common.yaml diff --git a/charts/qbittorrent/1.6.4/templates/configmap.yaml b/incubator/qbittorrent/2.0.0/templates/configmap.yaml similarity index 86% rename from charts/qbittorrent/1.6.4/templates/configmap.yaml rename to incubator/qbittorrent/2.0.0/templates/configmap.yaml index ced7963d6cb..f8549d96fc0 100644 --- a/charts/qbittorrent/1.6.4/templates/configmap.yaml +++ b/incubator/qbittorrent/2.0.0/templates/configmap.yaml @@ -23,13 +23,8 @@ metadata: labels: {{- include "common.labels" . | nindent 4 }} data: - {{- /* Determine if the bittorrent port is set somewhere */ -}} {{- $bittorrentPort := "" -}} - {{- range $extraServices := .Values.service.additionalServices }} - {{- if and .enabled (eq "bittorrent" .nameSuffix) -}} - {{- $bittorrentPort = .port.port -}} - {{- end }} - {{- end }} + {{- $bittorrentPort = .Values.services.tcp.port.port -}} {{- if $bittorrentPort }} 31-update-port: |- #!/bin/bash diff --git a/charts/qbittorrent/1.6.4/test_values.yaml b/incubator/qbittorrent/2.0.0/test_values.yaml similarity index 89% rename from charts/qbittorrent/1.6.4/test_values.yaml rename to incubator/qbittorrent/2.0.0/test_values.yaml index 8f5a0e56581..2aa5a5e4948 100644 --- a/charts/qbittorrent/1.6.4/test_values.yaml +++ b/incubator/qbittorrent/2.0.0/test_values.yaml @@ -1,22 +1,38 @@ # Default values for qbittorrent. image: - repository: linuxserver/qbittorrent + repository: ghcr.io/truecharts/qbittorrent pullPolicy: IfNotPresent - tag: version-4.3.0202010181232-7086-1c663adeeubuntu18.04.1 + tag: v4.3.3 strategy: type: Recreate env: {} - # TZ: UTC + # TZ: UTC # PUID: 1001 # PGID: 1001 # UMASK: 022 -service: - port: - port: 8080 +services: + main: + port: + port: 8080 + tcp: + enabled: true + type: ClusterIP + port: + port: 6881 + protocol: TCP + targetPort: 51413 + udp: + enabled: true + type: ClusterIP + port: + port: 6881 + protocol: UDP + targetPort: 51413 + persistence: config: @@ -69,8 +85,6 @@ additionalVolumeMounts: - mountPath: /config/custom-cont-init.d name: qbittorrent-scripts -appIngressEnabled: false - appVolumeMounts: config: @@ -92,19 +106,3 @@ appVolumeMounts: appAdditionalServicesEnabled: true appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-tcp - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-udp - protocol: UDP - targetPort: 51413 diff --git a/incubator/qbittorrent/2.0.0/values.yaml b/incubator/qbittorrent/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/qbittorrent/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/qbittorrent/item.yaml b/incubator/qbittorrent/item.yaml similarity index 100% rename from charts/qbittorrent/item.yaml rename to incubator/qbittorrent/item.yaml diff --git a/charts/deluge/1.6.4/.helmignore b/incubator/readarr/2.0.0/.helmignore similarity index 100% rename from charts/deluge/1.6.4/.helmignore rename to incubator/readarr/2.0.0/.helmignore diff --git a/incubator/readarr/2.0.0/CONFIG.md b/incubator/readarr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/readarr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/readarr/1.6.4/Chart.yaml b/incubator/readarr/2.0.0/Chart.yaml similarity index 67% rename from charts/readarr/1.6.4/Chart.yaml rename to incubator/readarr/2.0.0/Chart.yaml index 23a9720010e..f73bc48a3ce 100644 --- a/charts/readarr/1.6.4/Chart.yaml +++ b/incubator/readarr/2.0.0/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: readarr -version: 1.6.4 +version: 2.0.0 upstream_version: 2.1.0 -appversion: "nightly" +appVersion: "auto" description: A fork of Radarr to work with Books & AudioBooks type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/readarr +home: https://github.com/truecharts/apps/tree/master/incubator/readarr icon: https://github.com/Readarr/Readarr/blob/develop/Logo/1024.png?raw=true keywords: - readarr @@ -16,23 +16,20 @@ keywords: - AudioBooks - ebooks sources: - - https://github.com/truecharts/charts/tree/master/charts/readarr + - https://github.com/truecharts/apps/tree/master/incubator/readarr - https://github.com/k8s-at-home/charts/tree/master/charts/readarr - https://github.com/Readarr/Readarr - https://readarr.com dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/readarr/1.6.4/README.md b/incubator/readarr/2.0.0/README.md similarity index 73% rename from charts/readarr/1.6.4/README.md rename to incubator/readarr/2.0.0/README.md index eb87958e024..da030719b9c 100644 --- a/charts/readarr/1.6.4/README.md +++ b/incubator/readarr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) A fork of Radarr to work with Books & AudioBooks TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/readarr/2.0.0/app-readme.md b/incubator/readarr/2.0.0/app-readme.md new file mode 100644 index 00000000000..51ac9517e32 --- /dev/null +++ b/incubator/readarr/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +A fork of Radarr to work with Books & AudioBooks +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/readarr/2.0.0/charts/common-2.0.0.tgz b/incubator/readarr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/readarr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/readarr/2.0.0/ix_values.yaml b/incubator/readarr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..86d56b218b2 --- /dev/null +++ b/incubator/readarr/2.0.0/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/readarr + pullPolicy: IfNotPresent + tag: v0.1.0.535 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/readarr/1.6.4/questions.yaml b/incubator/readarr/2.0.0/questions.yaml similarity index 60% rename from charts/readarr/1.6.4/questions.yaml rename to incubator/readarr/2.0.0/questions.yaml index 73346552cae..88d44a4b82b 100644 --- a/charts/readarr/1.6.4/questions.yaml +++ b/incubator/readarr/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "hotio/readarr" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "nightly" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8787 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -202,6 +238,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -258,6 +295,7 @@ questions: default: "media" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -335,15 +373,75 @@ questions: type: hostpath required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -354,6 +452,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -379,54 +492,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/navidrome/1.6.4/templates/NOTES.txt b/incubator/readarr/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/navidrome/1.6.4/templates/NOTES.txt rename to incubator/readarr/2.0.0/templates/NOTES.txt diff --git a/charts/lazylibrarian/1.6.4/templates/common.yaml b/incubator/readarr/2.0.0/templates/common.yaml similarity index 100% rename from charts/lazylibrarian/1.6.4/templates/common.yaml rename to incubator/readarr/2.0.0/templates/common.yaml diff --git a/charts/radarr/1.6.4/values.yaml b/incubator/readarr/2.0.0/test_values.yaml similarity index 69% rename from charts/radarr/1.6.4/values.yaml rename to incubator/readarr/2.0.0/test_values.yaml index 1e2801d6638..0107324b615 100644 --- a/charts/radarr/1.6.4/values.yaml +++ b/incubator/readarr/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Radarr. image: - repository: linuxserver/radarr + repository: ghcr.io/truecharts/readarr pullPolicy: IfNotPresent - tag: version-3.0.0.3989 + tag: v0.1.0.535 strategy: type: Recreate -service: - port: - port: 7878 +services: + main: + port: + port: 8787 env: {} # TZ: UTC @@ -27,11 +28,11 @@ probes: spec: exec: command: - - /usr/bin/env - - bash - - -c - - curl --fail localhost:7878/api/v3/system/status?apiKey=`IFS=\> && while - read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8787/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` failureThreshold: 5 initialDelaySeconds: 60 periodSeconds: 10 @@ -60,17 +61,15 @@ persistence: # skipuninstall: false # existingClaim: "" -## TrueCharts Config - - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false -# downloads: -# enabled: true -# emptyDir: false +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" + media: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/media" diff --git a/incubator/readarr/2.0.0/values.yaml b/incubator/readarr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/readarr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/readarr/item.yaml b/incubator/readarr/item.yaml similarity index 100% rename from charts/readarr/item.yaml rename to incubator/readarr/item.yaml diff --git a/charts/sabnzbd/1.6.4/.helmignore b/incubator/sabnzbd/2.0.0/.helmignore similarity index 100% rename from charts/sabnzbd/1.6.4/.helmignore rename to incubator/sabnzbd/2.0.0/.helmignore diff --git a/incubator/sabnzbd/2.0.0/CONFIG.md b/incubator/sabnzbd/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/sabnzbd/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/sabnzbd/1.6.4/Chart.yaml b/incubator/sabnzbd/2.0.0/Chart.yaml similarity index 56% rename from charts/sabnzbd/1.6.4/Chart.yaml rename to incubator/sabnzbd/2.0.0/Chart.yaml index 41c7b54dc59..896c13f8a46 100644 --- a/charts/sabnzbd/1.6.4/Chart.yaml +++ b/incubator/sabnzbd/2.0.0/Chart.yaml @@ -1,30 +1,27 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: sabnzbd -version: 1.6.4 +version: 2.0.0 upstream_version: 5.0.1 -appVersion: 3.1.0 +appVersion: "auto" description: Free and easy binary newsreader type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/sabnzbd -icon: https://raw.githubusercontent.com/truecharts/charts/master/charts/sabnzbd/icon.png?raw=true +home: https://github.com/truecharts/apps/tree/master/incubator/sabnzbd +icon: https://avatars1.githubusercontent.com/u/960698?s=400&v=4 keywords: - sabnzbd - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/sabnzbd + - https://github.com/truecharts/apps/tree/master/incubator/sabnzbd - https://github.com/k8s-at-home/charts/tree/master/charts/sabnzbd - https://hub.docker.com/r/linuxserver/sabnzbd/ - https://sabnzbd.org/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/sabnzbd/1.6.4/README.md b/incubator/sabnzbd/2.0.0/README.md similarity index 73% rename from charts/sabnzbd/1.6.4/README.md rename to incubator/sabnzbd/2.0.0/README.md index c747b2925df..016be203d42 100644 --- a/charts/sabnzbd/1.6.4/README.md +++ b/incubator/sabnzbd/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.0](https://img.shields.io/badge/AppVersion-3.1.0-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Free and easy binary newsreader TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/sabnzbd/2.0.0/app-readme.md b/incubator/sabnzbd/2.0.0/app-readme.md new file mode 100644 index 00000000000..0d8c8c6bb16 --- /dev/null +++ b/incubator/sabnzbd/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Free and easy binary newsreader +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/sabnzbd/2.0.0/charts/common-2.0.0.tgz b/incubator/sabnzbd/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/sabnzbd/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/sabnzbd/2.0.0/ix_values.yaml b/incubator/sabnzbd/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..311ca9a644e --- /dev/null +++ b/incubator/sabnzbd/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/sabnzbd + pullPolicy: IfNotPresent + tag: v3.2.0 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/sabnzbd/2.0.0/questions.yaml b/incubator/sabnzbd/2.0.0/questions.yaml new file mode 100644 index 00000000000..ad338866edc --- /dev/null +++ b/incubator/sabnzbd/2.0.0/questions.yaml @@ -0,0 +1,484 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + + # Docker specific env + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: HOST_WHITELIST_ENTRIES + label: "HostName Whitelist" + description: "If you use a reverse proxy, you might need to enter your hostname's here (comma seperated)" + schema: + type: string + default: "" + required: false + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/nzbget/1.6.4/templates/NOTES.txt b/incubator/sabnzbd/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/nzbget/1.6.4/templates/NOTES.txt rename to incubator/sabnzbd/2.0.0/templates/NOTES.txt diff --git a/charts/lidarr/1.6.4/templates/common.yaml b/incubator/sabnzbd/2.0.0/templates/common.yaml similarity index 100% rename from charts/lidarr/1.6.4/templates/common.yaml rename to incubator/sabnzbd/2.0.0/templates/common.yaml diff --git a/charts/sabnzbd/1.6.4/test_values.yaml b/incubator/sabnzbd/2.0.0/test_values.yaml similarity index 90% rename from charts/sabnzbd/1.6.4/test_values.yaml rename to incubator/sabnzbd/2.0.0/test_values.yaml index 133cc706e37..10dd02d010f 100644 --- a/charts/sabnzbd/1.6.4/test_values.yaml +++ b/incubator/sabnzbd/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Sabnzbd. image: - repository: linuxserver/sabnzbd + repository: ghcr.io/truecharts/sabnzbd pullPolicy: IfNotPresent - tag: version-3.1.0 + tag: v3.2.0 strategy: type: Recreate -service: - port: - port: 8080 +services: + main: + port: + port: 8080 env: {} # TZ: UTC @@ -39,8 +40,6 @@ persistence: # skipuninstall: false # existingClaim: "" -appIngressEnabled: false - appVolumeMounts: config: diff --git a/incubator/sabnzbd/2.0.0/values.yaml b/incubator/sabnzbd/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/sabnzbd/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/sabnzbd/item.yaml b/incubator/sabnzbd/item.yaml similarity index 100% rename from charts/sabnzbd/item.yaml rename to incubator/sabnzbd/item.yaml diff --git a/charts/kms/1.6.4/.helmignore b/incubator/truecommand/2.0.0/.helmignore similarity index 100% rename from charts/kms/1.6.4/.helmignore rename to incubator/truecommand/2.0.0/.helmignore diff --git a/incubator/truecommand/2.0.0/CONFIG.md b/incubator/truecommand/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/truecommand/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/truecommand/1.6.4/Chart.yaml b/incubator/truecommand/2.0.0/Chart.yaml similarity index 63% rename from charts/truecommand/1.6.4/Chart.yaml rename to incubator/truecommand/2.0.0/Chart.yaml index 0632d3ab558..e7f98398ac4 100644 --- a/charts/truecommand/1.6.4/Chart.yaml +++ b/incubator/truecommand/2.0.0/Chart.yaml @@ -1,32 +1,29 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: truecommand -version: 1.6.4 +version: 2.0.0 # upstream_version: 1.1.0 -appVersion: 1.3.2 +appVersion: "nightly" description: Aggregated management of TrueNAS devices type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/truecommand +home: https://github.com/truecharts/apps/tree/master/incubator/truecommand icon: https://www.ixsystems.com/documentation/truecommand/1.2/_static/tv-logo.png keywords: - truecommand sources: - - https://github.com/truecharts/charts/tree/master/charts/truecommand + - https://github.com/truecharts/apps/tree/master/incubator/truecommand - https://hub.docker.com/r/ixsystems/truecommand dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/truecommand/1.6.4/README.md b/incubator/truecommand/2.0.0/README.md similarity index 71% rename from charts/truecommand/1.6.4/README.md rename to incubator/truecommand/2.0.0/README.md index a0704273a29..f19b98569fe 100644 --- a/charts/truecommand/1.6.4/README.md +++ b/incubator/truecommand/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.3.2](https://img.shields.io/badge/AppVersion-1.3.2-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: nightly](https://img.shields.io/badge/AppVersion-nightly-informational?style=flat-square) Aggregated management of TrueNAS devices TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * ## Requirements @@ -20,7 +20,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -45,9 +45,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/truecommand/2.0.0/app-readme.md b/incubator/truecommand/2.0.0/app-readme.md new file mode 100644 index 00000000000..276b7fa97ae --- /dev/null +++ b/incubator/truecommand/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Aggregated management of TrueNAS devices +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/truecommand/2.0.0/charts/common-2.0.0.tgz b/incubator/truecommand/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/truecommand/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/truecommand/2.0.0/ix_values.yaml b/incubator/truecommand/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..4ba073b32f1 --- /dev/null +++ b/incubator/truecommand/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ixsystems/truecommand + pullPolicy: IfNotPresent + tag: nightly + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/navidrome/1.6.4/questions.yaml b/incubator/truecommand/2.0.0/questions.yaml similarity index 58% rename from charts/navidrome/1.6.4/questions.yaml rename to incubator/truecommand/2.0.0/questions.yaml index b84fc542074..b3d0c04cd01 100644 --- a/charts/navidrome/1.6.4/questions.yaml +++ b/incubator/truecommand/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "network / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "deluan/navidrome" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "0.39.0" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,37 +116,78 @@ questions: schema: type: string - - variable: service + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services group: "Networking" label: "Configure Service" schema: type: dict attrs: - - variable: type - label: "Service type" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" - variable: port label: "Port configuration" schema: type: dict attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" - variable: port label: "container port" schema: type: int - default: 4533 + default: 80 editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 80 + editable: false + hidden: true - variable: nodePort - label: "Node Port to expose for UI" + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" schema: type: int min: 9000 @@ -150,19 +195,11 @@ questions: default: 36052 required: true - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -203,6 +240,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -223,13 +261,18 @@ questions: schema: type: hostpath required: true - # Config ------------------------ - - variable: music - label: "music dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -246,6 +289,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -253,43 +303,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "music" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/music" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -300,6 +341,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -325,54 +381,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/truecommand/1.6.4/templates/NOTES.txt b/incubator/truecommand/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/truecommand/1.6.4/templates/NOTES.txt rename to incubator/truecommand/2.0.0/templates/NOTES.txt diff --git a/charts/lychee/1.6.4/templates/common.yaml b/incubator/truecommand/2.0.0/templates/common.yaml similarity index 100% rename from charts/lychee/1.6.4/templates/common.yaml rename to incubator/truecommand/2.0.0/templates/common.yaml diff --git a/charts/truecommand/1.6.4/test_values.yaml b/incubator/truecommand/2.0.0/test_values.yaml similarity index 92% rename from charts/truecommand/1.6.4/test_values.yaml rename to incubator/truecommand/2.0.0/test_values.yaml index d0f99c518c9..34df46ecba7 100644 --- a/charts/truecommand/1.6.4/test_values.yaml +++ b/incubator/truecommand/2.0.0/test_values.yaml @@ -3,14 +3,17 @@ image: repository: ixsystems/truecommand pullPolicy: IfNotPresent - tag: 1.3.2 + tag: nightly strategy: type: Recreate -service: - port: - port: 80 +startAsRoot: true + +services: + main: + port: + port: 80 env: {} # TZ: UTC @@ -35,13 +38,8 @@ persistence: # skipuninstall: false # existingClaim: "" - - ## TrueCharts Config - - - appVolumeMounts: data: enabled: true diff --git a/incubator/truecommand/2.0.0/values.yaml b/incubator/truecommand/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/truecommand/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/truecommand/item.yaml b/incubator/truecommand/item.yaml similarity index 100% rename from charts/truecommand/item.yaml rename to incubator/truecommand/item.yaml diff --git a/charts/tvheadend/1.6.4/.helmignore b/incubator/tvheadend/2.0.0/.helmignore similarity index 100% rename from charts/tvheadend/1.6.4/.helmignore rename to incubator/tvheadend/2.0.0/.helmignore diff --git a/incubator/tvheadend/2.0.0/CONFIG.md b/incubator/tvheadend/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/tvheadend/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/tvheadend/1.6.4/Chart.yaml b/incubator/tvheadend/2.0.0/Chart.yaml similarity index 65% rename from charts/tvheadend/1.6.4/Chart.yaml rename to incubator/tvheadend/2.0.0/Chart.yaml index fa65ecb9bda..4520223281b 100644 --- a/charts/tvheadend/1.6.4/Chart.yaml +++ b/incubator/tvheadend/2.0.0/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: tvheadend -version: 1.6.4 +version: 2.0.0 upstream_version: 1.1.2 appVersion: "latest" description: TVheadend - a TV streaming server and digital video recorder type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/tvheadend +home: https://github.com/truecharts/apps/tree/master/incubator/tvheadend icon: https://avatars.githubusercontent.com/u/1908588?s=200&v=4 keywords: - tvheadend @@ -15,19 +15,16 @@ keywords: - streaming - dvb sources: - - https://github.com/truecharts/charts/tree/master/charts/tvheadend + - https://github.com/truecharts/apps/tree/master/incubator/tvheadend - https://github.com/k8s-at-home/charts/tree/master/charts/tvheadend - https://github.com/tvheadend/tvheadend dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts - email: info@$truecharts.org + email: info@truecharts.org url: truecharts.org # annotations: diff --git a/charts/tvheadend/1.6.4/README.md b/incubator/tvheadend/2.0.0/README.md similarity index 78% rename from charts/tvheadend/1.6.4/README.md rename to incubator/tvheadend/2.0.0/README.md index 30440d4fafa..7a317430139 100644 --- a/charts/tvheadend/1.6.4/README.md +++ b/incubator/tvheadend/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) TVheadend - a TV streaming server and digital video recorder TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/tvheadend/2.0.0/app-readme.md b/incubator/tvheadend/2.0.0/app-readme.md new file mode 100644 index 00000000000..be61274c825 --- /dev/null +++ b/incubator/tvheadend/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +TVheadend - a TV streaming server and digital video recorder +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/tvheadend/2.0.0/charts/common-2.0.0.tgz b/incubator/tvheadend/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/tvheadend/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/tvheadend/2.0.0/ix_values.yaml b/incubator/tvheadend/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..4b1ca609adf --- /dev/null +++ b/incubator/tvheadend/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: linuxserver/tvheadend + pullPolicy: IfNotPresent + tag: latest + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/incubator/tvheadend/2.0.0/questions.yaml b/incubator/tvheadend/2.0.0/questions.yaml new file mode 100644 index 00000000000..b9884f3fdc9 --- /dev/null +++ b/incubator/tvheadend/2.0.0/questions.yaml @@ -0,0 +1,512 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Service Configuration + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: htsp + label: "HTSP service" + description: "Service to connect to htsp" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + + # Configure app volumes + - variable: appVolumeMounts + group: "Storage and Devices" + label: "" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "Config Volume" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount path inside the container" + schema: + type: path + default: "/config" + editable: false + - variable: hostPathEnabled + label: "Config - Enable Host Path" + description: "something about this here" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Config Host Path" + description: "Host path to store config" + schema: + type: hostpath + required: true + # Recordings ------------------------ + - variable: recordings + label: "Recordings Volume" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount path inside the container" + schema: + type: path + default: "/recordings" + editable: false + - variable: hostPathEnabled + label: "recordings - Enable Host Path" + description: "something about this here" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "recordings Host Path" + description: "Host path to store recordings" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/nzbhydra/1.6.4/templates/NOTES.txt b/incubator/tvheadend/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/nzbhydra/1.6.4/templates/NOTES.txt rename to incubator/tvheadend/2.0.0/templates/NOTES.txt diff --git a/charts/navidrome/1.6.4/templates/common.yaml b/incubator/tvheadend/2.0.0/templates/common.yaml similarity index 100% rename from charts/navidrome/1.6.4/templates/common.yaml rename to incubator/tvheadend/2.0.0/templates/common.yaml diff --git a/charts/tvheadend/1.6.4/test_values.yaml b/incubator/tvheadend/2.0.0/test_values.yaml similarity index 80% rename from charts/tvheadend/1.6.4/test_values.yaml rename to incubator/tvheadend/2.0.0/test_values.yaml index 29d390ee21f..e7550185f17 100644 --- a/charts/tvheadend/1.6.4/test_values.yaml +++ b/incubator/tvheadend/2.0.0/test_values.yaml @@ -8,6 +8,8 @@ image: strategy: type: Recreate +startAsRoot: true + # See https://github.com/linuxserver/docker-tvheadend#parameters env: {} # PUID: 1000 @@ -15,9 +17,17 @@ env: {} # TZ: Europe/London # RUN_OPTS: -service: - port: - port: 9981 +services: + main: + port: + port: 9981 + htsp: + enabled: true + type: ClusterIP + port: + port: 9982 + protocol: TCP + targetPort: 9982 persistence: config: @@ -29,28 +39,15 @@ persistence: emptyDir: false mountPath: /recordings -appIngressEnabled: false - appVolumeMounts: config: enabled: true emptyDir: true - #setPermissions: true + # setPermissions: true mountPath: "/config" recordings: enabled: true emptyDir: true - #setPermissions: true + # setPermissions: true mountPath: "/recordings" - -appAdditionalServicesEnabled: true -appAdditionalServices: - htsp: - enabled: true - type: ClusterIP - port: - port: 9982 - name: htsp - protocol: TCP - targetPort: 9982 diff --git a/incubator/tvheadend/2.0.0/values.yaml b/incubator/tvheadend/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/tvheadend/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/tvheadend/item.yaml b/incubator/tvheadend/item.yaml similarity index 100% rename from charts/tvheadend/item.yaml rename to incubator/tvheadend/item.yaml diff --git a/charts/unifi/1.3.4/.helmignore b/incubator/unifi/2.0.0/.helmignore similarity index 100% rename from charts/unifi/1.3.4/.helmignore rename to incubator/unifi/2.0.0/.helmignore diff --git a/incubator/unifi/2.0.0/CONFIG.md b/incubator/unifi/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/incubator/unifi/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/unifi/1.3.4/Chart.yaml b/incubator/unifi/2.0.0/Chart.yaml similarity index 57% rename from charts/unifi/1.3.4/Chart.yaml rename to incubator/unifi/2.0.0/Chart.yaml index 0bfffe14c09..4f3c670faf9 100644 --- a/charts/unifi/1.3.4/Chart.yaml +++ b/incubator/unifi/2.0.0/Chart.yaml @@ -1,34 +1,28 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: unifi -version: 1.3.4 +version: 2.0.0 upstream_version: 1.5.1 -appVersion: 5.14.23 +appVersion: "auto" description: Ubiquiti Network's Unifi Controller type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/unifi +home: https://github.com/truecharts/apps/tree/master/incubator/unifi icon: https://dl.ubnt.com/press/logo-UniFi.png keywords: - ubiquiti - unifi sources: - - https://github.com/truecharts/charts/tree/master/charts/unifi + - https://github.com/truecharts/apps/tree/master/incubator/unifi - https://github.com/jacobalberty/unifi-docker - https://unifi-network.ui.com dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: whiskerz007 - email: whiskerz007@users.noreply.github.com - # url: # annotations: diff --git a/charts/unifi/1.3.4/README.md b/incubator/unifi/2.0.0/README.md similarity index 72% rename from charts/unifi/1.3.4/README.md rename to incubator/unifi/2.0.0/README.md index b8e4d006fcd..d64dca1470e 100644 --- a/charts/unifi/1.3.4/README.md +++ b/incubator/unifi/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.3.4](https://img.shields.io/badge/Version-1.3.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 5.14.23](https://img.shields.io/badge/AppVersion-5.14.23-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Ubiquiti Network's Unifi Controller TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/incubator/unifi/2.0.0/app-readme.md b/incubator/unifi/2.0.0/app-readme.md new file mode 100644 index 00000000000..35c724cfe02 --- /dev/null +++ b/incubator/unifi/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Ubiquiti Network's Unifi Controller +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/incubator/unifi/2.0.0/charts/common-2.0.0.tgz b/incubator/unifi/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/incubator/unifi/2.0.0/charts/common-2.0.0.tgz differ diff --git a/incubator/unifi/2.0.0/ix_values.yaml b/incubator/unifi/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..92eaf0fd301 --- /dev/null +++ b/incubator/unifi/2.0.0/ix_values.yaml @@ -0,0 +1,22 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jacobalberty/unifi + tag: 6.0.45 + pullPolicy: IfNotPresent + +startAsRoot: true + +envTpl: +# Permissions Settings + UNIFI_GID: "{{ .Values.PUID }}" + UNIFI_UID: "{{ .Values.PGID }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/qbittorrent/1.6.4/questions.yaml b/incubator/unifi/2.0.0/questions.yaml similarity index 61% rename from charts/qbittorrent/1.6.4/questions.yaml rename to incubator/unifi/2.0.0/questions.yaml index 57fb73e270e..e530aeeb4d2 100644 --- a/charts/qbittorrent/1.6.4/questions.yaml +++ b/incubator/unifi/2.0.0/questions.yaml @@ -1,63 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/qbittorrent" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-4.3.0202010181232-7086-1c663adeeubuntu18.04.1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -66,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -74,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -82,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -111,37 +116,203 @@ questions: schema: type: string - - variable: service + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services group: "Networking" label: "Configure Service" schema: type: dict attrs: - - variable: type - label: "Service type" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" - variable: port label: "Port configuration" schema: type: dict attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTPS" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" - variable: port label: "container port" schema: type: int - default: 8787 + default: 8443 editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8443 + editable: false + hidden: true - variable: nodePort - label: "Node Port to expose for UI" + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: tcp + label: "Unifi Device Communications" + description: "This services is used for devices to communicate with the controller" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: udp + label: "Stun Device Communications" + description: "This services is used for devices to communicate with the controller using STUN" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" schema: type: int min: 9000 @@ -149,149 +320,11 @@ questions: default: 36052 required: true - - - variable: appAdditionalServices - group: "Networking" - label: "Configure additional services" - schema: - type: dict - attrs: - - variable: tcp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-tcp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "TCP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - variable: udp - label: "" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-udp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "UDP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - - - # Enable Host Network - - variable: hostNetwork - group: "Networking" - label: "Enable Host Network" - schema: - type: boolean - default: false - ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -331,13 +364,14 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/config" + default: "/unifi" editable: false - variable: hostPathEnabled label: "host Path Enabled" @@ -351,12 +385,19 @@ questions: schema: type: hostpath required: true - - variable: downloads - label: "downloads dataset" + + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -373,6 +414,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -380,44 +428,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/downloads" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui - label: "Web Reverse Proxy Configuration" - group: "Ingress" + - variable: main + label: "Web Ingress Configuration" schema: type: dict attrs: @@ -428,6 +466,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -453,129 +506,92 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: type: string default: "" - variable: tcp - label: "TCP Reverse Proxy Configuration" - group: "Ingress" + label: "TCP Ingress Configuration" schema: type: dict attrs: - variable: enabled - label: "Enable TCP Reverse Proxy" + label: "Enable TCP Ingress" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: type - label: "Select Reverse Proxy Type" + label: "Select Ingress Type" schema: type: string default: "TCP" required: true editable: false - enum: - - value: "TCP" - description: "Plain TCP Connections" + hidden: true - variable: entrypoint label: "Select Entrypoint" schema: type: string - default: "torrent-tcp" + default: "unificom" required: true enum: - - value: "torrent-tcp" - description: "Torrent-TCP: port 51413" - - variable: certType - label: "Select Certificate Type" - schema: - editable: false - type: string - default: "" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" + - value: "unificom" + description: "Unifi Communications TCP: port 8080" - variable: udp - label: "UDP Reverse Proxy Configuration" - group: "Ingress" + label: "UDP Ingress Configuration" schema: type: dict attrs: - variable: enabled - label: "Enable UDP Reverse Proxy" + label: "Enable UDP Ingress" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: type - label: "Select Reverse Proxy Type" + label: "Select Ingress Type" schema: type: string default: "UDP" required: true editable: false - enum: - - value: "UDP" - description: "Plain UDP Connections" + hidden: true - variable: entrypoint label: "Select Entrypoint" schema: type: string - default: "torrent-udp" + default: "stun-udp" required: true enum: - - value: "torrent-udp" - description: "Torrent-UDP: port 51413" + - value: "stun-udp" + description: "STUN UDP: port 3478" diff --git a/charts/node-red/1.6.4/templates/common.yaml b/incubator/unifi/2.0.0/templates/common.yaml similarity index 100% rename from charts/node-red/1.6.4/templates/common.yaml rename to incubator/unifi/2.0.0/templates/common.yaml diff --git a/charts/unifi/1.3.4/test_values.yaml b/incubator/unifi/2.0.0/test_values.yaml similarity index 76% rename from charts/unifi/1.3.4/test_values.yaml rename to incubator/unifi/2.0.0/test_values.yaml index f743bc29fcd..b5cbdca7371 100644 --- a/charts/unifi/1.3.4/test_values.yaml +++ b/incubator/unifi/2.0.0/test_values.yaml @@ -2,15 +2,37 @@ image: repository: jacobalberty/unifi - tag: stable-6 + tag: 6.0.45 pullPolicy: IfNotPresent strategy: type: Recreate -service: - port: - port: 8443 +startAsRoot: true + +envTpl: +# Permissions Settings + UNIFI_GID: "{{ .Values.PUID }}" + UNIFI_UID: "{{ .Values.PGID }}" + +services: + main: + port: + port: 8443 + tcp: + enabled: true + type: ClusterIP + port: + port: 8080 + protocol: TCP + targetPort: 8080 + udp: + enabled: true + type: ClusterIP + port: + port: 3478 + protocol: UDP + targetPort: 3478 env: {} # TZ: @@ -22,26 +44,6 @@ persistence: enabled: false emptyDir: false -appIngressEnabled: false - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 8080 - name: unificom - protocol: TCP - targetPort: 8080 - udp: - enabled: true - type: ClusterIP - port: - port: 3478 - name: unifistun - protocol: UDP - targetPort: 3478 appVolumeMounts: config: diff --git a/incubator/unifi/2.0.0/values.yaml b/incubator/unifi/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/incubator/unifi/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/unifi/item.yaml b/incubator/unifi/item.yaml similarity index 100% rename from charts/unifi/item.yaml rename to incubator/unifi/item.yaml diff --git a/library/common-test/Chart.yaml b/library/common-test/Chart.yaml index a43743d92fe..ecea01cca53 100644 --- a/library/common-test/Chart.yaml +++ b/library/common-test/Chart.yaml @@ -1,25 +1,25 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: common-test -version: 1.4.1 +version: 2.0.0 # upstream_version: -# appVersion: +appVersion: none description: Helper chart to test different use cases of the common library type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/library/common-test -# icon: +home: https://github.com/truecharts/apps/tree/master/library/common-test +icon: https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png keywords: - common-test - truecharts - common - test sources: - - https://github.com/truecharts/charts/tree/master/library/common-test + - https://github.com/truecharts/apps/tree/master/library/common-test dependencies: - name: common repository: file://../common - version: n/a + version: latest # condition: # tags: # import-values: diff --git a/library/common-test/README.md b/library/common-test/README.md index 85a2faa4bc6..52cfe9907af 100644 --- a/library/common-test/README.md +++ b/library/common-test/README.md @@ -4,7 +4,7 @@ Helper chart to test different use cases of the common library -**Homepage:** +**Homepage:** ## Maintainers diff --git a/library/common-test/ci/basic-values.yaml b/library/common-test/ci/basic-values.yaml deleted file mode 100644 index 23e5b375933..00000000000 --- a/library/common-test/ci/basic-values.yaml +++ /dev/null @@ -1,71 +0,0 @@ -image: - repository: b4bz/homer - tag: latest - pullPolicy: IfNotPresent - -service: - port: - port: 8080 - -ingress: - enabled: true - -probes: - liveness: - enabled: true - readiness: - enabled: true - startup: - enabled: true - -fixMountPermissions: false -appVolumeMounts: - data: - enabled: true - emptyDir: true - datasetName: "data" - mountPath: "/data" - hostPathEnabled: false - hostPath: "" - test: - enabled: true - emptyDir: false - datasetName: "test" - mountPath: "/test" - hostPathEnabled: true - hostPath: "/tmp" - -appExtraVolumeMounts: - - name: "extratest1" - enabled: true - emptyDir: true - datasetName: "extratest1" - mountPath: "/extratest1" - hostPathEnabled: false - hostPath: "" - - name: "extratest2" - enabled: true - emptyDir: false - datasetName: "extratest2" - mountPath: "/extratest2" - hostPathEnabled: true - hostPath: "/tmp" - -appAdditionalServicesEnabled: true -appAdditionalServices: - extra-tcp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: tcp-test - protocol: TCP - targetPort: 51414 - extra-udp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: udp-test - protocol: UDP - targetPort: 51414 diff --git a/library/common-test/ci/codeserver-values.yaml b/library/common-test/ci/codeserver-values.yaml deleted file mode 100644 index 38af9e0c379..00000000000 --- a/library/common-test/ci/codeserver-values.yaml +++ /dev/null @@ -1,79 +0,0 @@ -image: - repository: b4bz/homer - tag: latest - pullPolicy: IfNotPresent - -service: - port: - port: 8080 - -ingress: - enabled: true - -persistence: - config: - enabled: true - emptyDir: true - mountPath: /www/assets - -addons: - codeserver: - enabled: true - workingDir: "/www/assets" - ingress: - enabled: true - volumeMounts: - - name: config - mountPath: /www/assets - -fixMountPermissions: false -appVolumeMounts: - data: - enabled: true - emptyDir: true - datasetName: "data" - mountPath: "/data" - hostPathEnabled: false - hostPath: "" - test: - enabled: true - emptyDir: false - datasetName: "test" - mountPath: "/test" - hostPathEnabled: true - hostPath: "/tmp" - -appExtraVolumeMounts: - - name: "extratest1" - enabled: true - emptyDir: true - datasetName: "extratest1" - mountPath: "/extratest1" - hostPathEnabled: false - hostPath: "" - - name: "extratest2" - enabled: true - emptyDir: false - datasetName: "extratest2" - mountPath: "/extratest2" - hostPathEnabled: true - hostPath: "/tmp" - -appAdditionalServicesEnabled: true -appAdditionalServices: - extra-tcp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: tcp-test - protocol: TCP - targetPort: 51414 - extra-udp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: udp-test - protocol: UDP - targetPort: 51414 diff --git a/library/common-test/ci/default-values.yaml b/library/common-test/ci/default-values.yaml new file mode 100644 index 00000000000..6f6bf77ea2d --- /dev/null +++ b/library/common-test/ci/default-values.yaml @@ -0,0 +1,66 @@ +# Default values for common-test. +# Use jackett because it's a nice basic app... +image: + repository: ghcr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: v0.17.671 + +strategy: + type: Recreate + + +services: + main: + enabled: true + port: + port: 9117 + +env: {} + # TZ: UTC + # PUID: 1001 + # PGID: 1001 + + +persistence: + config: + enabled: false + emptyDir: false + + torrentblackhole: + enabled: false + emptyDir: false + mountPath: /downloads + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + + +## TrueCharts Values + +ingress: + main: + enabled: true + # Used when including ingress using {{ include "common.ingress" . }} + type: "HTTP" + entrypoint: "websecure" + certType: "" + annotations: {} + hosts: + - host: chart-example.local + path: / + +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" diff --git a/charts/traefik/1.3.5/crds/ingressroute.yaml b/library/common-test/crds/ingressroute.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/ingressroute.yaml rename to library/common-test/crds/ingressroute.yaml diff --git a/charts/traefik/1.3.5/crds/ingressroutetcp.yaml b/library/common-test/crds/ingressroutetcp.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/ingressroutetcp.yaml rename to library/common-test/crds/ingressroutetcp.yaml diff --git a/charts/traefik/1.3.5/crds/ingressrouteudp.yaml b/library/common-test/crds/ingressrouteudp.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/ingressrouteudp.yaml rename to library/common-test/crds/ingressrouteudp.yaml diff --git a/charts/traefik/1.3.5/crds/middlewares.yaml b/library/common-test/crds/middlewares.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/middlewares.yaml rename to library/common-test/crds/middlewares.yaml diff --git a/charts/qbittorrent/1.6.4/templates/NOTES.txt b/library/common-test/templates/NOTES.txt similarity index 100% rename from charts/qbittorrent/1.6.4/templates/NOTES.txt rename to library/common-test/templates/NOTES.txt diff --git a/library/common-test/values.yaml b/library/common-test/values.yaml index fd0299069fd..0cfdc552b67 100644 --- a/library/common-test/values.yaml +++ b/library/common-test/values.yaml @@ -1,14 +1,58 @@ image: repository: b4bz/homer - tag: latest + tag: 21.03.1 pullPolicy: IfNotPresent -service: - port: - port: 8080 +services: + main: + port: + port: 8080 + test1: + enabled: true + type: ClusterIP + port: + port: 8081 + name: tcp-test + protocol: TCP + targetPort: 8081 + test2: + enabled: true + type: ClusterIP + port: + port: 8082 + name: udp-test + protocol: UDP + targetPort: 8082 + +additionalServices: + - name: test3 + enabled: true + type: ClusterIP + port: + port: 8083 + name: extra-tcp-test + protocol: TCP + targetPort: 8083 + - name: test4 + enabled: true + type: ClusterIP + port: + port: 8084 + name: extra-udp-test + protocol: UDP + targetPort: 8084 ingress: - enabled: true + test1: + enabled: true + test2: + enabled: true + +additionalIngress: + - name: "test3" + enabled: true + - name: "test4" + enabled: true # these values and names are set specifically with the unittests in mind. fixMountPermissions: false @@ -44,22 +88,3 @@ additionalAppVolumeMounts: mountPath: "/test4" hostPathEnabled: true hostPath: "/tmp" - -appAdditionalServicesEnabled: true -appAdditionalServices: - extra-tcp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: tcp-test - protocol: TCP - targetPort: 51414 - extra-udp: - enabled: true - type: ClusterIP - port: - port: 51414 - name: udp-test - protocol: UDP - targetPort: 51414 diff --git a/library/common/Chart.yaml b/library/common/Chart.yaml index 2f3119e795a..9f8114984c1 100644 --- a/library/common/Chart.yaml +++ b/library/common/Chart.yaml @@ -1,20 +1,20 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: common -version: 1.6.7 -# upstream_version: 3.0.1 -# appVersion: +version: 2.0.0 +# upstream_version: +appVersion: none description: Function library for TrueCharts type: library deprecated: false -home: https://github.com/truecharts/truecharts/tree/master/common -# icon: +home: https://github.com/truecharts/apps/tree/master/common +icon: https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png keywords: - truecharts - library-chart - common sources: - - https://github.com/truecharts/charts/tree/master/library/common + - https://github.com/truecharts/apps/tree/master/library/common # dependencies: maintainers: - name: TrueCharts diff --git a/library/common/README.md b/library/common/README.md index ccb93b6e641..7b8dbf3c2be 100644 --- a/library/common/README.md +++ b/library/common/README.md @@ -4,7 +4,7 @@ Function library for TrueCharts -**Homepage:** +**Homepage:** ## Maintainers diff --git a/library/common/templates/_all.tpl b/library/common/templates/_all.tpl index b2f730a3ad0..d444582c15c 100644 --- a/library/common/templates/_all.tpl +++ b/library/common/templates/_all.tpl @@ -38,12 +38,8 @@ Main entrypoint for the common library chart. It will render all underlying temp {{ else if eq .Values.controllerType "statefulset" }} {{- include "common.statefulset" . | nindent 0 }} {{- end -}} - {{- print "---" | nindent 0 -}} - {{ include "common.service" . | nindent 0 }} - {{ include "common.appService" . | nindent 0 }} - {{- print "---" | nindent 0 -}} + {{ include "common.services" . | nindent 0 }} {{ include "common.ingress" . | nindent 0 }} - {{- print "---" | nindent 0 -}} - {{ include "common.appIngress" . | nindent 0 }} + {{ include "common.resources.portal" . | nindent 0 }} {{ include "common.storage.permissions" . | nindent 0 }} {{- end -}} diff --git a/library/common/templates/_ingress.tpl b/library/common/templates/_ingress.tpl index 85a745add50..846043750d7 100644 --- a/library/common/templates/_ingress.tpl +++ b/library/common/templates/_ingress.tpl @@ -1,45 +1,133 @@ -{{/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -`SPDX-License-Identifier: Apache-2.0` - -This file is considered to be modified by the TrueCharts Project. -*/}} - {{/* Renders the Ingress objects required by the chart by returning a concatinated list of the main Ingress and any additionalIngresses. */}} {{- define "common.ingress" -}} - {{- if .Values.ingress.enabled -}} - {{- $svcPort := .Values.service.port.port -}} - - {{- /* Generate primary ingress */ -}} - {{- $ingressValues := .Values.ingress -}} - {{- $_ := set . "ObjectValues" (dict "ingress" $ingressValues) -}} - {{- include "common.classes.ingress" . }} - - {{- /* Generate additional ingresses as required */ -}} - {{- range $index, $extraIngress := .Values.ingress.additionalIngresses }} - {{- if $extraIngress.enabled -}} + {{- /* Generate named ingresses as required */ -}} + {{- range $name, $ingress := .Values.ingress }} + {{- if $ingress.enabled -}} {{- print ("---") | nindent 0 -}} - {{- $ingressValues := $extraIngress -}} - {{- if not $ingressValues.nameSuffix -}} - {{- $_ := set $ingressValues "nameSuffix" $index -}} + {{- $ingressValues := $ingress -}} + + {{/* set defaults */}} + {{- if and (not $ingressValues.nameSuffix) ( ne $name "main" ) -}} + {{- $_ := set $ingressValues "nameSuffix" $name -}} {{ end -}} + {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} + {{- if not $ingressValues.type -}} + {{- $_ := set $ingressValues "type" "HTTP" -}} + {{ end -}} + {{- if not $ingressValues.certType -}} + {{- $_ := set $ingressValues "certType" "" -}} + {{ end -}} + + {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} + {{- include "common.classes.ingressRoute" $ -}} + {{- else -}} {{- include "common.classes.ingress" $ -}} + {{ end -}} + + {{- if $ingressValues.authForwardURL -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.ingress.authForward" $ }} + {{ end -}} + + {{- if eq $ingressValues.certType "ixcert" -}} + {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.resources.cert.secret" $ }} + {{ end -}} {{- end }} {{- end }} - {{- end }} + + + {{- /* Generate additional ingresses as required */ -}} + {{- range $index, $additionalIngress := .Values.additionalIngress }} + {{- if $additionalIngress.enabled -}} + {{- print ("---") | nindent 0 -}} + {{- $ingressValues := $additionalIngress -}} + + {{/* set defaults */}} + {{- $name := $index -}} + {{- if $ingressValues.name -}} + {{- $name := $ingressValues.name -}} + {{- end }} + + {{- if or (not $ingressValues.nameSuffix) ( ne ( $name | quote ) "main" ) -}} + {{- $_ := set $ingressValues "nameSuffix" $name -}} + {{ end -}} + {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} + {{- if not $ingressValues.type -}} + {{- $_ := set $ingressValues "type" "HTTP" -}} + {{ end -}} + {{- if not $ingressValues.certType -}} + {{- $_ := set $ingressValues "certType" "" -}} + {{ end -}} + + {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} + {{- include "common.classes.ingressRoute" $ -}} + {{- else -}} + {{- include "common.classes.ingress" $ -}} + {{ end -}} + + {{- if $ingressValues.authForwardURL -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.ingress.authForward" $ }} + {{ end -}} + + {{- if eq $ingressValues.certType "ixcert" -}} + {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.resources.cert.secret" $ }} + {{ end -}} + {{- end }} + {{- end }} + + {{- /* Generate externalService ingresses as required */ -}} + {{- range $index, $externalService := .Values.externalServices }} + {{- if $externalService.enabled -}} + {{- print ("---") | nindent 0 -}} + {{- $ingressValues := $externalService -}} + + {{/* set defaults */}} + {{- $name := $index -}} + {{- if $ingressValues.name -}} + {{- $name := $ingressValues.name -}} + {{- end }} + {{- $name = printf "%v-%v" "external" $name -}} + + {{- if or (not $ingressValues.nameSuffix) -}} + {{- $_ := set $ingressValues "nameSuffix" $name -}} + {{ end -}} + {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} + {{- if not $ingressValues.type -}} + {{- $_ := set $ingressValues "type" "HTTP" -}} + {{ end -}} + {{- if not $ingressValues.certType -}} + {{- $_ := set $ingressValues "certType" "" -}} + {{ end -}} + + {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} + {{- include "common.classes.ingressRoute" $ -}} + {{- else -}} + {{- include "common.classes.ingress" $ -}} + {{ end -}} + + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.externalService" $ }} + + {{- if $ingressValues.authForwardURL -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.classes.ingress.authForward" $ }} + {{ end -}} + + {{- if eq $ingressValues.certType "ixcert" -}} + {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} + {{- print ("---") | nindent 0 -}} + {{- include "common.resources.cert.secret" $ }} + {{ end -}} + {{- end }} + {{- end }} + {{- end }} diff --git a/library/common/templates/_notes.tpl b/library/common/templates/_notes.tpl index 6b72c05312d..8d701d8e90c 100644 --- a/library/common/templates/_notes.tpl +++ b/library/common/templates/_notes.tpl @@ -20,22 +20,19 @@ This file is considered to be modified by the TrueCharts Project. Default NOTES.txt content. */}} {{- define "common.notes.defaultNotes" -}} -{{- $svcPort := .Values.service.port.port -}} -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{- if .hostTpl }}{{ tpl .hostTpl $ }}{{ else }}{{ .host }}{{ end }}{{ (first .paths).path }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} +{{- $svcPort := .Values.services.main.port.port -}} + echo "use your Ingress URL to connect or find the application URL by running these commands:" + +{{- if contains "NodePort" .Values.services.main.type }} export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} +{{- else if contains "LoadBalancer" .Values.services.main.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc -w {{ include "common.names.fullname" . }}' export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo http://$SERVICE_IP:{{ $svcPort }} -{{- else if contains "ClusterIP" .Values.service.type }} +{{- else if contains "ClusterIP" .Values.services.main.type }} export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl port-forward $POD_NAME 8080:{{ $svcPort }} diff --git a/library/common/templates/_service.tpl b/library/common/templates/_service.tpl deleted file mode 100644 index 7190d60c3d3..00000000000 --- a/library/common/templates/_service.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -`SPDX-License-Identifier: Apache-2.0` - -This file is considered to be modified by the TrueCharts Project. -*/}} - -{{- define "common.service" -}} - {{- if .Values.service.enabled -}} - {{- /* Generate primary service */ -}} - {{- include "common.classes.service" . }} - - {{- /* Generate additional services as required */ -}} - {{- range $index, $extraService := .Values.service.additionalServices }} - {{- if $extraService.enabled -}} - {{- print ("---") | nindent 0 -}} - {{- $serviceValues := $extraService -}} - {{- if not $serviceValues.nameSuffix -}} - {{- $_ := set $serviceValues "nameSuffix" $index -}} - {{ end -}} - {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} - {{- include "common.classes.service" $ -}} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/library/common/templates/_services.tpl b/library/common/templates/_services.tpl new file mode 100644 index 00000000000..9e72e9d04f5 --- /dev/null +++ b/library/common/templates/_services.tpl @@ -0,0 +1,46 @@ +{{/* +Renders the Service objects required by the chart by returning a concatinated list +of the main Service and any additionalServices. +*/}} +{{- define "common.services" -}} + {{- if .Values.services -}} + {{- /* Add dict of primary services */ -}} + {{- range $name, $service := .Values.services }} + {{- if or ( $service.enabled ) ( eq $name "main" ) -}} + {{- print ("---") | nindent 0 -}} + {{- print ("\n") | nindent 0 -}} + {{- $serviceValues := $service -}} + + {{- /* Dont add name suffix for primary service named "main" */ -}} + {{- if and (not $serviceValues.nameSuffix) ( ne $name "main" ) -}} + {{- $_ := set $serviceValues "nameSuffix" $name -}} + {{ end -}} + {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} + {{- include "common.classes.service" $ -}} + {{- end }} + {{- end }} + {{- end }} + + + {{- if .Values.additionalServices -}} + {{- /* Generate additional services as required */ -}} + {{- range $index, $extraService := .Values.additionalServices }} + {{- if $extraService.enabled -}} + {{- print ("---") | nindent 0 -}} + {{- $serviceValues := $extraService -}} + + {{- $name := $index -}} + {{- if $serviceValues.name -}} + {{- $name := $serviceValues.name -}} + {{- end }} + + {{- /* Dont add name suffix for primary service named "main" */ -}} + {{- if and (not $serviceValues.nameSuffix) ( ne ( $name | quote ) "main" ) -}} + {{- $_ := set $serviceValues "nameSuffix" $name -}} + {{ end -}} + {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} + {{- include "common.classes.service" $ -}} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl index 7f1243895a1..c8243072605 100644 --- a/library/common/templates/classes/_service.tpl +++ b/library/common/templates/classes/_service.tpl @@ -21,17 +21,27 @@ This template serves as a blueprint for all Service objects that are created within the common library. */}} {{- define "common.classes.service" -}} -{{- $values := .Values.service -}} +{{- $values := .Values.services.main -}} {{- if hasKey . "ObjectValues" -}} {{- with .ObjectValues.service -}} {{- $values = . -}} {{- end -}} {{ end -}} + {{- $serviceName := include "common.names.fullname" . -}} + + {{- if hasKey $values "nameSuffix" -}} {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} {{ end -}} {{- $svcType := $values.type | default "" -}} + +{{- $portProtocol := $values.port.protocol -}} +{{- if or ( eq $values.port.protocol "HTTP" ) ( eq $values.port.protocol "HTTPS" ) ( eq $values.port.protocol "TCP" ) -}} +{{- $portProtocol = "TCP" -}} +{{- else if eq $values.port.protocol "UDP" }} +{{- $portProtocol = "UDP" -}} +{{- end }} apiVersion: v1 kind: Service metadata: @@ -41,8 +51,11 @@ metadata: {{- if $values.labels }} {{ toYaml $values.labels | nindent 4 }} {{- end }} - {{- with $values.annotations }} annotations: + {{- if eq $values.port.protocol "HTTPS" }} + traefik.ingress.kubernetes.io/service.serversscheme: https + {{- end }} + {{- with $values.annotations }} {{ toYaml . | nindent 4 }} {{- end }} spec: diff --git a/library/common/templates/classes/_service_ports.tpl b/library/common/templates/classes/_service_ports.tpl index 9ecbb09f405..859c3ff5199 100644 --- a/library/common/templates/classes/_service_ports.tpl +++ b/library/common/templates/classes/_service_ports.tpl @@ -29,9 +29,15 @@ Render all the ports and additionalPorts for a Service object. {{- if $ports -}} ports: {{- range $_ := $ports }} + {{- $protocol := "" -}} + {{- if or ( eq .protocol "HTTP" ) ( eq .protocol "HTTPS" ) }} + {{- $protocol = "TCP" -}} + {{- else }} + {{- $protocol = .protocol | default "TCP" -}} + {{- end }} - port: {{ .port }} targetPort: {{ .targetPort | default .name | default "http" }} - protocol: {{ .protocol | default "TCP" }} + protocol: {{ $protocol | default "TCP" }} name: {{ .name | default "http" }} {{- if (and (eq $.svcType "NodePort") (not (empty .nodePort))) }} nodePort: {{ .nodePort }} diff --git a/library/common/templates/classes/ingress/_appAuthForward.tpl b/library/common/templates/classes/ingress/_appAuthForward.tpl deleted file mode 100644 index 9353f7736c3..00000000000 --- a/library/common/templates/classes/ingress/_appAuthForward.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{{/* -Renders the additioanl authForward objects from appAuthForward -*/}} -{{- define "common.classes.appAuthForward" -}} -{{- /* Generate TrueNAS SCALE app services as required v1 */ -}} -{{- $values := .Values.appIngress -}} -{{- if hasKey . "ObjectValues" -}} - {{- with .ObjectValues.appIngress -}} - {{- $values = . -}} - {{- end -}} -{{ end -}} -{{- $authForwardName := include "common.names.fullname" . -}} -{{- if hasKey $values "nameSuffix" -}} - {{- $authForwardName = printf "%v-%v" $authForwardName $values.nameSuffix -}} -{{ end -}} -apiVersion: traefik.containo.us/v1alpha1 -kind: Middleware -metadata: - name: {{ $authForwardName }} -spec: - forwardAuth: - address: {{ $values.authForwardURL }} - tls: - insecureSkipVerify: true -rustForwardHeader: true - authResponseHeaders: - - Remote-User - - Remote-Groups - - Remote-Name - - Remote-Email -{{- end }} diff --git a/library/common/templates/classes/ingress/_appIngressHTTP.tpl b/library/common/templates/classes/ingress/_appIngressHTTP.tpl deleted file mode 100644 index 7f60b10505d..00000000000 --- a/library/common/templates/classes/ingress/_appIngressHTTP.tpl +++ /dev/null @@ -1,84 +0,0 @@ -{{/* -This template serves as a blueprint for all appIngress objects that are created -within the common library. -*/}} -{{- define "common.classes.appIngressHTTP" -}} -{{- $values := .Values.appIngress -}} -{{- if hasKey . "ObjectValues" -}} - {{- with .ObjectValues.appIngress -}} - {{- $values = . -}} - {{- end -}} -{{ end -}} -{{- $IngressName := include "common.names.fullname" . -}} -{{- if hasKey $values "nameSuffix" -}} - {{- $IngressName = printf "%v-%v" $IngressName $values.nameSuffix -}} -{{ end -}} -{{- $svcName := $values.serviceName | default (include "common.names.fullname" .) -}} -{{- $svcPort := $values.servicePort | default $.Values.service.port.port -}} -apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} -kind: Ingress -metadata: - name: {{ $IngressName }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- if or (eq $values.certType "letsencrypt-prod") (eq $values.certType "letsencrypt-staging") }} - cert-manager.io/cluster-issuer: {{ $values.certType }} - {{- end }} - traefik.ingress.kubernetes.io/router.entrypoints: {{ $values.entrypoint }} - traefik.ingress.kubernetes.io/router.middlewares: traefik-middlewares-chain-public@kubernetescrd - {{- if $values.authForwardURL }} - traefik.ingress.kubernetes.io/router.middlewares: {{ $IngressName }} - {{- end }} - {{- with $values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} - {{- if $values.IngressClassName }} - IngressClassName: {{ $values.appIngressHTTPClassName }} - {{- end }} - {{- end }} - {{- if $values.certType }} - tls: - {{- if eq $values.certType "selfsigned" -}}{}{{ else }} - - hosts: - {{- range $values.hosts }} - - {{ .host | quote }} - {{- end }} - {{- if eq $values.certType "selfsigned" -}} - secretName: - {{ else if eq $values.certType "existingcert" }} - secretName: {{ $values.existingcert }} - {{ else if eq $values.certType "ixcert" }} - secretName: {{ $IngressName }} - {{ else if eq $values.certType "wildcard" }} - secretName: wildcardcert - {{ else }} - secretName: {{ $IngressName }}-tls-secret - {{ end }} - {{ end }} - {{- end }} - rules: - {{- range $values.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ .path }} - {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} - pathType: Prefix - {{- end }} - backend: - {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} - service: - name: {{ $svcName }} - port: - number: {{ $svcPort }} - {{- else }} - serviceName: {{ $svcName }} - servicePort: {{ $svcPort }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/library/common/templates/classes/ingress/_appIngressTCP.tpl b/library/common/templates/classes/ingress/_appIngressTCP.tpl deleted file mode 100644 index 2ed8a834923..00000000000 --- a/library/common/templates/classes/ingress/_appIngressTCP.tpl +++ /dev/null @@ -1,64 +0,0 @@ -{{/* -This template serves as a blueprint for all appIngressTCP objects that are created -within the common library. -*/}} -{{- define "common.classes.appIngressTCP" -}} -{{- $values := .Values.appIngress -}} -{{- if hasKey . "ObjectValues" -}} - {{- with .ObjectValues.appIngress -}} - {{- $values = . -}} - {{- end -}} -{{ end -}} -{{- $IngressName := include "common.names.fullname" . -}} -{{- if hasKey $values "nameSuffix" -}} - {{- $IngressName = printf "%v-%v" $IngressName $values.nameSuffix -}} -{{ end -}} -{{- $svcName := $values.serviceName | default (include "common.names.fullname" .) -}} -{{- $svcPort := $values.servicePort | default $.Values.service.port.port -}} -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRouteTCP -metadata: - name: {{ $IngressName }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- if or (eq $values.certType "letsencrypt-prod") (eq $values.certType "letsencrypt-staging") }} - cert-manager.io/cluster-issuer: {{ $values.certType }} - {{- end }} - {{- with $values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - entryPoints: - - {{ $values.entrypoint }} - routes: - - match: HostSNI(`*`) - services: - - name: {{ $svcName }} - port: {{ $svcPort }} - weight: 10 - terminationDelay: 400 - {{- if $values.certType }} - tls: - {{- if eq $values.certType "selfsigned" -}}{}{{ else }} - domains: - - main: {{ index $values.hosts 0 }} - sans: - {{- range $values.hosts }} - - {{ .host | quote }} - {{- end }} - {{- if eq $values.certType "selfsigned" -}} - secretName: - {{ else if eq $values.certType "existingcert" }} - secretName: {{ $values.existingcert }} - {{ else if eq $values.certType "ixcert" }} - secretName: {{ $IngressName }} - {{ else if eq $values.certType "wildcard" }} - secretName: wildcardcert - {{ else }} - secretName: {{ $IngressName }}-tls-secret - {{ end }} - {{ end }} - passthrough: false - {{- end }} -{{- end }} diff --git a/library/common/templates/classes/ingress/_appIngressUDP.tpl b/library/common/templates/classes/ingress/_appIngressUDP.tpl deleted file mode 100644 index b8e73747b4f..00000000000 --- a/library/common/templates/classes/ingress/_appIngressUDP.tpl +++ /dev/null @@ -1,36 +0,0 @@ -{{/* -This template serves as a blueprint for all appIngressTCP objects that are created -within the common library. -*/}} -{{- define "common.classes.appIngressUDP" -}} -{{- $values := .Values.appIngress -}} -{{- if hasKey . "ObjectValues" -}} - {{- with .ObjectValues.appIngress -}} - {{- $values = . -}} - {{- end -}} -{{ end -}} -{{- $IngressName := include "common.names.fullname" . -}} -{{- if hasKey $values "nameSuffix" -}} - {{- $IngressName = printf "%v-%v" $IngressName $values.nameSuffix -}} -{{ end -}} -{{- $svcName := $values.serviceName | default (include "common.names.fullname" .) -}} -{{- $svcPort := $values.servicePort | default $.Values.service.port.port -}} -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRouteUDP -metadata: - name: {{ $IngressName }} - labels: - {{- include "common.labels" . | nindent 4 }} - {{- with $values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - entryPoints: - - {{ $values.entrypoint }} - routes: - - services: - - name: {{ $svcName }} - port: {{ $svcPort }} - weight: 10 -{{- end }} diff --git a/library/common/templates/classes/ingress/_authForward.tpl b/library/common/templates/classes/ingress/_authForward.tpl new file mode 100644 index 00000000000..7cb6b9c5fb2 --- /dev/null +++ b/library/common/templates/classes/ingress/_authForward.tpl @@ -0,0 +1,30 @@ +{{/* +Renders the additional authForward objects from ingress +*/}} +{{- define "common.classes.ingress.authForward" -}} +{{- $authForwardName := include "common.names.fullname" . -}} +{{- $values := .Values -}} +{{- if hasKey . "ObjectValues" -}} + {{- with .ObjectValues.ingress -}} + {{- $values = . -}} + {{- end -}} +{{ end -}} +{{- if hasKey $values "nameSuffix" -}} + {{- $authForwardName = printf "%v-%v" $authForwardName $values.nameSuffix -}} +{{ end -}} +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: {{ $authForwardName }}-auth-forward +spec: + forwardAuth: + address: {{ $values.authForwardURL | quote }} + tls: + insecureSkipVerify: true + trustForwardHeader: true + authResponseHeaders: + - Remote-User + - Remote-Groups + - Remote-Name + - Remote-Email +{{- end }} diff --git a/library/common/templates/classes/ingress/_externalService.tpl b/library/common/templates/classes/ingress/_externalService.tpl new file mode 100644 index 00000000000..a2aedaf5f00 --- /dev/null +++ b/library/common/templates/classes/ingress/_externalService.tpl @@ -0,0 +1,63 @@ +{{- define "common.classes.externalService" -}} +{{- $serviceName := include "common.names.fullname" . -}} +{{- $values := .Values -}} +{{- $svcPort := 80 }} +{{- $ingressService := $.Values }} +{{- if hasKey . "ObjectValues" -}} + {{- with .ObjectValues.ingress -}} + {{- $values = . -}} + {{- end -}} +{{ end -}} + +{{- if hasKey $values "nameSuffix" -}} + {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} +{{ end -}} + +{{- $svcName := $values.serviceName | default $serviceName -}} + +{{- if $values.servicePort }} + {{- $svcPort = $values.servicePort -}} +{{- end }} + +apiVersion: v1 +kind: Service +metadata: + name: {{ $svcName }} + labels: + {{- include "common.labels" . | nindent 4 }} + annotations: + {{- if eq ( $values.serviceType | default "" ) "HTTPS" }} + traefik.ingress.kubernetes.io/service.serversscheme: https + {{- end }} + {{- with $values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ports: +{{- if eq $values.type "UDP"}} + - protocol: UDP + port: {{ $values.servicePort }} + targetPort: {{ $values.servicePort }} +{{- else }} + - protocol: TCP + port: {{ $values.servicePort }} + targetPort: {{ $values.servicePort }} +{{- end }} +--- +apiVersion: v1 +kind: Endpoints +metadata: + name: {{ $svcName }} + labels: + {{- include "common.labels" . | nindent 4 }} + annotations: + {{- with $values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +subsets: + - addresses: + - ip: {{ $values.serviceTarget }} + ports: + - port: {{ $values.servicePort }} + +{{- end }} diff --git a/library/common/templates/classes/ingress/_ingress.tpl b/library/common/templates/classes/ingress/_ingress.tpl index b93d753714a..f419986de58 100644 --- a/library/common/templates/classes/ingress/_ingress.tpl +++ b/library/common/templates/classes/ingress/_ingress.tpl @@ -1,82 +1,101 @@ -{{/* -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -`SPDX-License-Identifier: Apache-2.0` - -This file is considered to be modified by the TrueCharts Project. -*/}} - {{/* This template serves as a blueprint for all Ingress objects that are created within the common library. */}} {{- define "common.classes.ingress" -}} {{- $ingressName := include "common.names.fullname" . -}} -{{- $values := .Values.ingress -}} +{{- $values := .Values -}} +{{- $svcPort := 80 -}} +{{- $portProtocol := "" -}} +{{- $ingressService := $.Values -}} {{- if hasKey . "ObjectValues" -}} {{- with .ObjectValues.ingress -}} {{- $values = . -}} {{- end -}} {{ end -}} + {{- if hasKey $values "nameSuffix" -}} {{- $ingressName = printf "%v-%v" $ingressName $values.nameSuffix -}} + {{- if and ( $.Values.services ) ( not $values.servicePort ) }} + {{- $ingressService := index $.Values.services ( $values.nameSuffix | quote ) }} + {{- $svcPort = $ingressService.port.port -}} + {{- $portProtocol = $ingressService.port.protocol | default "" }} + {{ end -}} +{{- else if and ( $.Values.services ) ( not $values.servicePort ) }} + {{- $svcPort = $.Values.services.main.port.port -}} + {{- $portProtocol = $.Values.services.main.port.protocol | default "" -}} {{ end -}} -{{- $svcName := $values.serviceName | default (include "common.names.fullname" .) -}} -{{- $svcPort := $values.servicePort | default $.Values.service.port.port -}} + +{{- $svcName := $values.serviceName | default $ingressName -}} + +{{- if $values.servicePort }} + {{- $svcPort = $values.servicePort -}} +{{- end }} + +{{- if $values.serviceType }} + {{- $portProtocol = $values.serviceType -}} +{{- end }} + apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} kind: Ingress metadata: name: {{ $ingressName }} labels: {{- include "common.labels" . | nindent 4 }} - {{- with $values.annotations }} annotations: - {{- toYaml . | nindent 4 }} - {{- end }} + {{- if eq $portProtocol "HTTPS" }} + traefik.ingress.kubernetes.io/service.serversscheme: https + {{- end }} + traefik.ingress.kubernetes.io/router.entrypoints: {{ $values.entrypoint | default "websecure" }} + traefik.ingress.kubernetes.io/router.middlewares: traefik-middlewares-chain-public@kubernetescrd{{ if $values.authForwardURL }},{{ $ingressName }}-auth-forward{{ end }} + {{- with $values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} spec: {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} {{- if $values.ingressClassName }} ingressClassName: {{ $values.ingressClassName }} {{- end }} {{- end }} - {{- if $values.tls }} + {{- if or ( eq $values.certType "selfsigned") (eq $values.certType "ixcert") }} tls: - {{- range $values.tls }} - hosts: - {{- range .hosts }} - - {{ . | quote }} + {{- if $values.host}} + - {{ $values.host | quote }} + {{- else }} + {{- range $values.hosts }} + - {{ .host | quote }} {{- end }} - {{- range .hostsTpl }} - - {{ tpl . $ | quote }} {{- end }} - {{- if .secretNameTpl }} - secretName: {{ tpl .secretNameTpl $ | quote}} - {{- else }} - secretName: {{ .secretName }} + {{- if eq $values.certType "ixcert" }} + secretName: {{ $ingressName }} {{- end }} - {{- end }} {{- end }} rules: - {{- range $values.hosts }} - {{- if .hostTpl }} - - host: {{ tpl .hostTpl $ | quote }} - {{- else }} - - host: {{ .host | quote }} - {{- end }} + {{- if $values.host }} + - host: {{ $values.host | quote }} http: paths: - {{- range .paths }} - - path: {{ .path }} + - path: {{ $values.path | default "/" }} + {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} + pathType: Prefix + {{- end }} + backend: + {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} + service: + name: {{ $svcName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $svcName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- range $values.hosts }} + - host: {{ .host | quote }} + http: + paths: + - path: {{ .path | default "/" }} {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} pathType: Prefix {{- end }} @@ -90,6 +109,5 @@ spec: serviceName: {{ $svcName }} servicePort: {{ $svcPort }} {{- end }} - {{- end }} {{- end }} {{- end }} diff --git a/library/common/templates/classes/ingress/_ingressRoute.tpl b/library/common/templates/classes/ingress/_ingressRoute.tpl new file mode 100644 index 00000000000..643a6d2e37b --- /dev/null +++ b/library/common/templates/classes/ingress/_ingressRoute.tpl @@ -0,0 +1,105 @@ +{{/* +This template serves as a blueprint for all ingressRoute objects that are created +within the common library. +*/}} +{{- define "common.classes.ingressRoute" -}} +{{- $ingressName := include "common.names.fullname" . -}} +{{- $values := .Values -}} +{{- $svcPort := 80 }} +{{- $portProtocol := "" }} +{{- $ingressService := $.Values }} +{{- if hasKey . "ObjectValues" -}} + {{- with .ObjectValues.ingress -}} + {{- $values = . -}} + {{- end -}} +{{ end -}} + +{{- if hasKey $values "nameSuffix" -}} + {{- $ingressName = printf "%v-%v" $ingressName $values.nameSuffix -}} + {{- if and ( $.Values.services ) ( not $values.servicePort ) }} + {{- $ingressService := index $.Values.services ( $values.nameSuffix | quote) }} + {{- $svcPort = $ingressService.port.port }} + {{- $portProtocol = $ingressService.port.protocol | default "" }} + {{ end -}} +{{- else if and ( $.Values.services ) ( not $values.servicePort ) }} + {{- $svcPort = $.Values.services.main.port.port }} + {{- $portProtocol = $.Values.services.main.port.protocol | default "" }} +{{ end -}} + +{{- $svcName := $values.serviceName | default $ingressName -}} + +{{- if $values.servicePort }} + {{- $svcPort = $values.servicePort }} +{{- end }} + +{{- if $values.serviceType }} + {{- $portProtocol = $values.serviceType }} +{{- end }} + +apiVersion: traefik.containo.us/v1alpha1 +{{- if eq $values.type "UDP" }} +kind: IngressRouteUDP +{{- else if eq $values.type "TCP" }} +kind: IngressRouteTCP +{{- else }} +kind: IngressRoute +{{- end }} +metadata: + name: {{ $ingressName }} + labels: + {{- include "common.labels" . | nindent 4 }} + annotations: + {{- with $values.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + entryPoints: + - {{ $values.entrypoint }} + routes: + {{- if eq $values.type "UDP" }} + - services: + - name: {{ $svcName }} + port: {{ $svcPort }} + weight: 10 + {{- else if eq $values.type "TCP" }} + - match: HostSNI(`*`) + services: + - name: {{ $svcName }} + port: {{ $svcPort }} + weight: 10 + terminationDelay: 400 + {{- else }} + - kind: Rule + match: Host(`{{ (index $values.hosts 0).host }}`) && PathPrefix(`{{ (index $values.hosts 0).path | default "/" }}`) + services: + - name: {{ $svcName }} + {{- if $values.serviceKind }} + kind: {{ $values.serviceKind }} + {{- else }} + port: {{ $svcPort }} + {{- end }} + middlewares: + - name: traefik-middlewares-chain-public@kubernetescrd + {{- if $values.authForwardURL }} + - name: "{{ $ingressName }}-auth-forward" + {{- end }} + {{- end }} + +{{- if not ( eq $values.type "UDP" ) }} +{{- if or ( eq $values.certType "selfsigned") (eq $values.certType "ixcert") }} + tls: + domains: + - main: {{ (index $values.hosts 0).host }} + sans: + {{- range $values.hosts }} + - {{ .host | quote }} + {{- end }} + {{- if eq $values.certType "ixcert" }} + secretName: {{ $ingressName }} + {{- end }} + passthrough: false + +{{- end }} +{{- end }} + +{{- end }} diff --git a/library/common/templates/lib/controller/_container.tpl b/library/common/templates/lib/controller/_container.tpl index 98e1c086da7..583913f3a96 100644 --- a/library/common/templates/lib/controller/_container.tpl +++ b/library/common/templates/lib/controller/_container.tpl @@ -98,16 +98,12 @@ The main container included in the controller. {{- end }} {{- end }} {{- include "common.controller.probes" . | nindent 2 }} - {{- with .Values.resources }} resources: + {{- with .Values.resources }} {{- toYaml . | nindent 4 }} {{- end }} - {{- if and .Values.gpuConfiguration .Values.resources }} + {{- if and .Values.gpuConfiguration }} limits: - {{- toYaml .Values.gpuConfiguration | nindent 14 }} - {{- else if .Values.gpuConfiguration }} - resources: - limits: - {{- toYaml .Values.gpuConfiguration | nindent 14 }} + {{- toYaml .Values.gpuConfiguration | nindent 6 }} {{- end }} {{- end -}} diff --git a/library/common/templates/lib/controller/_pod.tpl b/library/common/templates/lib/controller/_pod.tpl index fa17fa88784..5645c1b0951 100644 --- a/library/common/templates/lib/controller/_pod.tpl +++ b/library/common/templates/lib/controller/_pod.tpl @@ -26,8 +26,16 @@ imagePullSecrets: {{- toYaml . | nindent 2 }} {{- end }} serviceAccountName: {{ include "common.names.serviceAccountName" . }} -{{- with .Values.podSecurityContext }} securityContext: +{{- if not .Values.startAsRoot }} + runAsUser: {{ .Values.PUID }} + runAsGroup: {{ .Values.PGID }} + fsGroup: {{ .Values.PGID }} + # 5=tty 20=dailout 24=cdrom 44=video 107=render + supplementalGroups: [{{- .Values.supplementalGroups }}] + runAsNonRoot: true +{{- end }} +{{- with .Values.podSecurityContext }} {{- toYaml . | nindent 2 }} {{- end }} {{- with .Values.priorityClassName }} @@ -42,9 +50,15 @@ hostNetwork: {{ . }} {{- with .Values.hostname }} hostname: {{ . }} {{- end }} +{{- if .Values.dnsPolicy }} {{- with .Values.dnsPolicy }} dnsPolicy: {{ . }} {{- end }} +{{- else if .Values.hostNetwork }} +dnsPolicy: "ClusterFirstWithHostNet" +{{- else }} +dnsPolicy: ClusterFirst +{{- end }} {{- with .Values.dnsConfig }} dnsConfig: {{- toYaml . | nindent 2 }} diff --git a/library/common/templates/lib/controller/_ports.tpl b/library/common/templates/lib/controller/_ports.tpl index 257c9338513..528b233d991 100644 --- a/library/common/templates/lib/controller/_ports.tpl +++ b/library/common/templates/lib/controller/_ports.tpl @@ -21,34 +21,14 @@ This file is considered to be modified by the TrueCharts Project. Ports included by the controller. */}} {{- define "common.controller.ports" -}} - {{- $ports := list -}} - {{- with .Values.service -}} - {{- $serviceValues := deepCopy . -}} - {{/* append the ports for the main service */}} - {{- if .enabled -}} - {{- $_ := set .port "name" (default "http" .port.name) -}} - {{- $ports = mustAppend $ports .port -}} - {{- range $_ := .additionalPorts -}} - {{/* append the additonalPorts for the main service */}} - {{- $ports = mustAppend $ports . -}} - {{- end }} - {{- end }} - {{/* append the ports for each additional service */}} - {{- range $_ := .additionalServices }} - {{- if .enabled -}} - {{- $_ := set .port "name" (required "Missing port.name" .port.name) -}} - {{- $ports = mustAppend $ports .port -}} - {{- range $_ := .additionalPorts -}} - {{/* append the additonalPorts for each additional service */}} - {{- $ports = mustAppend $ports . -}} - {{- end }} - {{- end }} - {{- end }} +{{- $ports := list -}} {{/* append the ports for each appAdditionalService - TrueCharts */}} - {{- if and $.Values.appAdditionalServicesEnabled $.Values.appAdditionalServices -}} - {{- range $name, $_ := $.Values.appAdditionalServices }} - {{- if .enabled -}} - {{- if kindIs "string" $name -}} + {{- if $.Values.services -}} + {{- range $name, $_ := $.Values.services }} + {{- if or ( .enabled ) ( eq $name "main" ) -}} + {{- if eq $name "main" -}} + {{- $_ := set .port "name" (default "http" .port.name) -}} + {{- else if kindIs "string" $name -}} {{- $_ := set .port "name" (default .port.name | default $name) -}} {{- else -}} {{- $_ := set .port "name" (required "Missing port.name" .port.name) -}} @@ -61,18 +41,36 @@ Ports included by the controller. {{- end }} {{- end }} {{- end }} - {{- end }} + + {{- if $.Values.additionalServices -}} + {{- range $_ := $.Values.additionalServices }} + {{- if .enabled -}} + {{- $_ := set .port "name" (required "Missing port.name" .port.name) -}} + {{- $ports = mustAppend $ports .port -}} + {{- range $_ := .additionalPorts -}} + {{/* append the additonalPorts for each additional service */}} + {{- $ports = mustAppend $ports . -}} + {{- end }} + {{- end }} + {{- end }} + {{- end }} {{/* export/render the list of ports */}} {{- if $ports -}} ports: {{- range $_ := $ports }} +{{- $protocol := "" -}} +{{- if or ( eq .protocol "HTTP" ) ( eq .protocol "HTTPS" ) }} + {{- $protocol = "TCP" -}} +{{- else }} + {{- $protocol = .protocol | default "TCP" -}} +{{- end }} - name: {{ required "The port's 'name' is not defined" .name }} {{- if and .targetPort (kindIs "string" .targetPort) }} {{- fail (printf "Our charts do not support named ports for targetPort. (port name %s, targetPort %s)" .name .targetPort) }} {{- end }} containerPort: {{ .targetPort | default .port }} - protocol: {{ .protocol | default "TCP" }} + protocol: {{ $protocol | default "TCP" }} {{- end -}} {{- end -}} {{- end -}} diff --git a/library/common/templates/lib/controller/_probes.tpl b/library/common/templates/lib/controller/_probes.tpl index c6c5d38a75a..47d3344217e 100644 --- a/library/common/templates/lib/controller/_probes.tpl +++ b/library/common/templates/lib/controller/_probes.tpl @@ -21,7 +21,7 @@ This file is considered to be modified by the TrueCharts Project. Probes selection logic. */}} {{- define "common.controller.probes" -}} -{{- $svcPort := .Values.service.port.name -}} +{{- $svcPort := .Values.services.main.port.name -}} {{- range $probeName, $probe := .Values.probes }} {{- if $probe.enabled -}} {{- "" | nindent 0 }} diff --git a/library/common/templates/lib/resources/_appService.tpl b/library/common/templates/lib/resources/_appService.tpl deleted file mode 100644 index 2ba32550c4c..00000000000 --- a/library/common/templates/lib/resources/_appService.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{{/* -Renders the additioanl Service objects from appAdditionalServices -*/}} -{{- define "common.appService" -}} - {{- /* Generate TrueNAS SCALE app services as required v1 */ -}} - {{- if and .Values.appAdditionalServicesEnabled .Values.appAdditionalServices -}} - {{- range $name, $srv := .Values.appAdditionalServices }} - {{- if $srv.enabled -}} - {{- print ("---") | nindent 0 -}} - {{- $serviceValues := $srv -}} - {{- if not $serviceValues.nameSuffix -}} - {{- $_ := set $serviceValues "nameSuffix" $name -}} - {{ end -}} - {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} - {{- include "common.classes.service" $ -}} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/library/common/templates/lib/resources/_appingress.tpl b/library/common/templates/lib/resources/_appingress.tpl deleted file mode 100644 index 98328f91cf4..00000000000 --- a/library/common/templates/lib/resources/_appingress.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* -Renders the additional ingress objects from appIngress -*/}} -{{- define "common.appIngress" -}} - {{- if .Values.appIngress -}} - {{- range $name, $ingr := .Values.appIngress }} - {{- if $ingr.enabled -}} - {{- print ("---") | nindent 0 -}} - {{- $ingressValues := $ingr -}} - {{- if not $ingressValues.nameSuffix -}} - {{- $_ := set $ingressValues "nameSuffix" $name -}} - {{ end -}} - {{- $_ := set $ "ObjectValues" (dict "appIngress" $ingressValues) -}} - {{- if $ingressValues.type -}} - {{- if eq $ingressValues.type "UDP" -}} - {{- include "common.classes.appIngressUDP" $ }} - {{- else if eq $ingressValues.type "TCP" -}} - {{- include "common.classes.appIngressTCP" $ }} - {{- else }} - {{- include "common.classes.appIngressHTTP" $ }} - {{- if $ingressValues.authForwardURL }} - {{- include "common.classes.appAuthForward" $ }} - {{- end }} - {{- end }} - {{- else }} - {{- include "common.classes.appIngressHTTP" $ }} - {{- if $ingressValues.authForwardURL }} - {{- include "common.classes.appAuthForward" $ }} - {{- end }} - {{- end }} - {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} - {{- print ("---") | nindent 0 -}} - {{- include "common.resources.cert.secret" $ }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/library/common/templates/lib/resources/_certSecret.yaml b/library/common/templates/lib/resources/_certSecret.yaml index 308b55e0e0e..2409ae70517 100644 --- a/library/common/templates/lib/resources/_certSecret.yaml +++ b/library/common/templates/lib/resources/_certSecret.yaml @@ -4,7 +4,9 @@ {{- $secretName := include "common.names.fullname" . -}} {{- if .ObjectValues.certHolder -}} - {{- $secretName = printf "%v-%v" $secretName .ObjectValues.certHolder.nameSuffix -}} + {{- if hasKey .ObjectValues.certHolder "nameSuffix" -}} + {{- $secretName = printf "%v-%v" $secretName .ObjectValues.certHolder.nameSuffix -}} + {{ end -}} {{ else }} {{- $_ := set $ "ObjectValues" (dict "certHolder" .Values) -}} {{ end -}} diff --git a/library/common/templates/lib/resources/_portal_config.tpl b/library/common/templates/lib/resources/_portal_config.tpl new file mode 100644 index 00000000000..05006b9acdf --- /dev/null +++ b/library/common/templates/lib/resources/_portal_config.tpl @@ -0,0 +1,63 @@ +{{- define "common.resources.portal" -}} + +{{- if .Values.portal }} +{{- if .Values.portal.enabled }} +{{- $host := "$node_ip" }} +{{- $port := 443 }} +{{- $protocol := "https" }} +{{- $portProtocol := "" }} + +{{- if hasKey .Values "ingress" }} + {{- if hasKey .Values.ingress "main" -}} + {{- if .Values.ingress.main.host }} + {{- $host = .Values.ingress.main.host }} + {{- else }} + {{- range .Values.ingress.main.hosts }} + {{- $host = ( .host | quote ) }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} + +{{- if and ( .Values.portal.ingressPort ) ( ne $host "$node_ip" ) }} + {{- $port = .Values.portal.ingressPort }} +{{- else if and ( eq $host "$node_ip" ) ( hasKey .Values "services" ) }} + {{- if hasKey .Values.services "main" }} + {{- if and (hasKey .Values.services.main.port "nodePort" ) ( eq .Values.services.main.type "NodePort" ) }} + {{- $port = .Values.services.main.port.nodePort }} + {{- if or ( eq .Values.services.main.port.protocol "HTTP" ) ( eq .Values.services.main.port.protocol "HTTPS" ) }} + {{- $portProtocol = .Values.services.main.port.protocol }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} + +{{- if and ( $portProtocol ) ( eq $host "$node_ip" ) }} + {{- $protocol = $portProtocol }} +{{- else if and ( ne $host "$node_ip" ) }} + {{- if .Values.ingress.main.certType }} + {{- if eq .Values.ingress.main.certType "" }} + {{- $protocol = "http" }} + {{- end }} + {{- end }} +{{- end }} + +{{- if and ( .Values.portal.host ) ( eq $host "$node_ip" ) }} + {{- $host = .Values.portal.host }} +{{- end }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal + labels: {{ include "common.labels" . | nindent 4 }} +data: + protocol: {{ $protocol }} + host: {{ $host }} + port: {{ $port | quote }} + +{{- end }} +{{- end }} +{{- end -}} diff --git a/library/common/templates/lib/storage/_appStorage.tpl b/library/common/templates/lib/storage/_appStorage.tpl index f9aebb328ee..b23369ce863 100644 --- a/library/common/templates/lib/storage/_appStorage.tpl +++ b/library/common/templates/lib/storage/_appStorage.tpl @@ -3,7 +3,7 @@ Define appVolumeMounts for container */}} {{- define "common.storage.configureAppVolumeMountsInContainer" -}} {{ range $name, $avm := . }} -{{- if (default true $avm.enabled) -}} +{{- if $avm.enabled -}} {{ if $avm.name }} {{ $name = $avm.name }} {{ end }} @@ -22,7 +22,7 @@ Define hostPath for appVolumes */}} {{- define "common.storage.configureAppVolumes" -}} {{- range $name, $av := $.volMounts -}} -{{ if (default true $av.enabled) }} +{{ if $av.enabled }} {{ if $av.name }} {{ $name = $av.name }} {{ end }} diff --git a/library/common/templates/lib/storage/_mountPermissions.tpl b/library/common/templates/lib/storage/_mountPermissions.tpl index e65ba17d636..1a0d38a8983 100644 --- a/library/common/templates/lib/storage/_mountPermissions.tpl +++ b/library/common/templates/lib/storage/_mountPermissions.tpl @@ -3,12 +3,14 @@ This template serves as the blueprint for the mountPermissions job that is run before chart installation. */}} {{- define "common.storage.permissions" -}} -{{- if and .Values.appVolumeMounts .Values.fixMountPermissions }} -{{- range $name, $avm := .Values.appVolumeMounts -}} -{{- if and $avm.enabled $avm.setPermissions}} +{{- if .Values.fixMountPermissions }} + +{{- if .Values.appVolumeMounts }} +{{- range $name, $vm := .Values.appVolumeMounts -}} +{{- if and $vm.enabled $vm.setPermissions}} {{- print "---" | nindent 0 -}} -{{- $VMValues := $avm -}} +{{- $VMValues := $vm -}} {{- if not $VMValues.nameSuffix -}} {{- $_ := set $VMValues "nameSuffix" $name -}} {{ end -}} @@ -18,4 +20,23 @@ before chart installation. {{- end }} {{- end }} {{- end }} + + +{{- if .Values.additionalAppVolumeMounts }} +{{- range $index, $avm := .Values.additionalAppVolumeMounts -}} +{{- if and $avm.enabled $avm.setPermissions}} +{{- print "---" | nindent 0 -}} + +{{- $AVMValues := $avm -}} +{{- if not $AVMValues.nameSuffix -}} + {{- $_ := set $AVMValues "nameSuffix" $index -}} +{{ end -}} +{{- $_ := set $ "ObjectValues" (dict "appVolumeMounts" $AVMValues) -}} + +{{ include "common.storage.permissions.job" $ | nindent 0 }} +{{- end }} +{{- end }} +{{- end }} + +{{- end }} {{- end }} diff --git a/library/common/values.yaml b/library/common/values.yaml index 8b0baa8ae1b..9ade85abae9 100644 --- a/library/common/values.yaml +++ b/library/common/values.yaml @@ -66,7 +66,8 @@ envFrom: [] # When using hostNetwork make sure you set dnsPolicy to ClusterFirstWithHostNet hostNetwork: false -dnsPolicy: ClusterFirst +## Default get based on hostNetwork setting +# dnsPolicy: ClusterFirst # Optional DNS settings, configuring the ndots option may resolve # nslookup issues on some Kubernetes setups. @@ -99,7 +100,7 @@ probes: ## The spec field contains the values for the default livenessProbe. ## If you selected custom: true, this field holds the definition of the livenessProbe. spec: - initialDelaySeconds: 30 + initialDelaySeconds: 0 periodSeconds: 10 timeoutSeconds: 10 failureThreshold: 5 @@ -111,7 +112,7 @@ probes: ## The spec field contains the values for the default readinessProbe. ## If you selected custom: true, this field holds the definition of the readinessProbe. spec: - initialDelaySeconds: 30 + initialDelaySeconds: 0 periodSeconds: 10 timeoutSeconds: 10 failureThreshold: 5 @@ -123,95 +124,93 @@ probes: ## The spec field contains the values for the default startupProbe. ## If you selected custom: true, this field holds the definition of the startupProbe. spec: - initialDelaySeconds: 5 + initialDelaySeconds: 0 timeoutSeconds: 10 ## This means it has a maximum of 5*30=150 seconds to start up before it fails periodSeconds: 10 failureThreshold: 30 -service: - enabled: true - type: ClusterIP - ## Specify the default port information - port: +services: + main: + enabled: true + type: ClusterIP + ## Specify the default port information port: - ## name defaults to http - name: - protocol: TCP - ## Specify a service targetPort if you wish to differ the service port from the application port. - ## If targetPort is specified, this port number is used in the container definition instead of - ## service.port.port. Therefore named ports are not supported for this field. - targetPort: - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + port: + ## name defaults to http + name: + protocol: TCP + ## Specify a service targetPort if you wish to differ the service port from the application port. + ## If targetPort is specified, this port number is used in the container definition instead of + ## service.port.port. Therefore named ports are not supported for this field. + targetPort: + ## Specify the nodePort value for the LoadBalancer and NodePort service types. + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## + # nodePort: + additionalPorts: [] + + ## Provide any additional annotations which may be required. This can be used to + ## set the LoadBalancer service type to internal only. + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## - # nodePort: - additionalPorts: [] + annotations: {} + labels: {} - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - labels: {} +additionalServices: [] +# - enabled: false +# nameSuffix: api +# type: ClusterIP +# # Specify the default port information +# port: +# port: +# # name defaults to http +# name: +# protocol: TCP +# # targetPort defaults to http +# targetPort: +# # nodePort: +# additionalPorts: [] +# annotations: {} +# labels: {} - additionalServices: [] - # - enabled: false - # nameSuffix: api - # type: ClusterIP - # # Specify the default port information - # port: - # port: - # # name defaults to http - # name: - # protocol: TCP - # # targetPort defaults to http - # targetPort: - # # nodePort: - # additionalPorts: [] - # annotations: {} - # labels: {} - -ingress: - enabled: false - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - hosts: - - host: chart-example.local - ## Or a tpl that is evaluated - # hostTpl: '{{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.{{ .Values.ingress.domainname }}' - paths: - - path: / - # Ignored if not kubeVersion >= 1.14-0 - pathType: Prefix - tls: [] - # - secretName: chart-example-tls - ## Or if you need a dynamic secretname - # - secretNameTpl: '{{ include "common.names.fullname" . }}-ingress' - # hosts: - # - chart-example.local - ## Or a tpl that is evaluated - # hostsTpl: - # - '{{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.{{ .Values.ingress.domainname }}' - additionalIngresses: [] - # - enabled: false - # nameSuffix: "api" - # annotations: {} - # # kubernetes.io/ingress.class: nginx - # # kubernetes.io/tls-acme: "true" - # labels: {} - # hosts: - # - host: chart-example.local - # paths: - # - path: /api - # # Ignored if not kubeVersion >= 1.14-0 - # pathType: Prefix - # tls: [] - # # - secretName: chart-example-tls - # # hosts: - # # - chart-example.local +# ingress: +# main: +# enabled: false +# # Used when including ingress using {{ include "common.ingress" . }} +# type: "HTTP" +# entrypoint: "websecure" +# certType: "" +# ## Optional: defaults to IngressName +# serviceName: "" +# ## Optional: Almost never needed +# serviceKind: "" +# ## Optional: defaults to either service port +# servicePort: 80 +# annotations: {} +# # kubernetes.io/ingress.class: nginx +# # kubernetes.io/tls-acme: "true" +# labels: {} +# hosts: +# - host: chart-example.local +# path: / +# additionalIngresses: [] +# - enabled: false +# nameSuffix: "api" +# annotations: {} +# # kubernetes.io/ingress.class: nginx +# # kubernetes.io/tls-acme: "true" +# labels: {} +# hosts: +# - host: chart-example.local +# paths: +# - path: /api +# # Ignored if not kubeVersion >= 1.14-0 +# pathType: Prefix +# tls: [] +# # - secretName: chart-example-tls +# # hosts: +# # - chart-example.local persistence: config: @@ -289,33 +288,8 @@ resources: {} PUID: 568 PGID: 568 UMASK: "002" +startAsRoot: false fixMountPermissions: true -# appAdditionalServicesEnabled: false -# appAdditionalServices: -# api: -# enabled: false -# type: NodePort -# protocol: TCP -# port: -# port: 8091 -# nodePort: 38091 -# additionalPorts: [] -# - name: api-alt -# port: 8092 -# targetPort: 8092 -# protocol: TCP -# nodePort: 38092 -# ws: -# enabled: false -# type: ClusterIP -# port: -# port: 3000 -# additionalPorts: {} -# foo: -# name: ws-alt -# protocol: TCP -# port: 3001 -# targetPort: 3001 # appVolumeMounts: # config: @@ -338,40 +312,3 @@ fixMountPermissions: true # hostPathEnabled: false # hostPath: "" # setPermissions: true - -# appIngress: -# main: -# enabled: false -# entrypoint: "websecure" -# certType: "letsencrypt-prod" -# existingcert: "" -# authForwardURL: "" -# annotations: {} -# labels: {} -# hosts: -# - host: app.truecharts.placeholder -# paths: -# - path: / -# # Ignored if not kubeVersion >= 1.14-0 -# pathType: Prefix -# -# maintcp: -# enabled: false -# type: "TCP" -# entrypoint: "kms" -# certType: "none" -# existingcert: "" -# annotations: {} -# labels: {} -# hosts: -# - host: app.truecharts.placeholder -# paths: -# - path: / -# # Ignored if not kubeVersion >= 1.14-0 -# pathType: Prefix -# mainudp: -# enabled: false -# type: "UDP" -# entrypoint: "DNSUDP" -# annotations: {} -# labels: {} diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000000..365ba103db7 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,77 @@ +# Project Information +site_name: TrueCharts +site_description: 'Project Documentation for TrueCharts' +site_author: 'TrueCharts Team' +docs_dir: docs/ +site_url: 'https://truecharts.org' + +# Repository +repo_name: 'truecharts/apps' +repo_url: 'https://github.com/truecharts/apps' +edit_uri: "" + +copyright: Copyright © 2020 - 2021 The TrueCharts Project + +extra: + generator: false + +theme: + name: 'material' + language: 'en' + icon: + repo: fontawesome/brands/github-alt + language: en + features: + - navigation.tabs + - navigation.tracking + - navigation.instant + - search.highlight + - search.share + - search.suggest + font: + text: Roboto + code: Roboto Mono + +extra_css: + - _static/custom.css + +# Plugins +plugins: + - search + - minify: + minify_html: true + +markdown_extensions: + - admonition + - toc: + permalink: true + - abbr + - attr_list + - def_list + - footnotes + - meta + - md_in_html + - pymdownx.arithmatex: + generic: true + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.critic + - pymdownx.details + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.highlight + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid-experimental + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde diff --git a/stable/collabora-online/2.0.0/CONFIG.md b/stable/collabora-online/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/collabora-online/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/collabora-online/1.6.4/Chart.yaml b/stable/collabora-online/2.0.0/Chart.yaml similarity index 64% rename from charts/collabora-online/1.6.4/Chart.yaml rename to stable/collabora-online/2.0.0/Chart.yaml index f04233ab884..ab071a3492a 100644 --- a/charts/collabora-online/1.6.4/Chart.yaml +++ b/stable/collabora-online/2.0.0/Chart.yaml @@ -1,34 +1,31 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: collabora-online -version: 1.6.4 +version: 2.0.0 # upstream_version: -appVersion: 6.4.6.1 +appVersion: "auto" description: Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/collabora-online -icon: https://avatars.githubusercontent.com/u/22418908?s=200&v=4 +home: https://github.com/truecharts/apps/tree/master/stable/collabora-online +icon: https://truecharts.org/_static/img/collabora-icon.png keywords: - collabora-online sources: - - https://github.com/truecharts/charts/tree/master/charts/collabora-online + - https://github.com/truecharts/apps/tree/master/stable/collabora-online - https://github.com/k8s-at-home/charts/tree/master/charts/collabora-online - https://hub.docker.com/r/collabora/code - https://www.collaboraoffice.com/code/docker/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Stavros Kois + - name: stavros-k email: stavros-k@users.noreply.github.com url: truecharts.org # annotations: diff --git a/charts/collabora-online/1.6.4/README.md b/stable/collabora-online/2.0.0/README.md similarity index 74% rename from charts/collabora-online/1.6.4/README.md rename to stable/collabora-online/2.0.0/README.md index 4497c03d402..28bec90895f 100644 --- a/charts/collabora-online/1.6.4/README.md +++ b/stable/collabora-online/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.4.6.1](https://img.shields.io/badge/AppVersion-6.4.6.1-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/collabora-online/1.6.4/app-readme.md b/stable/collabora-online/2.0.0/app-readme.md similarity index 52% rename from charts/collabora-online/1.6.4/app-readme.md rename to stable/collabora-online/2.0.0/app-readme.md index 39d843bbd59..8e22aad841f 100644 --- a/charts/collabora-online/1.6.4/app-readme.md +++ b/stable/collabora-online/2.0.0/app-readme.md @@ -1,2 +1,2 @@ Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/collabora-online/2.0.0/charts/common-2.0.0.tgz b/stable/collabora-online/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/collabora-online/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/collabora-online/2.0.0/ix_values.yaml b/stable/collabora-online/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..dddeab6840c --- /dev/null +++ b/stable/collabora-online/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: collabora/code + tag: 6.4.6.2 + pullPolicy: IfNotPresent + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/collabora-online/2.0.0/questions.yaml b/stable/collabora-online/2.0.0/questions.yaml new file mode 100644 index 00000000000..8a3c9492f95 --- /dev/null +++ b/stable/collabora-online/2.0.0/questions.yaml @@ -0,0 +1,397 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/loleaflet/dist/admin/admin.html" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # environmentVariables Configuraiton + - variable: env + group: "Configuration" + label: "Environment Variables Configuration" + schema: + type: dict + required: true + attrs: + - variable: domain + label: "Domains will be using collabora" + description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' + schema: + type: string + default: 'nextcloud\.domain\.tld|othernextcloud\.domain\.tld' + required: true + - variable: username + label: "Username for WebUI" + schema: + type: string + default: "admin" + required: true + - variable: password + label: "Password for WebUI" + schema: + type: string + private: true + default: "" + required: true + - variable: dictionaries + label: "Dictionaries to use, leave empty to use all" + schema: + type: string + default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" + - variable: extra_params + label: "Extra Parameters to add" + description: 'e.g. "–o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space' + schema: + type: string + default: "-o:welcome.enable=false -o:user_interface.mode=notebookbar -o:ssl.termination=true -o:ssl.enable=false" + - variable: server_name + label: "Server Name" + description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it." + schema: + type: string + default: 'collabora\.domain\.tld' + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + # Service Configuration + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + + # Reverse Proxy + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + group: "Reverse Proxy" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/readarr/1.6.4/templates/NOTES.txt b/stable/collabora-online/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/readarr/1.6.4/templates/NOTES.txt rename to stable/collabora-online/2.0.0/templates/NOTES.txt diff --git a/charts/nzbget/1.6.4/templates/common.yaml b/stable/collabora-online/2.0.0/templates/common.yaml similarity index 100% rename from charts/nzbget/1.6.4/templates/common.yaml rename to stable/collabora-online/2.0.0/templates/common.yaml diff --git a/charts/collabora-online/1.6.4/test_values.yaml b/stable/collabora-online/2.0.0/test_values.yaml similarity index 74% rename from charts/collabora-online/1.6.4/test_values.yaml rename to stable/collabora-online/2.0.0/test_values.yaml index fb7db54dca7..72011511b7b 100644 --- a/charts/collabora-online/1.6.4/test_values.yaml +++ b/stable/collabora-online/2.0.0/test_values.yaml @@ -6,11 +6,14 @@ image: strategy: type: Recreate -service: - type: NodePort - port: - port: 9980 - nodePort: 30980 +startAsRoot: true + +services: + main: + type: NodePort + port: + port: 9980 + nodePort: 30980 env: domain: nextcloud\.domain\.tld diff --git a/stable/collabora-online/2.0.0/values.yaml b/stable/collabora-online/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/collabora-online/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/collabora-online/item.yaml b/stable/collabora-online/item.yaml new file mode 100644 index 00000000000..ab732365ad7 --- /dev/null +++ b/stable/collabora-online/item.yaml @@ -0,0 +1,5 @@ +categories: + - office + - documents + - productivity +icon_url: https://truecharts.org/_static/img/collabora-icon.png diff --git a/charts/lazylibrarian/1.6.4/.helmignore b/stable/emby/2.0.0/.helmignore similarity index 100% rename from charts/lazylibrarian/1.6.4/.helmignore rename to stable/emby/2.0.0/.helmignore diff --git a/stable/emby/2.0.0/CONFIG.md b/stable/emby/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/emby/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/emby/2.0.0/Chart.yaml b/stable/emby/2.0.0/Chart.yaml new file mode 100644 index 00000000000..017c4a7ba70 --- /dev/null +++ b/stable/emby/2.0.0/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: emby +version: 2.0.0 +# upstream_version: +appVersion: "auto" +description: Emby Server is a home media server +type: application +deprecated: false +home: https://github.com/truecharts/apps/master/stable/emby +icon: https://truecharts.org/_static/img/emby-icon.png +keywords: + - jellyfin + - plex + - emby +sources: + - https://github.com/truecharts/apps/tree/master/stable/emby + - https://hub.docker.com/r/linuxserver/emby + - https://github.com/linuxserver/docker-emby.git +dependencies: + - name: common + repository: https://truecharts.org/ + version: 2.0.0 + # condition: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: djs52 + email: dan.sheridan@postman.org.uk + url: truecharts.org +# annotations: diff --git a/stable/emby/2.0.0/README.md b/stable/emby/2.0.0/README.md new file mode 100644 index 00000000000..bc7ee43f54e --- /dev/null +++ b/stable/emby/2.0.0/README.md @@ -0,0 +1,55 @@ +# Introduction + +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Emby Server is a home media server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `emby` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `emby` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/emby/2.0.0/app-readme.md b/stable/emby/2.0.0/app-readme.md new file mode 100644 index 00000000000..5b0fa08d237 --- /dev/null +++ b/stable/emby/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Emby Server is a home media server +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/emby/2.0.0/charts/common-2.0.0.tgz b/stable/emby/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/emby/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/emby/2.0.0/ix_values.yaml b/stable/emby/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..4457e920c71 --- /dev/null +++ b/stable/emby/2.0.0/ix_values.yaml @@ -0,0 +1,18 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/emby + pullPolicy: IfNotPresent + tag: v4.5.4.0 + +# 44=video 107=render +supplementalGroups: 44,107 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/emby/2.0.0/questions.yaml b/stable/emby/2.0.0/questions.yaml new file mode 100644 index 00000000000..55b370dd921 --- /dev/null +++ b/stable/emby/2.0.0/questions.yaml @@ -0,0 +1,480 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + # Specify GPU configuration + - variable: gpuConfiguration + label: "GPU Configuration" + group: "Storage and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/nzbhydra/1.6.4/templates/common.yaml b/stable/emby/2.0.0/templates/common.yaml similarity index 100% rename from charts/nzbhydra/1.6.4/templates/common.yaml rename to stable/emby/2.0.0/templates/common.yaml diff --git a/stable/emby/2.0.0/test_values.yaml b/stable/emby/2.0.0/test_values.yaml new file mode 100644 index 00000000000..5a5d69cfa15 --- /dev/null +++ b/stable/emby/2.0.0/test_values.yaml @@ -0,0 +1,55 @@ +# Default values for emby. + +image: + repository: ghcr.io/truecharts/emby + pullPolicy: IfNotPresent + tag: v4.5.4.0 + +strategy: + type: Recreate + +# 44=video 107=render +supplementalGroups: 44,107 + + +services: + main: + port: + port: 8096 + +persistence: + config: + enabled: false + emptyDir: false + + media: + enabled: false + emptyDir: false + mountPath: /data + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + +## TrueCharts Config + + +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" + media: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/data" diff --git a/stable/emby/2.0.0/values.yaml b/stable/emby/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/emby/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/emby/item.yaml b/stable/emby/item.yaml new file mode 100644 index 00000000000..6fc99e530a0 --- /dev/null +++ b/stable/emby/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://truecharts.org/_static/img/emby-icon.png diff --git a/charts/lidarr/1.6.4/.helmignore b/stable/esphome/2.0.0/.helmignore similarity index 100% rename from charts/lidarr/1.6.4/.helmignore rename to stable/esphome/2.0.0/.helmignore diff --git a/stable/esphome/2.0.0/CONFIG.md b/stable/esphome/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/esphome/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/esphome/1.6.4/Chart.yaml b/stable/esphome/2.0.0/Chart.yaml similarity index 70% rename from charts/esphome/1.6.4/Chart.yaml rename to stable/esphome/2.0.0/Chart.yaml index 19580dddf72..f19d5f8c6f2 100644 --- a/charts/esphome/1.6.4/Chart.yaml +++ b/stable/esphome/2.0.0/Chart.yaml @@ -1,34 +1,31 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: esphome -version: 1.6.4 +version: 2.0.0 upstream_version: 4.3.1 -appVersion: 1.15.3 +appVersion: "auto" description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/esphome +home: https://github.com/truecharts/apps/tree/master/stable/esphome icon: https://esphome.io/_images/logo.svg keywords: - esphome sources: - - https://github.com/truecharts/charts/tree/master/charts/esphome + - https://github.com/truecharts/apps/tree/master/stable/esphome - https://github.com/k8s-at-home/charts/tree/master/charts/esphome - https://github.com/esphome/esphome - https://hub.docker.com/u/esphome dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Troy Prelog + - name: tprelog email: 35702532+tprelog@users.noreply.github.com url: truecharts.org # annotations: diff --git a/charts/esphome/1.6.4/README.md b/stable/esphome/2.0.0/README.md similarity index 74% rename from charts/esphome/1.6.4/README.md rename to stable/esphome/2.0.0/README.md index 59a2f04382e..8a67fc3f9ba 100644 --- a/charts/esphome/1.6.4/README.md +++ b/stable/esphome/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.15.3](https://img.shields.io/badge/AppVersion-1.15.3-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/esphome/1.6.4/app-readme.md b/stable/esphome/2.0.0/app-readme.md similarity index 62% rename from charts/esphome/1.6.4/app-readme.md rename to stable/esphome/2.0.0/app-readme.md index 19676c01b9c..1103e209465 100644 --- a/charts/esphome/1.6.4/app-readme.md +++ b/stable/esphome/2.0.0/app-readme.md @@ -1,2 +1,2 @@ ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/esphome/2.0.0/charts/common-2.0.0.tgz b/stable/esphome/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/esphome/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/esphome/2.0.0/ix_values.yaml b/stable/esphome/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..3f501763679 --- /dev/null +++ b/stable/esphome/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: esphome/esphome + pullPolicy: IfNotPresent + tag: 1.15.3 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/tvheadend/1.6.4/questions.yaml b/stable/esphome/2.0.0/questions.yaml similarity index 59% rename from charts/tvheadend/1.6.4/questions.yaml rename to stable/esphome/2.0.0/questions.yaml index 514911cce62..fc0b173b76a 100644 --- a/charts/tvheadend/1.6.4/questions.yaml +++ b/stable/esphome/2.0.0/questions.yaml @@ -1,60 +1,50 @@ groups: - name: "Container Image" - description: "Image configuration" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" - description: "Container configuration" + description: "additional container configuration" - name: "Networking" - description: "Network configuration" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" - - name: "Services" - description: "Service configuration" - - name: "Volume Mounts" - description: "Configuration volume mounts" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image + + - variable: portal group: "Container Image" - label: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - label: "Image Repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - default: "linuxserver/tvheadend" + hidden: true editable: false - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "latest" - required: true - - variable: pullPolicy - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + type: boolean + default: true + # Update Policy - variable: strategyType group: "Container Image" @@ -68,9 +58,10 @@ questions: - value: "Recreate" description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -79,7 +70,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -87,7 +78,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -95,13 +86,35 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: type: string default: "002" + # Configure Enviroment Variables + - variable: environment + group: "Configuration" + label: "Environment Variables" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + # Service Configuration # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -110,66 +123,27 @@ questions: type: boolean default: false - # Service Configuration - - variable: service - group: "Services" - label: "Configure main service for the UI" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort" - show_subquestions_if: NodePort - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 9981 - hidden: true - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 38091 - required: true - - - - variable: appAdditionalServices + - variable: services group: "Networking" - label: "Configure additional services" + label: "Configure Service" schema: type: dict attrs: - - variable: htsp - label: "" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict attrs: - variable: enabled - label: "Enable TCP port for HTSP Connections" + label: "Enable the service" schema: type: boolean default: true hidden: true - variable: type label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" schema: type: string default: "ClusterIP" @@ -183,44 +157,45 @@ questions: schema: type: dict attrs: - - variable: name - label: "port name" - schema: - type: string - default: "htsp" - hidden: true - variable: protocol - label: "Protocol" + label: "Port Type" schema: type: string - default: "TCP" - hidden: true + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" - variable: port label: "container port" schema: type: int - default: 9982 + default: 6052 editable: false hidden: true - variable: targetport - label: "container targetport" + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" schema: type: int - default: 9982 + default: 6052 editable: false hidden: true - variable: nodePort - label: "Node Port to expose" + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" schema: type: int min: 9000 max: 65535 - default: 9982 - required: false + default: 36052 + required: true # Configure app volumes - variable: appVolumeMounts - group: "Volume Mounts" + group: "Storage and Devices" label: "" schema: type: dict @@ -259,7 +234,7 @@ questions: label: "Name" schema: type: string - default: "store" + default: "config" editable: false - variable: mountPath label: "Mount path inside the container" @@ -269,7 +244,6 @@ questions: editable: false - variable: hostPathEnabled label: "Config - Enable Host Path" - description: "something about this here" schema: type: boolean default: false @@ -277,17 +251,55 @@ questions: subquestions: - variable: hostPath label: "Config Host Path" - description: "Host path to store config" schema: type: hostpath required: true - # Recordings ------------------------ - - variable: recordings - label: "Recordings Volume" + # platformio ------------------------ + - variable: platformio + label: "platformio" schema: + hidden: true type: dict $ref: - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + - variable: setPermissions + label: "Automatic Permissions" + schema: + type: boolean + default: true + - variable: emptyDir + label: "Empty Dir" + schema: + type: boolean + default: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "platformio" + - variable: mountPath + label: "Mount Path" + schema: + type: path + default: "/.platformio" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict attrs: - variable: enabled label: "Enabled" @@ -304,6 +316,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -311,42 +330,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Name" - schema: - type: string - default: "store" - editable: false - variable: mountPath - label: "Mount path inside the container" + label: "Mount Path" + description: "Path to mount inside the pod" schema: type: path - default: "/recordings" - editable: false + required: true + default: "" + editable: true - variable: hostPathEnabled - label: "recordings - Enable Host Path" - description: "something about this here" + label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "recordings Host Path" - description: "Host path to store recordings" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -357,6 +368,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -382,54 +408,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/ombi/1.6.4/templates/common.yaml b/stable/esphome/2.0.0/templates/common.yaml similarity index 100% rename from charts/ombi/1.6.4/templates/common.yaml rename to stable/esphome/2.0.0/templates/common.yaml diff --git a/charts/esphome/1.6.4/test_values.yaml b/stable/esphome/2.0.0/test_values.yaml similarity index 95% rename from charts/esphome/1.6.4/test_values.yaml rename to stable/esphome/2.0.0/test_values.yaml index 9dd3b57bc02..33bf74f08d4 100644 --- a/charts/esphome/1.6.4/test_values.yaml +++ b/stable/esphome/2.0.0/test_values.yaml @@ -8,10 +8,10 @@ image: strategy: type: Recreate -service: - port: - port: 6052 - nodePort: 30052 +services: + main: + port: + port: 6052 env: {} # ESPHOME_DASHBOARD_USE_PING: true diff --git a/stable/esphome/2.0.0/values.yaml b/stable/esphome/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/esphome/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/esphome/item.yaml b/stable/esphome/item.yaml similarity index 100% rename from charts/esphome/item.yaml rename to stable/esphome/item.yaml diff --git a/stable/handbrake/2.0.0/CONFIG.md b/stable/handbrake/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/handbrake/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/handbrake/1.3.4/Chart.yaml b/stable/handbrake/2.0.0/Chart.yaml similarity index 69% rename from charts/handbrake/1.3.4/Chart.yaml rename to stable/handbrake/2.0.0/Chart.yaml index c87b17ef7bc..5e81260f592 100644 --- a/charts/handbrake/1.3.4/Chart.yaml +++ b/stable/handbrake/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: handbrake -version: 1.3.4 +version: 2.0.0 # upstream_version: -appVersion: 1.23.1 +appVersion: "auto" description: HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/handbrake +home: https://github.com/truecharts/apps/tree/master/stable/handbrake icon: https://handbrake.fr/img/logo.png keywords: - handbrake - encode - media sources: - - https://github.com/truecharts/charts/tree/master/charts/handbrake + - https://github.com/truecharts/apps/tree/master/stable/handbrake - https://github.com/jlesage/docker-handbrake - https://hub.docker.com/r/jlesage/handbrake/ - https://handbrake.fr/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Stavros Kois + - name: stavros-k email: stavros-k@users.noreply.github.com url: truecharts.org # annotations: diff --git a/charts/handbrake/1.3.4/README.md b/stable/handbrake/2.0.0/README.md similarity index 74% rename from charts/handbrake/1.3.4/README.md rename to stable/handbrake/2.0.0/README.md index 31442bbff08..9caca97e9cd 100644 --- a/charts/handbrake/1.3.4/README.md +++ b/stable/handbrake/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.3.4](https://img.shields.io/badge/Version-1.3.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.23.1](https://img.shields.io/badge/AppVersion-1.23.1-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/handbrake/1.3.4/app-readme.md b/stable/handbrake/2.0.0/app-readme.md similarity index 55% rename from charts/handbrake/1.3.4/app-readme.md rename to stable/handbrake/2.0.0/app-readme.md index 710382158fa..dfacf263309 100644 --- a/charts/handbrake/1.3.4/app-readme.md +++ b/stable/handbrake/2.0.0/app-readme.md @@ -1,2 +1,2 @@ HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. - +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/handbrake/2.0.0/charts/common-2.0.0.tgz b/stable/handbrake/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/handbrake/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/handbrake/2.0.0/ix_values.yaml b/stable/handbrake/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..cbeeae8c451 --- /dev/null +++ b/stable/handbrake/2.0.0/ix_values.yaml @@ -0,0 +1,26 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jlesage/handbrake + tag: v1.23.1 + pullPolicy: IfNotPresent + +startAsRoot: true + +# 24=cdrom 44=video 107=render +supplementalGroups: 24,44,107 + +#All values here are set as the docker defaults. +envTpl: +# Permissions Settings + USER_ID: "{{ .Values.PUID }}" + GROUP_ID: "{{ .Values.PGID }}" + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/handbrake/2.0.0/questions.yaml b/stable/handbrake/2.0.0/questions.yaml new file mode 100644 index 00000000000..5306fa73bfe --- /dev/null +++ b/stable/handbrake/2.0.0/questions.yaml @@ -0,0 +1,910 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "https" + host: + - "$variable-ingress.hosts[0].host" + ports: + - "443" + +questions: + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Data ------------------------ + - variable: data + label: "data dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP-IR" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "api@internal" + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "TraefikService" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + + - variable: ports + label: "(Advanced) Traefik Entrypoints" + group: "Advanced" + schema: + type: dict + attrs: + - variable: traefik + label: "traefik internal" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 9000 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + default: 9000 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + default: "TCP" + + - variable: web + label: "web" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 8081 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 80 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: redirectEnable + label: "Enable Redirect" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: redirectTo + label: "Target Entrypoint" + description: "Select the Target Entrypoint to redirect to" + schema: + type: string + required: true + default: "websecure" + - variable: websecure + label: "websecure" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 8443 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 443 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: plex + label: "plex" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 32400 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: false + default: 32400 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: kms + label: "kms" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51688 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1688 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: dns-tcp + label: "dns-tcp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 5353 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 53 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: dns-udp + label: "dns-udp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 5353 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 53 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: stun-tcp + label: "stun-tcp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 3478 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 3478 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: stun-udp + label: "stun-udp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 3478 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 3478 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: radius + label: "radius" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51812 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1812 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: radius-acc + label: "radius-acc" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51813 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1813 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: ldaps + label: "ldaps" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 50636 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 636 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + hidden: true + default: "TCP" + - variable: unificom + label: "unificom" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + hide: true + default: 8080 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 8080 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + + - variable: externalServices + label: "(Advanced) Add External Services" + group: "Advanced" + schema: + type: list + default: [] + items: + - variable: externalService + label: "External Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + hidden: true + editable: false + default: true + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: serviceTarget + label: "IP Adress of the external service" + schema: + hidden: false + editable: true + required: true + type: string + default: "192.168.0.0" + - variable: servicePort + label: "External Service Port" + description: "The port on the external service you want to proxy" + schema: + hidden: false + required: true + editable: true + type: int + default: 80 + - variable: serviceType + label: "Connection Type" + description: "Connection Type between Traefik and the external service" + schema: + hidden: false + editable: true + required: true + default: "HTTP" + type: string + enum: + - value: "HTTP" + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: false + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + + - variable: warning + label: "This App binds to the same ports as the defaults for TrueNAS SCALE UI (80 and 443). This means you may not be able to access the TrueNAS SCALE UI after starting the App." + description: "Please be sure to set the UI to a different port or adapter" + group: "WARNING" + schema: + type: dict + attrs: + - variable: confirm-warning + description: "Check this to confirm you have made precautions against conflicts on port 80 and 443, such as running the TrueNAS SCALE UI on a different port or adapter." + label: "I understand above warning and its consequences" + schema: + type: boolean + default: false + required: true diff --git a/charts/sabnzbd/1.6.4/templates/NOTES.txt b/stable/handbrake/2.0.0/templates/NOTES.txt similarity index 100% rename from charts/sabnzbd/1.6.4/templates/NOTES.txt rename to stable/handbrake/2.0.0/templates/NOTES.txt diff --git a/charts/organizr/1.6.4/templates/common.yaml b/stable/handbrake/2.0.0/templates/common.yaml similarity index 100% rename from charts/organizr/1.6.4/templates/common.yaml rename to stable/handbrake/2.0.0/templates/common.yaml diff --git a/stable/handbrake/2.0.0/test_values.yaml b/stable/handbrake/2.0.0/test_values.yaml new file mode 100644 index 00000000000..0d26cc754ba --- /dev/null +++ b/stable/handbrake/2.0.0/test_values.yaml @@ -0,0 +1,103 @@ +image: + repository: jlesage/handbrake + tag: v1.23.1 + pullPolicy: IfNotPresent + +strategy: + type: Recreate + +startAsRoot: true + +# 24=cdrom 44=video 107=render +supplementalGroups: 24,44,107 + +services: + main: + port: + port: 5800 + vnc: + enabled: true + type: ClusterIP + port: + port: 5900 + protocol: "TCP" + targetPort: 5900 + +# All values here are set as the docker defaults. +envTpl: +# Permissions Settings + USER_ID: "{{ .Values.PUID }}" + GROUP_ID: "{{ .Values.PGID }}" + +env: +# General Settings + KEEP_APP_RUNNING: "0" + CLEAN_TMP_DIR: "1" +# GUI Settings + DISPLAY_WIDTH: "1280" + DISPLAY_HEIGHT: "768" + SECURE_CONNECTION: "0" + VNC_PASSWORD: +# Automated Conversion Preset + AUTOMATED_CONVERSION_PRESET: "General/Very Fast 1080p30" + AUTOMATED_CONVERSION_FORMAT: "mp4" + AUTOMATED_CONVERSION_KEEP_SOURCE: "1" + AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: "ignore" + +persistence: + config: + enabled: false + emptyDir: false + mountPath: /config + + storage: + enabled: false + emptyDir: false + mountPath: /storage # This can be read only + + watch: + enabled: false + emptyDir: false + mountPath: /watch + + output: + enabled: false + emptyDir: false + mountPath: /output + +appVolumeMounts: + config: + enabled: true + emptyDir: true + datasetName: "config" + mountPath: "/config" + hostPathEnabled: true + setPermissions: true + storage: + enabled: true + emptyDir: true + datasetName: "storage" + mountPath: "/storage" + hostPathEnabled: true + setPermissions: true + watch: + enabled: true + emptyDir: true + datasetName: "watch" + mountPath: "/watch" + hostPathEnabled: true + setPermissions: true + output: + enabled: true + emptyDir: true + datasetName: "output" + mountPath: "/output" + hostPathEnabled: true + setPermissions: true +# opticaldrive: +# enabled: true +# emptyDir: true +# mountPath: "/dev/sr0" +# hostPath: "/dev/sr0" +# hostPathEnabled: true +# setPermissions: true diff --git a/stable/handbrake/2.0.0/values.yaml b/stable/handbrake/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/handbrake/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/handbrake/item.yaml b/stable/handbrake/item.yaml similarity index 100% rename from charts/handbrake/item.yaml rename to stable/handbrake/item.yaml diff --git a/charts/node-red/1.6.4/.helmignore b/stable/home-assistant/2.0.0/.helmignore similarity index 100% rename from charts/node-red/1.6.4/.helmignore rename to stable/home-assistant/2.0.0/.helmignore diff --git a/stable/home-assistant/2.0.0/CONFIG.md b/stable/home-assistant/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/home-assistant/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/home-assistant/1.6.4/Chart.yaml b/stable/home-assistant/2.0.0/Chart.yaml similarity index 82% rename from charts/home-assistant/1.6.4/Chart.yaml rename to stable/home-assistant/2.0.0/Chart.yaml index 7836b328600..892d4d3f176 100644 --- a/charts/home-assistant/1.6.4/Chart.yaml +++ b/stable/home-assistant/2.0.0/Chart.yaml @@ -1,31 +1,28 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: home-assistant -version: 1.6.4 +version: 2.0.0 upstream_version: 5.3.0 -appVersion: 2021.2.2 +appVersion: "auto" description: home-assistant App for TrueNAS SCALE type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/home-assistant +home: https://github.com/truecharts/apps/tree/master/stable/home-assistant icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Home_Assistant_Logo.svg/519px-Home_Assistant_Logo.svg.png keywords: - home-assistant - hass - homeassistant sources: - - https://github.com/truecharts/charts/tree/master/charts/home-assistant + - https://github.com/truecharts/apps/tree/master/stable/home-assistant - https://github.com/k8s-at-home/charts/tree/master/charts/home-assistant - https://github.com/home-assistant/home-assistant - https://github.com/cdr/code-server dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: # ## postgresql is currently not ported to SCALE yet. # - name: postgresql # version: 10.2.0 @@ -54,7 +51,7 @@ maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Troy Prelog + - name: tprelog email: 35702532+tprelog@users.noreply.github.com url: truecharts.org # annotations: diff --git a/charts/home-assistant/1.6.4/README.md b/stable/home-assistant/2.0.0/README.md similarity index 73% rename from charts/home-assistant/1.6.4/README.md rename to stable/home-assistant/2.0.0/README.md index 3dc06b643a5..3c252b5b123 100644 --- a/charts/home-assistant/1.6.4/README.md +++ b/stable/home-assistant/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2021.2.2](https://img.shields.io/badge/AppVersion-2021.2.2-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) home-assistant App for TrueNAS SCALE TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/home-assistant/2.0.0/app-readme.md b/stable/home-assistant/2.0.0/app-readme.md new file mode 100644 index 00000000000..edbc8af4cb5 --- /dev/null +++ b/stable/home-assistant/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +home-assistant App for TrueNAS SCALE +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/home-assistant/2.0.0/charts/common-2.0.0.tgz b/stable/home-assistant/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/home-assistant/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/home-assistant/2.0.0/ix_values.yaml b/stable/home-assistant/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..1ee3b1141e4 --- /dev/null +++ b/stable/home-assistant/2.0.0/ix_values.yaml @@ -0,0 +1,20 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: homeassistant/home-assistant + pullPolicy: IfNotPresent + tag: 2021.3.4 + +startAsRoot: true + +# 5=tty 20=dailout 24=cdrom +supplementalGroups: 5,20,24 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/home-assistant/2.0.0/questions.yaml b/stable/home-assistant/2.0.0/questions.yaml new file mode 100644 index 00000000000..85c087aa9d1 --- /dev/null +++ b/stable/home-assistant/2.0.0/questions.yaml @@ -0,0 +1,532 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + - variable: git + group: "Configuration" + label: "Home-Assistant Git Settings" + schema: + type: dict + attrs: + - variable: deployKey + label: "Git deploy key" + schema: + type: string + default: "" + - variable: deployKeyBase64 + label: "Git KeyBase64 deploy key" + schema: + type: string + default: "" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + # Configure app volumes + - variable: appVolumeMounts + group: "Storage and Devices" + label: "" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "Config Volume" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount path inside the container" + schema: + type: path + default: "/usr/src/app/store" + editable: false + - variable: hostPathEnabled + label: "Config - Enable Host Path" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Config Host Path" + description: "Host path to store config" + schema: + type: hostpath + required: true + # Z-Wave device ----------------- + - variable: zwave + label: "USB Z-Wave Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: false + required: false + hidden: false + editable: true + - variable: hostPathEnabled + label: "Enable Host Path" + schema: + type: boolean + default: true + hidden: true + - variable: setPermissions + label: "Automatic Permissions" + schema: + type: boolean + default: false + hidden: true + - variable: emptyDir + label: "Empty Dir" + schema: + type: boolean + default: false + hidden: true + - variable: mountPath + label: "Path to mount Z-Wave device inside the container" + description: "Preferably the same as the path to the device path on the host" + schema: + type: path + default: "/dev/ttyACM0" + required: true + - variable: hostPath + label: "Path to Z-Wave device on host" + schema: + type: path + default: "/dev/ttyACM0" + required: true + # Z-Wave device ----------------- + - variable: zwave + label: "USB zigbee Device" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: false + required: false + hidden: false + editable: true + - variable: hostPathEnabled + label: "Enable Host Path" + schema: + type: boolean + default: true + hidden: true + - variable: setPermissions + label: "Automatic Permissions" + schema: + type: boolean + default: false + hidden: true + - variable: emptyDir + label: "Empty Dir" + schema: + type: boolean + default: false + hidden: true + - variable: mountPath + label: "Path to mount zigbee device inside the container" + description: "Preferably the same as the path to the device path on the host" + schema: + type: path + default: "/dev/ttyACM0" + required: true + - variable: hostPath + label: "Path to zigbee device on host" + schema: + type: path + default: "/dev/ttyACM0" + required: true + + # Enable privileged + - variable: securityContext + group: "Storage and Devices" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged to pass thru a USB device" + schema: + type: boolean + default: true + required: false + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/qbittorrent/1.6.4/templates/common.yaml b/stable/home-assistant/2.0.0/templates/common.yaml similarity index 100% rename from charts/qbittorrent/1.6.4/templates/common.yaml rename to stable/home-assistant/2.0.0/templates/common.yaml diff --git a/charts/home-assistant/1.6.4/templates/secret.yaml b/stable/home-assistant/2.0.0/templates/secret.yaml similarity index 100% rename from charts/home-assistant/1.6.4/templates/secret.yaml rename to stable/home-assistant/2.0.0/templates/secret.yaml diff --git a/charts/home-assistant/1.6.4/test_values.yaml b/stable/home-assistant/2.0.0/test_values.yaml similarity index 95% rename from charts/home-assistant/1.6.4/test_values.yaml rename to stable/home-assistant/2.0.0/test_values.yaml index 936cad06a36..3832a9d8a5e 100644 --- a/charts/home-assistant/1.6.4/test_values.yaml +++ b/stable/home-assistant/2.0.0/test_values.yaml @@ -3,17 +3,23 @@ image: repository: homeassistant/home-assistant pullPolicy: IfNotPresent - tag: 2021.1.5 + tag: 2021.3.4 strategy: type: Recreate -env: {} - # TZ: +startAsRoot: true -service: - port: - port: 8123 +# 5=tty 20=dailout 24=cdrom +supplementalGroups: 5,20,24 + +env: {} + # TZ: + +services: + main: + port: + port: 8123 nodePort: 30023 # # Enable devices to be discoverable diff --git a/stable/home-assistant/2.0.0/values.yaml b/stable/home-assistant/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/home-assistant/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/home-assistant/item.yaml b/stable/home-assistant/item.yaml similarity index 100% rename from charts/home-assistant/item.yaml rename to stable/home-assistant/item.yaml diff --git a/charts/ombi/1.6.4/.helmignore b/stable/jackett/2.0.0/.helmignore similarity index 100% rename from charts/ombi/1.6.4/.helmignore rename to stable/jackett/2.0.0/.helmignore diff --git a/stable/jackett/2.0.0/CONFIG.md b/stable/jackett/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/jackett/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/jackett/1.6.4/Chart.yaml b/stable/jackett/2.0.0/Chart.yaml similarity index 58% rename from charts/jackett/1.6.4/Chart.yaml rename to stable/jackett/2.0.0/Chart.yaml index 634b4fe58f9..0a66166b03b 100644 --- a/charts/jackett/1.6.4/Chart.yaml +++ b/stable/jackett/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: jackett -version: 1.6.4 +version: 2.0.0 upstream_version: 7.0.1 -appVersion: version-v0.17.153 +appVersion: "auto" description: API Support for your favorite torrent trackers. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/jackett -icon: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jackett/icon.png?raw=true +home: https://github.com/truecharts/apps/tree/master/stable/jackett +icon: https://truecharts.org/_static/img/jackett-icon.png keywords: - jackett - torrent - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/jackett + - https://github.com/truecharts/apps/tree/master/stable/jackett - https://github.com/k8s-at-home/charts/tree/master/charts/jackett - https://github.com/Jackett/Jackett - https://hub.docker.com/r/linuxserver/jackett dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/jackett/1.6.4/README.md b/stable/jackett/2.0.0/README.md similarity index 73% rename from charts/jackett/1.6.4/README.md rename to stable/jackett/2.0.0/README.md index 014a333851a..71a39d88691 100644 --- a/charts/jackett/1.6.4/README.md +++ b/stable/jackett/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: version-v0.17.153](https://img.shields.io/badge/AppVersion-version--v0.17.153-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) API Support for your favorite torrent trackers. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jackett/2.0.0/app-readme.md b/stable/jackett/2.0.0/app-readme.md new file mode 100644 index 00000000000..7d3c709fdff --- /dev/null +++ b/stable/jackett/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +API Support for your favorite torrent trackers. +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/jackett/2.0.0/charts/common-2.0.0.tgz b/stable/jackett/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/jackett/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/jackett/2.0.0/ix_values.yaml b/stable/jackett/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..382d61d66bb --- /dev/null +++ b/stable/jackett/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/jackett + pullPolicy: IfNotPresent + tag: v0.17.671 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jackett/2.0.0/questions.yaml b/stable/jackett/2.0.0/questions.yaml new file mode 100644 index 00000000000..ce9622d5db9 --- /dev/null +++ b/stable/jackett/2.0.0/questions.yaml @@ -0,0 +1,412 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/radarr/1.6.4/templates/common.yaml b/stable/jackett/2.0.0/templates/common.yaml similarity index 100% rename from charts/radarr/1.6.4/templates/common.yaml rename to stable/jackett/2.0.0/templates/common.yaml diff --git a/charts/jackett/1.6.4/test_values.yaml b/stable/jackett/2.0.0/test_values.yaml similarity index 71% rename from charts/jackett/1.6.4/test_values.yaml rename to stable/jackett/2.0.0/test_values.yaml index dee72753ed3..0522575c204 100644 --- a/charts/jackett/1.6.4/test_values.yaml +++ b/stable/jackett/2.0.0/test_values.yaml @@ -1,16 +1,19 @@ # Default values for Jackett. image: - repository: linuxserver/jackett + repository: ghcr.io/truecharts/jackett pullPolicy: IfNotPresent - tag: version-v0.16.2106 + tag: v0.17.671 strategy: type: Recreate -service: - port: - port: 9117 + +services: + main: + enabled: true + port: + port: 9117 env: {} # TZ: UTC @@ -43,6 +46,18 @@ persistence: ## TrueCharts Values +ingress: + main: + enabled: true + # Used when including ingress using {{ include "common.ingress" . }} + type: "HTTP" + entrypoint: "websecure" + certType: "" + annotations: {} + hosts: + - host: chart-example.local + path: / + appVolumeMounts: config: enabled: true diff --git a/stable/jackett/2.0.0/values.yaml b/stable/jackett/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/jackett/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/jackett/item.yaml b/stable/jackett/item.yaml new file mode 100644 index 00000000000..8d747307488 --- /dev/null +++ b/stable/jackett/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://truecharts.org/_static/img/jackett-icon.png diff --git a/charts/organizr/1.6.4/.helmignore b/stable/jellyfin/2.0.0/.helmignore similarity index 100% rename from charts/organizr/1.6.4/.helmignore rename to stable/jellyfin/2.0.0/.helmignore diff --git a/stable/jellyfin/2.0.0/CONFIG.md b/stable/jellyfin/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/jellyfin/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/jellyfin/1.6.4/Chart.yaml b/stable/jellyfin/2.0.0/Chart.yaml similarity index 58% rename from charts/jellyfin/1.6.4/Chart.yaml rename to stable/jellyfin/2.0.0/Chart.yaml index bc793a94c0f..c732f5566cc 100644 --- a/charts/jellyfin/1.6.4/Chart.yaml +++ b/stable/jellyfin/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: jellyfin -version: 1.6.4 +version: 2.0.0 upstream_version: 4.2.1 -appVersion: 10.6.4 +appVersion: "auto" description: Jellyfin is a Free Software Media System type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/jellyfin -icon: https://raw.githubusercontent.com/truecharts/truecharts/master/charts/jellyfin/icon.png?raw=true +home: https://github.com/truecharts/apps/tree/master/stable/jellyfin +icon: https://truecharts.org/_static/img/jellyfin-icon.png keywords: - jellyfin - plex - emby sources: - - https://github.com/truecharts/charts/tree/master/charts/jellyfin + - https://github.com/truecharts/apps/tree/master/stable/jellyfin - https://github.com/k8s-at-home/charts/tree/master/charts/jellyfin - https://hub.docker.com/r/linuxserver/Jellyfin/ - https://github.com/jellyfin/jellyfin dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/jellyfin/1.6.4/README.md b/stable/jellyfin/2.0.0/README.md similarity index 73% rename from charts/jellyfin/1.6.4/README.md rename to stable/jellyfin/2.0.0/README.md index cee9cff616c..3ffd34dab55 100644 --- a/charts/jellyfin/1.6.4/README.md +++ b/stable/jellyfin/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.6.4](https://img.shields.io/badge/AppVersion-10.6.4-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Jellyfin is a Free Software Media System TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/jellyfin/2.0.0/app-readme.md b/stable/jellyfin/2.0.0/app-readme.md new file mode 100644 index 00000000000..449e4a5c1c5 --- /dev/null +++ b/stable/jellyfin/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Jellyfin is a Free Software Media System +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/jellyfin/2.0.0/charts/common-2.0.0.tgz b/stable/jellyfin/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/jellyfin/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/jellyfin/2.0.0/ix_values.yaml b/stable/jellyfin/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..a449dc416ed --- /dev/null +++ b/stable/jellyfin/2.0.0/ix_values.yaml @@ -0,0 +1,18 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: jellyfin/jellyfin + pullPolicy: IfNotPresent + tag: 10.6.4 + +# 44=video 107=render +supplementalGroups: 44,107 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/jellyfin/2.0.0/questions.yaml b/stable/jellyfin/2.0.0/questions.yaml new file mode 100644 index 00000000000..22785f2f2d1 --- /dev/null +++ b/stable/jellyfin/2.0.0/questions.yaml @@ -0,0 +1,480 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + # Specify GPU configuration + - variable: gpuConfiguration + label: "GPU Configuration" + group: "Storage and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/readarr/1.6.4/templates/common.yaml b/stable/jellyfin/2.0.0/templates/common.yaml similarity index 100% rename from charts/readarr/1.6.4/templates/common.yaml rename to stable/jellyfin/2.0.0/templates/common.yaml diff --git a/charts/jellyfin/1.6.4/test_values.yaml b/stable/jellyfin/2.0.0/test_values.yaml similarity index 87% rename from charts/jellyfin/1.6.4/test_values.yaml rename to stable/jellyfin/2.0.0/test_values.yaml index 044bfb6907e..7295ae3af83 100644 --- a/charts/jellyfin/1.6.4/test_values.yaml +++ b/stable/jellyfin/2.0.0/test_values.yaml @@ -1,17 +1,20 @@ - # Default values for jellyfin. image: - repository: linuxserver/jellyfin + repository: jellyfin/jellyfin pullPolicy: IfNotPresent - tag: version-10.6.4-1 + tag: 10.6.4 strategy: type: Recreate -service: - port: - port: 8096 +# 44=video 107=render +supplementalGroups: 44,107 + +services: + main: + port: + port: 8096 persistence: config: diff --git a/stable/jellyfin/2.0.0/values.yaml b/stable/jellyfin/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/jellyfin/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/jellyfin/item.yaml b/stable/jellyfin/item.yaml new file mode 100644 index 00000000000..0b34efa587a --- /dev/null +++ b/stable/jellyfin/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://truecharts.org/_static/img/jellyfin-icon.png diff --git a/charts/radarr/1.6.4/.helmignore b/stable/kms/2.0.0/.helmignore similarity index 100% rename from charts/radarr/1.6.4/.helmignore rename to stable/kms/2.0.0/.helmignore diff --git a/stable/kms/2.0.0/CONFIG.md b/stable/kms/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/kms/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/kms/1.6.4/Chart.yaml b/stable/kms/2.0.0/Chart.yaml similarity index 54% rename from charts/kms/1.6.4/Chart.yaml rename to stable/kms/2.0.0/Chart.yaml index dc8ff8e7f70..97baf7248a2 100644 --- a/charts/kms/1.6.4/Chart.yaml +++ b/stable/kms/2.0.0/Chart.yaml @@ -1,32 +1,29 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: kms -version: 1.6.4 +version: 2.0.0 # upstream_version: -appVersion: latest +appVersion: "minimal" description: Private Windows Activation Server for development and testing type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/kms -icon: https://github.com/KMS/KMS/blob/phantom-develop/Logo/512.png?raw=true +home: https://github.com/truecharts/apps/tree/master/stable/kms +icon: https://truecharts.org/_static/img/kms-icon.jpg keywords: - kms sources: - - https://github.com/truecharts/charts/tree/master/charts/kms + - https://github.com/truecharts/apps/tree/master/stable/kms - https://github.com/SystemRage/py-kms dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/kms/1.6.4/README.md b/stable/kms/2.0.0/README.md similarity index 72% rename from charts/kms/1.6.4/README.md rename to stable/kms/2.0.0/README.md index 3dffdfda85b..d73ae202cc7 100644 --- a/charts/kms/1.6.4/README.md +++ b/stable/kms/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: minimal](https://img.shields.io/badge/AppVersion-minimal-informational?style=flat-square) Private Windows Activation Server for development and testing TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * ## Requirements @@ -20,7 +20,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -45,9 +45,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/kms/2.0.0/app-readme.md b/stable/kms/2.0.0/app-readme.md new file mode 100644 index 00000000000..b933664071d --- /dev/null +++ b/stable/kms/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Private Windows Activation Server for development and testing +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/kms/2.0.0/charts/common-2.0.0.tgz b/stable/kms/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/kms/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/kms/2.0.0/ix_values.yaml b/stable/kms/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..d016fa3f01a --- /dev/null +++ b/stable/kms/2.0.0/ix_values.yaml @@ -0,0 +1,17 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + +startAsRoot: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/kms/1.6.4/questions.yaml b/stable/kms/2.0.0/questions.yaml similarity index 55% rename from charts/kms/1.6.4/questions.yaml rename to stable/kms/2.0.0/questions.yaml index 9ca1e5c6d61..37da51287d5 100644 --- a/charts/kms/1.6.4/questions.yaml +++ b/stable/kms/2.0.0/questions.yaml @@ -1,64 +1,59 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" - -portals: - web_portal: - protocols: - - "http" - host: - - "$node_ip" - ports: - - "$variable-service.port.nodePort" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "pykmsorg/py-kms" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "latest" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +62,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +70,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +78,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +107,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 1688 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,21 +115,89 @@ questions: type: boolean default: false -## TrueCharts Specific - - - variable: appVolumeMounts - label: "app storage" - group: "Storage" + - variable: services + group: "Networking" + label: "Configure Service" schema: type: dict attrs: - # Config ------------------------ - - variable: config - label: "config dataset" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -189,6 +214,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -196,43 +228,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "config" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/config" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: kms + - variable: main label: "KMS Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -250,9 +273,14 @@ questions: default: "TCP" required: true editable: false - enum: - - value: "TCP" - description: "Plain TCP Connections" + hidden: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -262,12 +290,3 @@ questions: enum: - value: "kms" description: "KMS: port 1688" - - variable: certType - label: "Select Certificate Type" - schema: - editable: false - type: string - default: "" - enum: - - value: "" - description: "No Encryption/TLS/Certificates" diff --git a/charts/sabnzbd/1.6.4/templates/common.yaml b/stable/kms/2.0.0/templates/common.yaml similarity index 100% rename from charts/sabnzbd/1.6.4/templates/common.yaml rename to stable/kms/2.0.0/templates/common.yaml diff --git a/stable/kms/2.0.0/test_values.yaml b/stable/kms/2.0.0/test_values.yaml new file mode 100644 index 00000000000..0e13cbdd40e --- /dev/null +++ b/stable/kms/2.0.0/test_values.yaml @@ -0,0 +1,16 @@ +# Default values for KMS. + +image: + repository: pykmsorg/py-kms + pullPolicy: IfNotPresent + tag: minimal + +strategy: + type: Recreate + +startAsRoot: true + +services: + main: + port: + port: 1688 diff --git a/stable/kms/2.0.0/values.yaml b/stable/kms/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/kms/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/kms/item.yaml b/stable/kms/item.yaml new file mode 100644 index 00000000000..921f139acd5 --- /dev/null +++ b/stable/kms/item.yaml @@ -0,0 +1,3 @@ +categories: + - graywares +icon_url: https://truecharts.org/_static/img/kms-icon.jpg diff --git a/charts/sonarr/1.6.4/.helmignore b/stable/lidarr/2.0.0/.helmignore similarity index 100% rename from charts/sonarr/1.6.4/.helmignore rename to stable/lidarr/2.0.0/.helmignore diff --git a/stable/lidarr/2.0.0/CONFIG.md b/stable/lidarr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/lidarr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/lidarr/1.6.4/Chart.yaml b/stable/lidarr/2.0.0/Chart.yaml similarity index 67% rename from charts/lidarr/1.6.4/Chart.yaml rename to stable/lidarr/2.0.0/Chart.yaml index f503b828591..e3be5c02402 100644 --- a/charts/lidarr/1.6.4/Chart.yaml +++ b/stable/lidarr/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lidarr -version: 1.6.4 +version: 2.0.0 upstream_version: 7.1.0 -appVersion: 0.8.0.1886 +appVersion: "auto" description: Looks and smells like Sonarr but made for music type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/lidarr +home: https://github.com/truecharts/apps/tree/master/stable/lidarr icon: https://avatars3.githubusercontent.com/u/28475832?s=400&v=4 keywords: - lidarr - torrent - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/lidarr + - https://github.com/truecharts/apps/tree/master/stable/lidarr - https://github.com/k8s-at-home/charts/tree/master/charts/lidarr - https://github.com/Lidarr/Lidarr - https://hub.docker.com/r/linuxserver/lidarr dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/lidarr/1.6.4/README.md b/stable/lidarr/2.0.0/README.md similarity index 73% rename from charts/lidarr/1.6.4/README.md rename to stable/lidarr/2.0.0/README.md index fa995f3a06a..fda35dda068 100644 --- a/charts/lidarr/1.6.4/README.md +++ b/stable/lidarr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.8.0.1886](https://img.shields.io/badge/AppVersion-0.8.0.1886-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Looks and smells like Sonarr but made for music TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/lidarr/2.0.0/app-readme.md b/stable/lidarr/2.0.0/app-readme.md new file mode 100644 index 00000000000..bb285acb7f9 --- /dev/null +++ b/stable/lidarr/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Looks and smells like Sonarr but made for music +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/lidarr/2.0.0/charts/common-2.0.0.tgz b/stable/lidarr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/lidarr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/lidarr/2.0.0/ix_values.yaml b/stable/lidarr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..2bc01da5009 --- /dev/null +++ b/stable/lidarr/2.0.0/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/lidarr + pullPolicy: IfNotPresent + tag: v0.8.0.2082 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/lidarr/2.0.0/questions.yaml b/stable/lidarr/2.0.0/questions.yaml new file mode 100644 index 00000000000..05327440396 --- /dev/null +++ b/stable/lidarr/2.0.0/questions.yaml @@ -0,0 +1,526 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/sonarr/1.6.4/templates/common.yaml b/stable/lidarr/2.0.0/templates/common.yaml similarity index 100% rename from charts/sonarr/1.6.4/templates/common.yaml rename to stable/lidarr/2.0.0/templates/common.yaml diff --git a/charts/sonarr/1.6.4/values.yaml b/stable/lidarr/2.0.0/test_values.yaml similarity index 73% rename from charts/sonarr/1.6.4/values.yaml rename to stable/lidarr/2.0.0/test_values.yaml index 216ee9dea11..bb9de58248d 100644 --- a/charts/sonarr/1.6.4/values.yaml +++ b/stable/lidarr/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ -# Default values for Sonarr. +# Default values for Lidarr. image: - repository: linuxserver/sonarr + repository: ghcr.io/truecharts/lidarr pullPolicy: IfNotPresent - tag: version-3.0.4.993 + tag: v0.8.0.2082 strategy: type: Recreate -service: - port: - port: 8989 +services: + main: + port: + port: 8686 env: {} # TZ: UTC @@ -30,7 +31,7 @@ probes: - /usr/bin/env - bash - -c - - curl --fail localhost:8989/api/v3/system/status?apiKey=`IFS=\> && while + - curl --fail localhost:8686/api/v1/system/status?apiKey=`IFS=\> && while read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` failureThreshold: 5 initialDelaySeconds: 60 @@ -60,17 +61,23 @@ persistence: # skipuninstall: false # existingClaim: "" + ## TrueCharts Config - -#appVolumeMounts: -# config: -# enabled: true -# emptyDir: false -# media: -# enabled: true -# emptyDir: false -# downloads: -# enabled: true -# emptyDir: false +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" + media: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/media" + downloads: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/downloads" diff --git a/stable/lidarr/2.0.0/values.yaml b/stable/lidarr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/lidarr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/lidarr/item.yaml b/stable/lidarr/item.yaml similarity index 100% rename from charts/lidarr/item.yaml rename to stable/lidarr/item.yaml diff --git a/charts/tautulli/1.6.4/.helmignore b/stable/ombi/2.0.0/.helmignore similarity index 100% rename from charts/tautulli/1.6.4/.helmignore rename to stable/ombi/2.0.0/.helmignore diff --git a/stable/ombi/2.0.0/CONFIG.md b/stable/ombi/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/ombi/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/ombi/1.6.4/Chart.yaml b/stable/ombi/2.0.0/Chart.yaml similarity index 70% rename from charts/ombi/1.6.4/Chart.yaml rename to stable/ombi/2.0.0/Chart.yaml index 34e6a891a5b..a9d31387ce4 100644 --- a/charts/ombi/1.6.4/Chart.yaml +++ b/stable/ombi/2.0.0/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: ombi -version: 1.6.4 +version: 2.0.0 upstream_version: 8.0.1 -appVersion: 4.0.681 +appVersion: "auto" description: Want a Movie or TV Show on Plex or Emby? Use Ombi! type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/ombi +home: https://github.com/truecharts/apps/tree/master/stable/ombi icon: https://img3.androidappsapk.co/wiLDnuwrCWctiiW62ALcj4eIpNbzeRH_UNPo7eqlpYvGkCQYSTybaI4xVRLKGjnlamlV=s300 keywords: - ombi @@ -17,23 +17,20 @@ keywords: - radarr - couchpotato sources: - - https://github.com/truecharts/charts/tree/master/charts/ombi + - https://github.com/truecharts/apps/tree/master/stable/ombi - https://github.com/k8s-at-home/charts/tree/master/charts/ombi - https://github.com/tidusjar/Ombi - https://hub.docker.com/r/linuxserver/ombi dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/ombi/1.6.4/README.md b/stable/ombi/2.0.0/README.md similarity index 73% rename from charts/ombi/1.6.4/README.md rename to stable/ombi/2.0.0/README.md index 845addfb847..528b12ffeeb 100644 --- a/charts/ombi/1.6.4/README.md +++ b/stable/ombi/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 4.0.681](https://img.shields.io/badge/AppVersion-4.0.681-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Want a Movie or TV Show on Plex or Emby? Use Ombi! TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/ombi/2.0.0/app-readme.md b/stable/ombi/2.0.0/app-readme.md new file mode 100644 index 00000000000..4883ce4e68b --- /dev/null +++ b/stable/ombi/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Want a Movie or TV Show on Plex or Emby? Use Ombi! +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/ombi/2.0.0/charts/common-2.0.0.tgz b/stable/ombi/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/ombi/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/ombi/2.0.0/ix_values.yaml b/stable/ombi/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..6aa17fdfdfd --- /dev/null +++ b/stable/ombi/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/ombi + pullPolicy: IfNotPresent + tag: v4.0.1222 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/jellyfin/1.6.4/questions.yaml b/stable/ombi/2.0.0/questions.yaml similarity index 59% rename from charts/jellyfin/1.6.4/questions.yaml rename to stable/ombi/2.0.0/questions.yaml index 1e72cf5ac0b..453c83f9e86 100644 --- a/charts/jellyfin/1.6.4/questions.yaml +++ b/stable/ombi/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/jellyfin" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-10.6.4-1" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,44 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8096 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -158,11 +124,81 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: @@ -203,6 +239,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -223,12 +260,18 @@ questions: schema: type: hostpath required: true - - variable: media - label: "media dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -245,6 +288,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -252,43 +302,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "media" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/media" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -299,6 +340,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -324,54 +380,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/tautulli/1.6.4/templates/common.yaml b/stable/ombi/2.0.0/templates/common.yaml similarity index 100% rename from charts/tautulli/1.6.4/templates/common.yaml rename to stable/ombi/2.0.0/templates/common.yaml diff --git a/charts/ombi/1.6.4/test_values.yaml b/stable/ombi/2.0.0/test_values.yaml similarity index 86% rename from charts/ombi/1.6.4/test_values.yaml rename to stable/ombi/2.0.0/test_values.yaml index 0b6ab2679fa..75f086c6ed3 100644 --- a/charts/ombi/1.6.4/test_values.yaml +++ b/stable/ombi/2.0.0/test_values.yaml @@ -1,17 +1,17 @@ - # Default values for Ombi. image: - repository: linuxserver/ombi + repository: ghcr.io/truecharts/ombi pullPolicy: IfNotPresent - tag: version-v4.0.681 + tag: v4.0.1222 strategy: type: Recreate -service: - port: - port: 3579 +services: + main: + port: + port: 3579 env: {} # TZ: UTC diff --git a/stable/ombi/2.0.0/values.yaml b/stable/ombi/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/ombi/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/ombi/item.yaml b/stable/ombi/item.yaml similarity index 100% rename from charts/ombi/item.yaml rename to stable/ombi/item.yaml diff --git a/charts/transmission/1.6.4/.helmignore b/stable/plex/1.0.0/.helmignore similarity index 100% rename from charts/transmission/1.6.4/.helmignore rename to stable/plex/1.0.0/.helmignore diff --git a/stable/plex/1.0.0/CONFIG.md b/stable/plex/1.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/plex/1.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/plex/1.0.0/Chart.yaml b/stable/plex/1.0.0/Chart.yaml new file mode 100644 index 00000000000..54ddae1f23b --- /dev/null +++ b/stable/plex/1.0.0/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: plex +version: 1.0.0 +upstream_version: 4.2.1 +appVersion: "auto" +description: Plex Media Server +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/stable/plex +icon: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png +keywords: +- plex +- plex-media-server +sources: + - https://github.com/truecharts/apps/tree/master/stable/plex +dependencies: + - name: common + repository: https://truecharts.org/ + version: 2.0.0 + # condition: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: Ornias1993 + email: kjeld@schouten-lebbing.nl + url: truecharts.org +# annotations: diff --git a/stable/plex/1.0.0/README.md b/stable/plex/1.0.0/README.md new file mode 100644 index 00000000000..46204cef901 --- /dev/null +++ b/stable/plex/1.0.0/README.md @@ -0,0 +1,53 @@ +# Introduction + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Plex Media Server + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.0.0 | + +## Installing the Chart + +To install the chart with the release name `plex` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `plex` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/plex/1.0.0/app-readme.md b/stable/plex/1.0.0/app-readme.md new file mode 100644 index 00000000000..72ae618c679 --- /dev/null +++ b/stable/plex/1.0.0/app-readme.md @@ -0,0 +1,2 @@ +Plex Media Server +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/plex/1.0.0/charts/common-2.0.0.tgz b/stable/plex/1.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/plex/1.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/plex/1.0.0/ix_values.yaml b/stable/plex/1.0.0/ix_values.yaml new file mode 100644 index 00000000000..4c1b6910b0c --- /dev/null +++ b/stable/plex/1.0.0/ix_values.yaml @@ -0,0 +1,18 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/plex + pullPolicy: IfNotPresent + tag: v1.22.1.4228-724c56e62 + +# 44=video 107=render +supplementalGroups: 44,107 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/plex/1.0.0/questions.yaml b/stable/plex/1.0.0/questions.yaml new file mode 100644 index 00000000000..2e69e400aad --- /dev/null +++ b/stable/plex/1.0.0/questions.yaml @@ -0,0 +1,507 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: ADVERTISE_IP + label: "Advertise IP" + description: "IP to advertise to Plex" + schema: + type: string + default: "" + - variable: ALLOWED_NETWORKS + label: "Allowed Networks" + description: "Networks allowed to connect to plex" + schema: + type: string + default: "" + - variable: PLEX_CLAIM + label: "Plex Claim Token" + description: "Claim token to use to register the plex server (Max. 4 minutes old!)" + schema: + type: string + default: "" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTPS" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 32400 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + # Specify GPU configuration + - variable: gpuConfiguration + label: "GPU Configuration" + group: "Storage and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - value: "plex" + description: "Plex: HTTPS/TLS port 32400" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/transmission/1.6.4/templates/common.yaml b/stable/plex/1.0.0/templates/common.yaml similarity index 100% rename from charts/transmission/1.6.4/templates/common.yaml rename to stable/plex/1.0.0/templates/common.yaml diff --git a/stable/plex/1.0.0/test_values.yaml b/stable/plex/1.0.0/test_values.yaml new file mode 100644 index 00000000000..53994847a08 --- /dev/null +++ b/stable/plex/1.0.0/test_values.yaml @@ -0,0 +1,54 @@ +# Default values for Plex. + +image: + repository: ghcr.io/truecharts/plex + pullPolicy: IfNotPresent + tag: v1.22.0.4163-d8c4875dd + +strategy: + type: Recreate + +# 44=video 107=render +supplementalGroups: 44,107 + +services: + main: + port: + port: 32400 + +persistence: + config: + enabled: false + emptyDir: false + + media: + enabled: false + emptyDir: false + mountPath: /media + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + +## TrueCharts Config + + +appVolumeMounts: + config: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/config" + media: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/media" diff --git a/stable/plex/1.0.0/values.yaml b/stable/plex/1.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/plex/1.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/plex/item.yaml b/stable/plex/item.yaml new file mode 100644 index 00000000000..c5e97ecd69c --- /dev/null +++ b/stable/plex/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://www.plex.tv/wp-content/uploads/2018/01/pmp-icon-1.png diff --git a/charts/truecommand/1.6.4/.helmignore b/stable/radarr/2.0.0/.helmignore similarity index 100% rename from charts/truecommand/1.6.4/.helmignore rename to stable/radarr/2.0.0/.helmignore diff --git a/stable/radarr/2.0.0/CONFIG.md b/stable/radarr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/radarr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/radarr/1.6.4/Chart.yaml b/stable/radarr/2.0.0/Chart.yaml similarity index 67% rename from charts/radarr/1.6.4/Chart.yaml rename to stable/radarr/2.0.0/Chart.yaml index d8f6f79d679..4a86cfabfae 100644 --- a/charts/radarr/1.6.4/Chart.yaml +++ b/stable/radarr/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: radarr -version: 1.6.4 +version: 2.0.0 upstream_version: 9.1.0 -appVersion: "version-3.0.0.3989" +appVersion: "auto" description: A fork of Sonarr to work with movies à la Couchpotato type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/radarr +home: https://github.com/truecharts/apps/tree/master/stable/radarr icon: https://nzbusenet.com/wp-content/uploads/2017/10/radarr-logo.png keywords: - radarr - torrent - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/radarr + - https://github.com/truecharts/apps/tree/master/stable/radarr - https://github.com/k8s-at-home/charts/tree/master/charts/radarr - https://github.com/Radarr/Radarr - https://hub.docker.com/r/linuxserver/radarr dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/radarr/1.6.4/README.md b/stable/radarr/2.0.0/README.md similarity index 73% rename from charts/radarr/1.6.4/README.md rename to stable/radarr/2.0.0/README.md index 75ede61cae5..738b7a22cf8 100644 --- a/charts/radarr/1.6.4/README.md +++ b/stable/radarr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: version-3.0.0.3989](https://img.shields.io/badge/AppVersion-version--3.0.0.3989-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) A fork of Sonarr to work with movies à la Couchpotato TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/radarr/2.0.0/app-readme.md b/stable/radarr/2.0.0/app-readme.md new file mode 100644 index 00000000000..0ba83315d53 --- /dev/null +++ b/stable/radarr/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +A fork of Sonarr to work with movies à la Couchpotato +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/radarr/2.0.0/charts/common-2.0.0.tgz b/stable/radarr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/radarr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/radarr/2.0.0/ix_values.yaml b/stable/radarr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..2ea6bb910a4 --- /dev/null +++ b/stable/radarr/2.0.0/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/radarr + pullPolicy: IfNotPresent + tag: v3.0.2.4552 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:7878/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/radarr/2.0.0/questions.yaml b/stable/radarr/2.0.0/questions.yaml new file mode 100644 index 00000000000..4b5e19b082f --- /dev/null +++ b/stable/radarr/2.0.0/questions.yaml @@ -0,0 +1,532 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/truecommand/1.6.4/templates/common.yaml b/stable/radarr/2.0.0/templates/common.yaml similarity index 100% rename from charts/truecommand/1.6.4/templates/common.yaml rename to stable/radarr/2.0.0/templates/common.yaml diff --git a/charts/radarr/1.6.4/test_values.yaml b/stable/radarr/2.0.0/test_values.yaml similarity index 94% rename from charts/radarr/1.6.4/test_values.yaml rename to stable/radarr/2.0.0/test_values.yaml index 89bcf722522..b0a6a97aa59 100644 --- a/charts/radarr/1.6.4/test_values.yaml +++ b/stable/radarr/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Radarr. image: - repository: linuxserver/radarr + repository: ghcr.io/truecharts/radarr pullPolicy: IfNotPresent - tag: version-3.0.0.3989 + tag: v3.0.2.4552 strategy: type: Recreate -service: - port: - port: 7878 +services: + main: + port: + port: 7878 env: {} # TZ: UTC diff --git a/stable/radarr/2.0.0/values.yaml b/stable/radarr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/radarr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/radarr/item.yaml b/stable/radarr/item.yaml similarity index 100% rename from charts/radarr/item.yaml rename to stable/radarr/item.yaml diff --git a/charts/readarr/1.6.4/.helmignore b/stable/sonarr/2.0.0/.helmignore similarity index 100% rename from charts/readarr/1.6.4/.helmignore rename to stable/sonarr/2.0.0/.helmignore index bb3b20ac2a7..e559de0a012 100644 --- a/charts/readarr/1.6.4/.helmignore +++ b/stable/sonarr/2.0.0/.helmignore @@ -19,6 +19,6 @@ .project .idea/ *.tmproj +.vscode/ # OWNERS file for Kubernetes OWNERS -.vscode/ diff --git a/stable/sonarr/2.0.0/CONFIG.md b/stable/sonarr/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/sonarr/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/sonarr/1.6.4/Chart.yaml b/stable/sonarr/2.0.0/Chart.yaml similarity index 67% rename from charts/sonarr/1.6.4/Chart.yaml rename to stable/sonarr/2.0.0/Chart.yaml index 6ea5985e0cc..96d073efeff 100644 --- a/charts/sonarr/1.6.4/Chart.yaml +++ b/stable/sonarr/2.0.0/Chart.yaml @@ -1,36 +1,33 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: sonarr -version: 1.6.4 +version: 2.0.0 upstream_version: 9.1.0 -appVersion: "version-3.0.4.993" +appVersion: "auto" description: Smart PVR for newsgroup and bittorrent users type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/sonarr +home: https://github.com/truecharts/apps/tree/master/stable/sonarr icon: https://github.com/Sonarr/Sonarr/blob/phantom-develop/Logo/512.png?raw=true keywords: - sonarr - torrent - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/sonarr + - https://github.com/truecharts/apps/tree/master/stable/sonarr - https://github.com/k8s-at-home/charts/tree/master/charts/sonarr - https://github.com/Sonarr/Sonarr - https://hub.docker.com/r/linuxserver/sonarr dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/sonarr/1.6.4/README.md b/stable/sonarr/2.0.0/README.md similarity index 73% rename from charts/sonarr/1.6.4/README.md rename to stable/sonarr/2.0.0/README.md index fec61a352f6..d73012b6ff3 100644 --- a/charts/sonarr/1.6.4/README.md +++ b/stable/sonarr/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: version-3.0.4.993](https://img.shields.io/badge/AppVersion-version--3.0.4.993-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Smart PVR for newsgroup and bittorrent users TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/sonarr/2.0.0/app-readme.md b/stable/sonarr/2.0.0/app-readme.md new file mode 100644 index 00000000000..92f2abbea98 --- /dev/null +++ b/stable/sonarr/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Smart PVR for newsgroup and bittorrent users +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/sonarr/2.0.0/charts/common-2.0.0.tgz b/stable/sonarr/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/sonarr/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/sonarr/2.0.0/ix_values.yaml b/stable/sonarr/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..46f8a600248 --- /dev/null +++ b/stable/sonarr/2.0.0/ix_values.yaml @@ -0,0 +1,37 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/sonarr + pullPolicy: IfNotPresent + tag: v3.0.5.1143 + +probes: + liveness: + enabled: true + ## Set this to true if you wish to specify your own livenessProbe + custom: true + ## The spec field contains the values for the default livenessProbe. + ## If you selected custom: true, this field holds the definition of the livenessProbe. + spec: + exec: + command: + - /usr/bin/env + - bash + - -c + - curl --fail localhost:8989/api/v3/system/status?apiKey=`IFS=\> && while + read -d \< E C; do if [[ $E = "ApiKey" ]]; then echo $C; fi; done < /config/config.xml` + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/sonarr/2.0.0/questions.yaml b/stable/sonarr/2.0.0/questions.yaml new file mode 100644 index 00000000000..4014746ae0a --- /dev/null +++ b/stable/sonarr/2.0.0/questions.yaml @@ -0,0 +1,527 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Config ------------------------ + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: media + label: "media dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "media" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/media" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/charts/tvheadend/1.6.4/templates/common.yaml b/stable/sonarr/2.0.0/templates/common.yaml similarity index 100% rename from charts/tvheadend/1.6.4/templates/common.yaml rename to stable/sonarr/2.0.0/templates/common.yaml diff --git a/charts/sonarr/1.6.4/test_values.yaml b/stable/sonarr/2.0.0/test_values.yaml similarity index 94% rename from charts/sonarr/1.6.4/test_values.yaml rename to stable/sonarr/2.0.0/test_values.yaml index cf5f67f97f8..58968e62b92 100644 --- a/charts/sonarr/1.6.4/test_values.yaml +++ b/stable/sonarr/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Sonarr. image: - repository: linuxserver/sonarr + repository: ghcr.io/truecharts/sonarr pullPolicy: IfNotPresent - tag: version-3.0.4.993 + tag: v3.0.5.1143 strategy: type: Recreate -service: - port: - port: 8989 +services: + main: + port: + port: 8989 env: {} # TZ: UTC diff --git a/stable/sonarr/2.0.0/values.yaml b/stable/sonarr/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/sonarr/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/sonarr/item.yaml b/stable/sonarr/item.yaml similarity index 100% rename from charts/sonarr/item.yaml rename to stable/sonarr/item.yaml diff --git a/stable/tautulli/2.0.0/.helmignore b/stable/tautulli/2.0.0/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/stable/tautulli/2.0.0/.helmignore @@ -0,0 +1,24 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS diff --git a/stable/tautulli/2.0.0/CONFIG.md b/stable/tautulli/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/tautulli/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/tautulli/1.6.4/Chart.yaml b/stable/tautulli/2.0.0/Chart.yaml similarity index 69% rename from charts/tautulli/1.6.4/Chart.yaml rename to stable/tautulli/2.0.0/Chart.yaml index 7f7b5cc4c57..1ce8f079fce 100644 --- a/charts/tautulli/1.6.4/Chart.yaml +++ b/stable/tautulli/2.0.0/Chart.yaml @@ -1,35 +1,32 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: tautulli -version: 1.6.4 +version: 2.0.0 upstream_version: 7.0.1 -appVersion: "v2.6.6" +appVersion: "auto" description: A Python based monitoring and tracking tool for Plex Media Server type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/tautulli +home: https://github.com/truecharts/apps/tree/master/stable/tautulli icon: https://github.com/Tautulli/Tautulli/blob/master/data/interfaces/default/images/logo.png?raw=true keywords: - tautulli - plex sources: - - https://github.com/truecharts/charts/tree/master/charts/tautulli + - https://github.com/truecharts/apps/tree/master/stable/tautulli - https://github.com/k8s-at-home/charts/tree/master/charts/tautulli - https://github.com/Tautulli/Tautulli - https://hub.docker.com/r/tautulli/tautulli dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/tautulli/1.6.4/README.md b/stable/tautulli/2.0.0/README.md similarity index 73% rename from charts/tautulli/1.6.4/README.md rename to stable/tautulli/2.0.0/README.md index 4a24509dc44..cda3f0db269 100644 --- a/charts/tautulli/1.6.4/README.md +++ b/stable/tautulli/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.6.6](https://img.shields.io/badge/AppVersion-v2.6.6-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) A Python based monitoring and tracking tool for Plex Media Server TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/tautulli/2.0.0/app-readme.md b/stable/tautulli/2.0.0/app-readme.md new file mode 100644 index 00000000000..fa84467966d --- /dev/null +++ b/stable/tautulli/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +A Python based monitoring and tracking tool for Plex Media Server +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/tautulli/2.0.0/charts/common-2.0.0.tgz b/stable/tautulli/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/tautulli/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/tautulli/2.0.0/ix_values.yaml b/stable/tautulli/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..cde67e30b18 --- /dev/null +++ b/stable/tautulli/2.0.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/tautulli + pullPolicy: IfNotPresent + tag: v2.6.8 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/nzbget/1.6.4/questions.yaml b/stable/tautulli/2.0.0/questions.yaml similarity index 58% rename from charts/nzbget/1.6.4/questions.yaml rename to stable/tautulli/2.0.0/questions.yaml index 2dbf17573fd..f06084fc7c9 100644 --- a/charts/nzbget/1.6.4/questions.yaml +++ b/stable/tautulli/2.0.0/questions.yaml @@ -1,64 +1,68 @@ groups: - name: "Container Image" - description: "configure container image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Networking / service configuration" - - name: "Storage" - description: "configure app volume mounts" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" - path: "/web" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image - description: "Docker Image Details" - label: "Docker Image" + + - variable: portal group: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - description: "Docker image repository" - label: "Image repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - required: true - default: "linuxserver/nzbget" - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "version-v21.0" - - variable: pullPolicy - description: "Docker Image Pull Policy" - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -67,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -75,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -83,7 +87,7 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: @@ -112,43 +116,6 @@ questions: schema: type: string - - variable: service - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - show_subquestions_if: "NodePort" - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 6789 - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true # Enable Host Networking - variable: hostNetwork @@ -158,14 +125,85 @@ questions: type: boolean default: false + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific - variable: appVolumeMounts label: "app storage" - group: "Storage" + group: "Storage and Devices" schema: type: dict attrs: + # Config ------------------------ - variable: config label: "config dataset" schema: @@ -202,6 +240,7 @@ questions: default: "config" required: true editable: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" @@ -222,12 +261,18 @@ questions: schema: type: hostpath required: true - - variable: downloads - label: "downloads dataset" + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: enabled label: "Enabled" @@ -244,6 +289,13 @@ questions: type: boolean default: true hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true - variable: emptyDir label: "emptyDir" schema: @@ -251,43 +303,34 @@ questions: default: false hidden: true editable: false - - variable: datasetName - label: "Dataset Name" - schema: - type: string - default: "downloads" - required: true - editable: false - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" schema: type: path required: true - default: "/downloads" - editable: false + default: "" + editable: true - variable: hostPathEnabled label: "host Path Enabled" schema: type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostPath - label: "Host Path" - schema: - type: hostpath - required: true + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true - - variable: appIngress + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -298,6 +341,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -323,54 +381,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/unifi/1.3.4/templates/common.yaml b/stable/tautulli/2.0.0/templates/common.yaml similarity index 100% rename from charts/unifi/1.3.4/templates/common.yaml rename to stable/tautulli/2.0.0/templates/common.yaml diff --git a/charts/tautulli/1.6.4/test_values.yaml b/stable/tautulli/2.0.0/test_values.yaml similarity index 78% rename from charts/tautulli/1.6.4/test_values.yaml rename to stable/tautulli/2.0.0/test_values.yaml index 00c68e5201a..97d96dbac34 100644 --- a/charts/tautulli/1.6.4/test_values.yaml +++ b/stable/tautulli/2.0.0/test_values.yaml @@ -1,16 +1,17 @@ # Default values for Tautulli. image: - repository: tautulli/tautulli + repository: ghcr.io/truecharts/tautulli pullPolicy: IfNotPresent - tag: v2.6.6 + tag: v2.6.8 strategy: type: Recreate -service: - port: - port: 8181 +services: + main: + port: + port: 8181 env: {} # TZ: UTC diff --git a/stable/tautulli/2.0.0/values.yaml b/stable/tautulli/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/tautulli/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/tautulli/item.yaml b/stable/tautulli/item.yaml similarity index 100% rename from charts/tautulli/item.yaml rename to stable/tautulli/item.yaml diff --git a/charts/traefik/1.3.5/.helmignore b/stable/traefik/2.0.0/.helmignore similarity index 100% rename from charts/traefik/1.3.5/.helmignore rename to stable/traefik/2.0.0/.helmignore diff --git a/stable/traefik/2.0.0/CONFIG.md b/stable/traefik/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/traefik/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/traefik/1.3.5/Chart.yaml b/stable/traefik/2.0.0/Chart.yaml similarity index 54% rename from charts/traefik/1.3.5/Chart.yaml rename to stable/traefik/2.0.0/Chart.yaml index 4b1d90e8507..e39755e4925 100644 --- a/charts/traefik/1.3.5/Chart.yaml +++ b/stable/traefik/2.0.0/Chart.yaml @@ -1,41 +1,32 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: traefik -version: 1.3.5 -upstream_version: 9.14.2 -appVersion: 2.4.2 +version: 2.0.0 +upstream_version: 9.15.2 +appVersion: "auto" description: A Traefik based Reverse Proxy and Certificate Manager type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/traefik +home: https://github.com/truecharts/apps/tree/master/stable/traefik icon: https://raw.githubusercontent.com/traefik/traefik/v2.3/docs/content/assets/img/traefik.logo.png keywords: - traefik - ingress sources: - - https://github.com/truecharts/charts/tree/master/charts/traefik + - https://github.com/truecharts/apps/tree/master/stable/traefik - https://github.com/traefik/traefik - https://github.com/traefik/traefik-helm-chart - https://traefik.io/ dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 - - name: cert-manager - repository: "https://charts.jetstack.io" - version: v1.2.0 - - name: reflector - repository: "https://emberstack.github.io/helm-charts" - version: 5.4.17 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/traefik/1.3.5/Guidelines.md b/stable/traefik/2.0.0/Guidelines.md similarity index 100% rename from charts/traefik/1.3.5/Guidelines.md rename to stable/traefik/2.0.0/Guidelines.md diff --git a/charts/traefik/1.3.5/LICENSE b/stable/traefik/2.0.0/LICENSE similarity index 100% rename from charts/traefik/1.3.5/LICENSE rename to stable/traefik/2.0.0/LICENSE diff --git a/charts/traefik/1.3.5/README.md b/stable/traefik/2.0.0/README.md similarity index 69% rename from charts/traefik/1.3.5/README.md rename to stable/traefik/2.0.0/README.md index fd63aeda404..ccd59d7a68e 100644 --- a/charts/traefik/1.3.5/README.md +++ b/stable/traefik/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.3.5](https://img.shields.io/badge/Version-1.3.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.4.2](https://img.shields.io/badge/AppVersion-2.4.2-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) A Traefik based Reverse Proxy and Certificate Manager TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,9 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.jetstack.io | cert-manager | v1.2.0 | -| https://charts.truecharts.org/ | common | 1.6.7 | -| https://emberstack.github.io/helm-charts | reflector | 5.4.17 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -49,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/traefik/2.0.0/app-readme.md b/stable/traefik/2.0.0/app-readme.md new file mode 100644 index 00000000000..385cea28045 --- /dev/null +++ b/stable/traefik/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +A Traefik based Reverse Proxy and Certificate Manager +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/traefik/2.0.0/charts/common-2.0.0.tgz b/stable/traefik/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/traefik/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/traefik/2.0.0/crds/ingressroute.yaml b/stable/traefik/2.0.0/crds/ingressroute.yaml new file mode 100644 index 00000000000..9422be3c878 --- /dev/null +++ b/stable/traefik/2.0.0/crds/ingressroute.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutes.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRoute + plural: ingressroutes + singular: ingressroute + scope: Namespaced diff --git a/stable/traefik/2.0.0/crds/ingressroutetcp.yaml b/stable/traefik/2.0.0/crds/ingressroutetcp.yaml new file mode 100644 index 00000000000..b50eb9dcc46 --- /dev/null +++ b/stable/traefik/2.0.0/crds/ingressroutetcp.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutetcps.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteTCP + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced diff --git a/stable/traefik/2.0.0/crds/ingressrouteudp.yaml b/stable/traefik/2.0.0/crds/ingressrouteudp.yaml new file mode 100644 index 00000000000..d7c2624b576 --- /dev/null +++ b/stable/traefik/2.0.0/crds/ingressrouteudp.yaml @@ -0,0 +1,13 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressrouteudps.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteUDP + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced diff --git a/stable/traefik/2.0.0/crds/middlewares.yaml b/stable/traefik/2.0.0/crds/middlewares.yaml new file mode 100644 index 00000000000..513b36f5d8a --- /dev/null +++ b/stable/traefik/2.0.0/crds/middlewares.yaml @@ -0,0 +1,12 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: middlewares.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: Middleware + plural: middlewares + singular: middleware + scope: Namespaced diff --git a/charts/traefik/1.3.5/crds/serverstransports.yaml b/stable/traefik/2.0.0/crds/serverstransports.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/serverstransports.yaml rename to stable/traefik/2.0.0/crds/serverstransports.yaml diff --git a/charts/traefik/1.3.5/crds/tlsoptions.yaml b/stable/traefik/2.0.0/crds/tlsoptions.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/tlsoptions.yaml rename to stable/traefik/2.0.0/crds/tlsoptions.yaml diff --git a/charts/traefik/1.3.5/crds/tlsstores.yaml b/stable/traefik/2.0.0/crds/tlsstores.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/tlsstores.yaml rename to stable/traefik/2.0.0/crds/tlsstores.yaml diff --git a/charts/traefik/1.3.5/crds/traefikservices.yaml b/stable/traefik/2.0.0/crds/traefikservices.yaml similarity index 100% rename from charts/traefik/1.3.5/crds/traefikservices.yaml rename to stable/traefik/2.0.0/crds/traefikservices.yaml diff --git a/charts/traefik/1.3.5/values.yaml b/stable/traefik/2.0.0/ix_values.yaml similarity index 64% rename from charts/traefik/1.3.5/values.yaml rename to stable/traefik/2.0.0/ix_values.yaml index 4450cf1a109..87cc99a7046 100644 --- a/charts/traefik/1.3.5/values.yaml +++ b/stable/traefik/2.0.0/ix_values.yaml @@ -1,8 +1,13 @@ -# Default values for Traefik +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + image: name: traefik # defaults to appVersion - tag: "" + tag: v2.4.6 pullPolicy: IfNotPresent # @@ -82,7 +87,7 @@ experimental: # Create an IngressRoute for the dashboard ingressRoute: dashboard: - enabled: true + enabled: false # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) annotations: {} # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) @@ -211,177 +216,6 @@ envFrom: [] # - secretRef: # name: secret-name -# Configure ports -ports: - # The name of this one can't be changed as it is used for the readiness and - # liveness probes, but you can adjust its config to your liking - traefik: - port: 9000 - # Use hostPort if set. - # hostPort: 9000 - # - # Use hostIP if set. If not set, Kubernetes will default to 0.0.0.0, which - # means it's listening on all your interfaces and all your IPs. You may want - # to set this value if you need traefik to listen on specific interface - # only. - # hostIP: 192.168.100.10 - - # Defines whether the port is exposed if service.type is LoadBalancer or - # NodePort. - # - # You SHOULD NOT expose the traefik port on production deployments. - # If you want to access it from outside of your cluster, - # use `kubectl port-forward` or create a secure ingress - expose: false - # The exposed port for this service - exposedPort: 9000 - # The port protocol (TCP/UDP) - protocol: TCP - web: - port: 8000 - # hostPort: 8000 - expose: true - exposedPort: 80 - # The port protocol (TCP/UDP) - protocol: TCP - # Use nodeport if set. This is useful if you have configured Traefik in a - # LoadBalancer - # nodePort: 32080 - # Port Redirections - # Added in 2.2, you can make permanent redirects via entrypoints. - # https://docs.traefik.io/routing/entrypoints/#redirection - redirectTo: websecure - websecure: - port: 8443 - # hostPort: 8443 - expose: true - exposedPort: 443 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - plex: - port: 32400 - # hostPort: 8443 - expose: true - exposedPort: 32400 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - kms: - port: 51688 - # hostPort: 8443 - expose: true - exposedPort: 1688 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - dns-tcp: - port: 5353 - # hostPort: 8443 - expose: true - exposedPort: 53 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - dns-udp: - port: 5353 - # hostPort: 8443 - expose: true - exposedPort: 53 - # The port protocol (TCP/UDP) - protocol: UDP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - stun-tcp: - port: 3478 - # hostPort: 8443 - expose: true - exposedPort: 3478 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - stun-udp: - port: 3478 - # hostPort: 8443 - expose: true - exposedPort: 3478 - # The port protocol (TCP/UDP) - protocol: UDP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - torrent-tcp: - port: 51413 - # hostPort: 8443 - expose: true - exposedPort: 51413 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - torrent-udp: - port: 51413 - # hostPort: 8443 - expose: true - exposedPort: 51413 - # The port protocol (TCP/UDP) - protocol: UDP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - radius: - port: 51812 - # hostPort: 8443 - expose: true - exposedPort: 1812 - # The port protocol (TCP/UDP) - protocol: UDP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - radius-acc: - port: 51813 - # hostPort: 8443 - expose: true - exposedPort: 1813 - # The port protocol (TCP/UDP) - protocol: UDP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - ldaps: - port: 50636 - # hostPort: 8443 - expose: true - exposedPort: 636 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - unificom: - port: 8080 - # hostPort: 8443 - expose: true - exposedPort: 8080 - # The port protocol (TCP/UDP) - protocol: TCP - # nodePort: 32443 - # Set TLS at the entrypoint - # https://doc.traefik.io/traefik/routing/entrypoints/#tls - # TLS Options are created as TLSOption CRDs # https://doc.traefik.io/traefik/https/tls/#tls-options # Example: @@ -516,60 +350,7 @@ podSecurityContext: fsGroup: 65532 -#appVolumeMounts: -# data: -# enabled: true -# emptyDir: false -# datasetName: "data" -# mountPath: "/data" - -appIngress: - webui: - enabled: false - entrypoint: "websecure" - certType: "letsencrypt-prod" - existingcert: "" - authForwardURL: "" - host: "traefik.example.truecharts.org" - -certmanager: - # general - provider: "" - email: "" - wildcardDomain: "" - # provider specific - cloudflare: - apikey: "" - cloudDNS: - project: "" - keyjson: "" - route53: - region: "" - accessKeyID: "" - secretaccesskey: "" - digitalocean: - accesstoken: "" - rfc2136: - nameserver: "" - tsigKeyName: "" - tsigsecretkey: "" - tsigAlgorithm: "" - azureDNS: - environment: "" - subscriptionID: "" - resourceGroupName: "" - hostedZoneName: "" - akamai: - serviceConsumerDomain: "" - clientToken: "" - clientSecret: "" - accessToken: "" - acmeDNS: - host: "" - acmednsjson: "" - -cert-manager: - installCRDs: true - extraArgs: - - --dns01-recursive-nameservers-only - - --dns01-recursive-nameservers=1.1.1.1:53 +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/traefik/2.0.0/questions.yaml b/stable/traefik/2.0.0/questions.yaml new file mode 100644 index 00000000000..15c49df7c4c --- /dev/null +++ b/stable/traefik/2.0.0/questions.yaml @@ -0,0 +1,927 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "https" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "443" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + # Data ------------------------ + - variable: data + label: "data dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/data" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "WebUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP-IR" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "api@internal" + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "TraefikService" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + + - variable: ports + label: "(Advanced) Traefik Entrypoints" + group: "Advanced" + schema: + type: dict + attrs: + - variable: traefik + label: "traefik internal" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 9000 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + default: 9000 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + default: "TCP" + + - variable: web + label: "web" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 8081 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 80 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: redirectEnable + label: "Enable Redirect" + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: redirectTo + label: "Target Entrypoint" + description: "Select the Target Entrypoint to redirect to" + schema: + type: string + required: true + default: "websecure" + - variable: websecure + label: "websecure" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 8443 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 443 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: plex + label: "plex" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 32400 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: false + default: 32400 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: kms + label: "kms" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51688 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1688 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: dns-tcp + label: "dns-tcp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 5353 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 53 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: dns-udp + label: "dns-udp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 5353 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 53 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: stun-tcp + label: "stun-tcp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 3478 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 3478 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + - variable: stun-udp + label: "stun-udp" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 3478 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 3478 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: radius + label: "radius" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51812 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1812 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: radius-acc + label: "radius-acc" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 51813 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 1813 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "UDP" + hidden: true + - variable: ldaps + label: "ldaps" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + default: 50636 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: false + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 636 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + hidden: true + default: "TCP" + - variable: unificom + label: "unificom" + schema: + type: dict + attrs: + - variable: port + label: "Internal Port" + description: "(advanced) Port inside the container network" + schema: + type: int + required: true + hidden: true + hide: true + default: 8080 + - variable: expose + label: "Expose to Outside" + description: "Port to the outside of all(!) nodes" + schema: + type: boolean + default: true + - variable: exposedPort + label: "Outside Port" + description: "Port to the outside of all(!) nodes" + schema: + type: int + show_if: [["expose", "=", true]] + required: true + default: 8080 + - variable: protocol + label: "Protocol" + description: "TCP or UDP reverse proxying?" + schema: + type: string + required: true + default: "TCP" + hidden: true + + - variable: externalServices + label: "(Advanced) Add External Services" + group: "Advanced" + schema: + type: list + default: [] + items: + - variable: externalService + label: "External Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + hidden: true + editable: false + default: true + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: serviceTarget + label: "IP Adress of the external service" + schema: + hidden: false + editable: true + required: true + type: string + default: "192.168.0.0" + - variable: servicePort + label: "External Service Port" + description: "The port on the external service you want to proxy" + schema: + hidden: false + required: true + editable: true + type: int + default: 80 + - variable: serviceType + label: "Connection Type" + description: "Connection Type between Traefik and the external service" + schema: + hidden: false + editable: true + required: true + default: "HTTP" + type: string + enum: + - value: "HTTP" + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: serviceKind + label: "Service Kind to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: false + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" + + - variable: warning + label: "This App binds to the same ports as the defaults for TrueNAS SCALE UI (80 and 443). This means you may not be able to access the TrueNAS SCALE UI after starting the App." + description: "Please be sure to set the UI to a different port or adapter" + group: "WARNING" + schema: + type: dict + attrs: + - variable: confirm-warning + description: "Check this to confirm you have made precautions against conflicts on port 80 and 443, such as running the TrueNAS SCALE UI on a different port or adapter." + label: "I understand above warning and its consequences" + schema: + type: boolean + default: false + required: true diff --git a/charts/traefik/1.3.5/templates/_helpers.tpl b/stable/traefik/2.0.0/templates/_helpers.tpl similarity index 100% rename from charts/traefik/1.3.5/templates/_helpers.tpl rename to stable/traefik/2.0.0/templates/_helpers.tpl diff --git a/charts/traefik/1.3.5/templates/_podtemplate.tpl b/stable/traefik/2.0.0/templates/_podtemplate.tpl similarity index 88% rename from charts/traefik/1.3.5/templates/_podtemplate.tpl rename to stable/traefik/2.0.0/templates/_podtemplate.tpl index ec657303545..8552879de67 100644 --- a/charts/traefik/1.3.5/templates/_podtemplate.tpl +++ b/stable/traefik/2.0.0/templates/_podtemplate.tpl @@ -72,12 +72,14 @@ {{- toYaml . | nindent 10 }} {{- end }} volumeMounts: - {{- include "configuredAppVolumeMounts" . | indent 10 }} - #- name: data - # mountPath: {{ .Values.persistence.path }} - # {{- if .Values.persistence.subPath }} - # subPath: {{ .Values.persistence.subPath }} - # {{- end }} + {{- include "common.storage.allContainerVolumeMounts" . | indent 10 }} + {{- if .Values.persistence.enabled }} + - name: {{ .Values.persistence.name }} + mountPath: {{ .Values.persistence.path }} + {{- if .Values.persistence.subPath }} + subPath: {{ .Values.persistence.subPath }} + {{- end }} + {{- end }} - name: tmp mountPath: /tmp {{- $root := . }} @@ -207,27 +209,29 @@ {{- toYaml .Values.deployment.additionalContainers | nindent 6 }} {{- end }} volumes: - {{- include "configuredAppVolumes" . | indent 8 }} - #- name: data - # {{- if .Values.persistence.enabled }} - # persistentVolumeClaim: - # claimName: {{ default (include "traefik.fullname" .) .Values.persistence.existingClaim }} - # {{- else }} - # emptyDir: {} - # {{- end }} + {{- if .Values.appVolumeMounts }} + {{- include "common.storage.allAppVolumes" . | indent 8 }} + {{- else if .Values.persistence.enabled }} + - name: data + persistentVolumeClaim: + claimName: {{ default (include "traefik.fullname" .) .Values.persistence.existingClaim }} + {{- else }} + - name: data + emptyDir: {} + {{- end }} - name: tmp emptyDir: {} - #{{- $root := . }} - #{{- range .Values.volumes }} - #- name: {{ tpl (.name) $root }} - # {{- if eq .type "secret" }} - # secret: - # secretName: {{ tpl (.name) $root }} - # {{- else if eq .type "configMap" }} - # configMap: - # name: {{ tpl (.name) $root }} - # {{- end }} - #{{- end }} + {{- $root := . }} + {{- range .Values.volumes }} + - name: {{ tpl (.name) $root }} + {{- if eq .type "secret" }} + secret: + secretName: {{ tpl (.name) $root }} + {{- else if eq .type "configMap" }} + configMap: + name: {{ tpl (.name) $root }} + {{- end }} + {{- end }} {{- if .Values.deployment.additionalVolumes }} {{- toYaml .Values.deployment.additionalVolumes | nindent 8 }} {{- end }} diff --git a/stable/traefik/2.0.0/templates/custom/common.yaml b/stable/traefik/2.0.0/templates/custom/common.yaml new file mode 100644 index 00000000000..2c57198c45c --- /dev/null +++ b/stable/traefik/2.0.0/templates/custom/common.yaml @@ -0,0 +1,2 @@ +{{ include "common.ingress" . }} +{{ include "common.resources.portal" . }} diff --git a/charts/traefik/1.3.5/templates/custom/middlewares.yaml b/stable/traefik/2.0.0/templates/custom/middlewares.yaml similarity index 91% rename from charts/traefik/1.3.5/templates/custom/middlewares.yaml rename to stable/traefik/2.0.0/templates/custom/middlewares.yaml index 0bd4e91d7e0..e7c40f9e248 100644 --- a/charts/traefik/1.3.5/templates/custom/middlewares.yaml +++ b/stable/traefik/2.0.0/templates/custom/middlewares.yaml @@ -37,11 +37,11 @@ spec: - HEAD - PUT accessControlMaxAge: 100 - #sslRedirect: true - #stsSeconds: 63072000 - #stsIncludeSubdomains: false - #stsPreload: false - #forceSTSHeader: true + # sslRedirect: true + # stsSeconds: 63072000 + # stsIncludeSubdomains: false + # stsPreload: false + # forceSTSHeader: true contentTypeNosniff: true browserXssFilter: true sslForceHost: true diff --git a/charts/traefik/1.3.5/templates/custom/tlsoptions.yaml b/stable/traefik/2.0.0/templates/custom/tlsoptions.yaml similarity index 90% rename from charts/traefik/1.3.5/templates/custom/tlsoptions.yaml rename to stable/traefik/2.0.0/templates/custom/tlsoptions.yaml index bd47cf8ab66..a03f8652c67 100644 --- a/charts/traefik/1.3.5/templates/custom/tlsoptions.yaml +++ b/stable/traefik/2.0.0/templates/custom/tlsoptions.yaml @@ -2,7 +2,6 @@ apiVersion: traefik.containo.us/v1alpha1 kind: TLSOption metadata: name: default - namespace: default spec: minVersion: VersionTLS12 cipherSuites: @@ -15,4 +14,4 @@ spec: curvePreferences: - CurveP521 - CurveP384 - #sniStrict: true + # sniStrict: true diff --git a/charts/traefik/1.3.5/templates/daemonset.yaml b/stable/traefik/2.0.0/templates/daemonset.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/daemonset.yaml rename to stable/traefik/2.0.0/templates/daemonset.yaml diff --git a/charts/traefik/1.3.5/templates/dashboard-hook-ingressroute.yaml b/stable/traefik/2.0.0/templates/dashboard-hook-ingressroute.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/dashboard-hook-ingressroute.yaml rename to stable/traefik/2.0.0/templates/dashboard-hook-ingressroute.yaml diff --git a/charts/traefik/1.3.5/templates/deployment.yaml b/stable/traefik/2.0.0/templates/deployment.yaml similarity index 92% rename from charts/traefik/1.3.5/templates/deployment.yaml rename to stable/traefik/2.0.0/templates/deployment.yaml index 28e10e85e85..d64a2e1c8eb 100644 --- a/charts/traefik/1.3.5/templates/deployment.yaml +++ b/stable/traefik/2.0.0/templates/deployment.yaml @@ -3,7 +3,7 @@ {{- with .Values.additionalArguments -}} {{- range . -}} {{- if contains ".acme." . -}} - {{- fail (printf "You can not enabled acme if you set more than one traefik replica") -}} + {{- fail (printf "You can not enable acme if you set more than one traefik replica") -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/charts/traefik/1.3.5/templates/gateway.yaml b/stable/traefik/2.0.0/templates/gateway.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/gateway.yaml rename to stable/traefik/2.0.0/templates/gateway.yaml diff --git a/charts/traefik/1.3.5/templates/gatewayclass.yaml b/stable/traefik/2.0.0/templates/gatewayclass.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/gatewayclass.yaml rename to stable/traefik/2.0.0/templates/gatewayclass.yaml diff --git a/charts/traefik/1.3.5/templates/hpa.yaml b/stable/traefik/2.0.0/templates/hpa.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/hpa.yaml rename to stable/traefik/2.0.0/templates/hpa.yaml diff --git a/charts/traefik/1.3.5/templates/ingressclass.yaml b/stable/traefik/2.0.0/templates/ingressclass.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/ingressclass.yaml rename to stable/traefik/2.0.0/templates/ingressclass.yaml diff --git a/charts/traefik/1.3.5/templates/poddisruptionbudget.yaml b/stable/traefik/2.0.0/templates/poddisruptionbudget.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/poddisruptionbudget.yaml rename to stable/traefik/2.0.0/templates/poddisruptionbudget.yaml diff --git a/charts/traefik/1.3.5/templates/pvc.yaml b/stable/traefik/2.0.0/templates/pvc.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/pvc.yaml rename to stable/traefik/2.0.0/templates/pvc.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/clusterrole.yaml b/stable/traefik/2.0.0/templates/rbac/clusterrole.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/clusterrole.yaml rename to stable/traefik/2.0.0/templates/rbac/clusterrole.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/clusterrolebinding.yaml b/stable/traefik/2.0.0/templates/rbac/clusterrolebinding.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/clusterrolebinding.yaml rename to stable/traefik/2.0.0/templates/rbac/clusterrolebinding.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/podsecuritypolicy.yaml b/stable/traefik/2.0.0/templates/rbac/podsecuritypolicy.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/podsecuritypolicy.yaml rename to stable/traefik/2.0.0/templates/rbac/podsecuritypolicy.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/role.yaml b/stable/traefik/2.0.0/templates/rbac/role.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/role.yaml rename to stable/traefik/2.0.0/templates/rbac/role.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/rolebinding.yaml b/stable/traefik/2.0.0/templates/rbac/rolebinding.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/rolebinding.yaml rename to stable/traefik/2.0.0/templates/rbac/rolebinding.yaml diff --git a/charts/traefik/1.3.5/templates/rbac/serviceaccount.yaml b/stable/traefik/2.0.0/templates/rbac/serviceaccount.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/rbac/serviceaccount.yaml rename to stable/traefik/2.0.0/templates/rbac/serviceaccount.yaml diff --git a/charts/traefik/1.3.5/templates/service.yaml b/stable/traefik/2.0.0/templates/service.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/service.yaml rename to stable/traefik/2.0.0/templates/service.yaml diff --git a/charts/traefik/1.3.5/templates/tlsoption.yaml b/stable/traefik/2.0.0/templates/tlsoption.yaml similarity index 100% rename from charts/traefik/1.3.5/templates/tlsoption.yaml rename to stable/traefik/2.0.0/templates/tlsoption.yaml diff --git a/charts/traefik/1.3.5/test_values.yaml b/stable/traefik/2.0.0/test_values.yaml similarity index 92% rename from charts/traefik/1.3.5/test_values.yaml rename to stable/traefik/2.0.0/test_values.yaml index 821d5e22bd3..db3c65e6513 100644 --- a/charts/traefik/1.3.5/test_values.yaml +++ b/stable/traefik/2.0.0/test_values.yaml @@ -2,12 +2,12 @@ image: name: traefik # defaults to appVersion - tag: "" + tag: v2.4.6 pullPolicy: IfNotPresent -# +## # Configure the deployment -# +## deployment: enabled: true # Can be either Deployment or DaemonSet @@ -82,7 +82,7 @@ experimental: # Create an IngressRoute for the dashboard ingressRoute: dashboard: - enabled: true + enabled: false # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class) annotations: {} # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels) @@ -93,9 +93,9 @@ rollingUpdate: maxSurge: 1 -# +## # Configure providers -# +## providers: kubernetesCRD: enabled: true @@ -112,7 +112,7 @@ providers: # By default this Traefik service # pathOverride: "" -# +## # Add volumes to the traefik pod. The volume name will be passed to tpl. # This can be used to mount a cert pair or a configmap that holds a config.toml file. # After the volume has been mounted, add the configs into traefik by using the `additionalArguments` list below, eg: @@ -177,14 +177,13 @@ logs: globalArguments: - "--global.checknewversion" -# +## # Configure Traefik static configuration # Additional arguments to be passed at Traefik's binary # All available options available on https://docs.traefik.io/reference/static-configuration/cli/ ## Use curly braces to pass values: `helm install --set="additionalArguments={--providers.kubernetesingress.ingressclass=traefik-internal,--log.level=DEBUG}"` additionalArguments: # - "--providers.kubernetesingress.ingressclass=traefik-internal" - - "--providers.kubernetesIngress.ingressClass=traefik-cert-manager" # - "--log.level=DEBUG" # - "--metrics.prometheus" - "--entrypoints.websecure.http.tls" @@ -415,7 +414,7 @@ service: # - 192.168.0.1/32 # - 172.16.0.0/16 externalIPs: - - 192.168.66.6 + - 192.168.66.6 ## Create HorizontalPodAutoscaler object. ## @@ -442,12 +441,12 @@ autoscaling: persistence: enabled: false # existingClaim: "" - accessMode: ReadWriteOnce - size: 128Mi - # storageClass: "" - path: /data - annotations: {} - # subPath: "" # only mount a subpath of the Volume into the pod + # accessMode: ReadWriteOnce + # size: 128Mi + ## storageClass: "" + # path: /data + # annotations: {} + ## subPath: "" # only mount a subpath of the Volume into the pod # If hostNetwork is true, runs traefik in the host network namespace # To prevent unschedulabel pods due to port collisions, if hostNetwork=true @@ -523,55 +522,38 @@ appVolumeMounts: emptyDir: true mountPath: "/data" - - -appIngress: - webui: - enabled: false +ingress: + dashboard: + enabled: true + type: "HTTP-IR" entrypoint: "websecure" - certType: "letsencrypt-prod" - existingcert: "" - authForwardURL: "" - host: "traefik.example.truecharts.org" + certType: "selfsigned" + serviceName: api@internal + servicePort: + serviceKind: "TraefikService" + annotations: {} + labels: {} + hosts: + - host: chart-example.local + paths: + - path: / + # Ignored if not kubeVersion >= 1.14-0 + pathType: Prefix -certmanager: - # general - provider: "" - email: "" - wildcardDomain: "" - # provider specific - cloudflare: - apikey: "placeholder" - cloudDNS: - project: "" - keyjson: "placeholder" - route53: - region: "" - accessKeyID: "" - secretaccesskey: "placeholder" - digitalocean: - accesstoken: "placeholder" - rfc2136: - nameserver: "" - tsigKeyName: "" - tsigAlgorithm: "" - tsigsecretkey: "placeholder" - azureDNS: - environment: "" - subscriptionID: "" - resourceGroupName: "" - hostedZoneName: "" - akamai: - serviceConsumerDomain: "" - clientToken: "placeholder" - clientSecret: "placeholder" - accessToken: "placeholder" - acmeDNS: - host: "" - acmednsjson: "placeholder" - -cert-manager: - installCRDs: true - extraArgs: - - --dns01-recursive-nameservers-only - - --dns01-recursive-nameservers=1.1.1.1:53 +externalServices: + - enabled: true + name: "test" + type: "HTTP" + entrypoint: "websecure" + certType: "selfsigned" + serviceTarget: "192.168.10.20" + servicePort: 9443 + serviceKind: "" + annotations: {} + labels: {} + hosts: + - host: radarr.staging.schouten-lebbing.nl + paths: + - path: / + # Ignored if not kubeVersion >= 1.14-0 + pathType: Prefix diff --git a/stable/traefik/2.0.0/values.yaml b/stable/traefik/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/traefik/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/traefik/item.yaml b/stable/traefik/item.yaml similarity index 100% rename from charts/traefik/item.yaml rename to stable/traefik/item.yaml diff --git a/stable/transmission/2.0.0/.helmignore b/stable/transmission/2.0.0/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/stable/transmission/2.0.0/.helmignore @@ -0,0 +1,24 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS diff --git a/stable/transmission/2.0.0/CONFIG.md b/stable/transmission/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/transmission/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/transmission/1.6.4/Chart.yaml b/stable/transmission/2.0.0/Chart.yaml similarity index 66% rename from charts/transmission/1.6.4/Chart.yaml rename to stable/transmission/2.0.0/Chart.yaml index f72f041107e..efabcdc674b 100644 --- a/charts/transmission/1.6.4/Chart.yaml +++ b/stable/transmission/2.0.0/Chart.yaml @@ -1,35 +1,32 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: transmission -version: 1.6.4 +version: 2.0.0 # upstream_version: -appVersion: "version-v0.17.153" +appVersion: "auto" description: API Support for your favorite torrent trackers. type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/transmission +home: https://github.com/truecharts/apps/tree/master/stable/transmission icon: https://github.com/Jackett/Jackett/blob/phantom-develop/Logo/512.png?raw=true keywords: - transmission - torrent - usenet sources: - - https://github.com/truecharts/charts/tree/master/charts/transmission + - https://github.com/truecharts/apps/tree/master/stable/transmission - https://github.com/transmission/transmission - https://hub.docker.com/r/linuxserver/transmission dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Kjeld Schouten-Lebbing + - name: Ornias1993 email: kjeld@schouten-lebbing.nl url: truecharts.org # annotations: diff --git a/charts/transmission/1.6.4/README.md b/stable/transmission/2.0.0/README.md similarity index 72% rename from charts/transmission/1.6.4/README.md rename to stable/transmission/2.0.0/README.md index 4ab0d3b9985..9da76697b02 100644 --- a/charts/transmission/1.6.4/README.md +++ b/stable/transmission/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: version-v0.17.153](https://img.shields.io/badge/AppVersion-version--v0.17.153-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) API Support for your favorite torrent trackers. TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * @@ -21,7 +21,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -46,9 +46,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/transmission/2.0.0/app-readme.md b/stable/transmission/2.0.0/app-readme.md new file mode 100644 index 00000000000..7d3c709fdff --- /dev/null +++ b/stable/transmission/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +API Support for your favorite torrent trackers. +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/transmission/2.0.0/charts/common-2.0.0.tgz b/stable/transmission/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/transmission/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/transmission/2.0.0/ix_values.yaml b/stable/transmission/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..b2df0adc6ed --- /dev/null +++ b/stable/transmission/2.0.0/ix_values.yaml @@ -0,0 +1,50 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: ghcr.io/truecharts/transmission + pullPolicy: IfNotPresent + tag: v3.00 + +transmissionFixedConfig: + bind-address-ipv4: "0.0.0.0" + bind-address-ipv6: ::" + cache-size-mb: 4 + lpd-enabled: false + dht-enabled: true + peer-congestion-algorithm: "" + message-level: 2 + peer-id-ttl-hours: 4 + peer-port: 51413 + peer-port-random-high: 65535 + peer-port-random-low: 49152 + peer-port-random-on-start: false + peer-socket-tos: "default" + pex-enabled: true + port-forwarding-enabled: false + preallocation: 0 + prefetch-enabled: true + rename-partial-files: true + rpc-authentication-required: false + rpc-bind-address: "0.0.0.0" + rpc-enabled: true + rpc-host-whitelist: "" + rpc-host-whitelist-enabled: false + rpc-password: "CHANGEME" + rpc-port: 9091 + rpc-url: "/transmission/" + rpc-username: "" + rpc-whitelist: "" + rpc-whitelist-enabled: false + umask: 2 + utp-enabled: true + watch-dir: "/watch" + watch-dir-enabled: true + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/transmission/2.0.0/questions.yaml b/stable/transmission/2.0.0/questions.yaml new file mode 100644 index 00000000000..70b18642bb4 --- /dev/null +++ b/stable/transmission/2.0.0/questions.yaml @@ -0,0 +1,814 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + +questions: + + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + # Configure Time Zone + - variable: timezone + group: "Container Image" + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + - variable: UMASK + group: "Container Image" + label: "UMASK (advanced)" + description: "The UMASK used if supported by the application" + schema: + type: string + default: "002" + + + - variable: transmissionConfig + group: "Configuration" + label: "Transmission Settings" + schema: + type: dict + attrs: + - variable: alt-speed-down + label: "alt-speed-down" + schema: + type: int + default: 50 + + - variable: alt-speed-enabled + label: "alt-speed-enabled" + schema: + type: boolean + default: false + + - variable: alt-speed-time-begin + label: "alt-speed-time-begin" + schema: + type: int + default: 540 + + - variable: alt-speed-time-day + label: "alt-speed-time-day" + schema: + type: int + default: 127 + + - variable: alt-speed-time-enabled + label: "alt-speed-time-enabled" + schema: + type: boolean + default: false + + - variable: alt-speed-time-end + label: "alt-speed-time-end" + schema: + type: int + default: 1020 + + - variable: alt-speed-up + label: "alt-speed-up" + schema: + type: int + default: 50 + + - variable: blocklist-enabled + label: "blocklist-enabled" + schema: + type: boolean + default: true + + - variable: blocklist-url + label: "blocklist-url" + schema: + type: string + default: "http://john.bitsurge.net/public/biglist.p2p.gz" + + - variable: download-dir + label: "download-dir" + schema: + type: string + default: "/downloads/complete" + + - variable: download-queue-enabled + label: "download-queue-enabled" + schema: + type: boolean + default: true + + - variable: download-queue-size + label: "download-queue-size" + schema: + type: int + default: 5 + + - variable: encryption + label: "encryption" + schema: + type: int + default: 1 + + - variable: idle-seeding-limit + label: "idle-seeding-limit" + schema: + type: int + default: 30 + + - variable: idle-seeding-limit-enabled + label: "idle-seeding-limit-enabled" + schema: + type: boolean + default: false + + - variable: incomplete-dir + label: "incomplete-dir" + schema: + type: string + default: "/downloads/incomplete" + + - variable: incomplete-dir-enabled + label: "incomplete-dir-enabled" + schema: + type: boolean + default: true + + - variable: peer-limit-global + label: "peer-limit-global" + schema: + type: int + default: 200 + + - variable: peer-limit-per-torrent + label: "peer-limit-per-torrent" + schema: + type: int + default: 50 + + - variable: queue-stalled-enabled + label: "queue-stalled-enabled" + schema: + type: boolean + default: true + + - variable: queue-stalled-minutes + label: "queue-stalled-minutes" + schema: + type: int + default: 30 + + - variable: ratio-limit + label: "ratio-limit" + schema: + type: int + default: 2 + + - variable: ratio-limit-enabled + label: "ratio-limit-enabled" + schema: + type: boolean + default: false + + - variable: scrape-paused-torrents-enabled + label: "scrape-paused-torrents-enabled" + schema: + type: boolean + default: true + + - variable: script-torrent-done-enabled + label: "script-torrent-done-enabled" + schema: + type: boolean + default: false + + - variable: script-torrent-done-filename + label: "script-torrent-done-filename" + schema: + type: string + default: "" + + - variable: seed-queue-enabled + label: "seed-queue-enabled" + schema: + type: boolean + default: false + + - variable: seed-queue-size + label: "seed-queue-size" + schema: + type: int + default: 10 + + - variable: speed-limit-down + label: "speed-limit-down" + schema: + type: int + default: 100 + + - variable: speed-limit-down-enabled + label: "speed-limit-down-enabled" + schema: + type: boolean + default: false + + - variable: speed-limit-up + label: "speed-limit-up" + schema: + type: int + default: 100 + + - variable: speed-limit-up-enabled + label: "speed-limit-up-enabled" + schema: + type: boolean + default: false + + - variable: start-added-torrents + label: "start-added-torrents" + schema: + type: boolean + default: true + + - variable: trash-original-torrent-files + label: "trash-original-torrent-files" + schema: + type: boolean + default: false + + - variable: upload-slots-per-torrent + label: "upload-slots-per-torrent" + schema: + type: int + default: 14 + + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: tcp + label: "TCP Torrent connections" + description: "This service is used to process incomming torrent connections over TCP" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: udp + label: "UDP Torrent connections" + description: "This service is used to process incomming torrent connections over UDP" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "container port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + - variable: config + label: "config dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/config" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: downloads + label: "downloads dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "downloads" + required: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/downloads" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/stable/transmission/2.0.0/templates/common.yaml b/stable/transmission/2.0.0/templates/common.yaml new file mode 100644 index 00000000000..e0195d0d28f --- /dev/null +++ b/stable/transmission/2.0.0/templates/common.yaml @@ -0,0 +1,31 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Append the configMap to the additionalVolumes */}} +{{- define "transmission.configmap.volume" -}} +name: transmission-settings +configMap: + name: {{ template "common.names.fullname" . }}-config +{{- end -}} + +{{- $volume := include "transmission.configmap.volume" . | fromYaml -}} +{{- if $volume -}} + {{- $additionalVolumes := append .Values.additionalVolumes $volume }} + {{- $_ := set .Values "additionalVolumes" (deepCopy $additionalVolumes) -}} +{{- end -}} + +{{/* Append the configMap volume to the additionalVolumeMounts */}} +{{- define "transmission.configmap.volumeMount" -}} +name: transmission-settings +mountPath: /config/settings.json +subPath: settings.json +{{- end -}} + +{{- $volumeMount := include "transmission.configmap.volumeMount" . | fromYaml -}} +{{- if $volumeMount -}} + {{- $additionalVolumeMounts := append .Values.additionalVolumeMounts $volumeMount }} + {{- $_ := set .Values "additionalVolumeMounts" (deepCopy $additionalVolumeMounts) -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/stable/transmission/2.0.0/templates/configmap.yaml b/stable/transmission/2.0.0/templates/configmap.yaml new file mode 100644 index 00000000000..452c943a7dc --- /dev/null +++ b/stable/transmission/2.0.0/templates/configmap.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + settings.json: | + {{- $dict := merge .Values.transmissionConfig .Values.transmissionFixedConfig }} + {{- $dict | mustToPrettyJson | nindent 4 }} diff --git a/charts/transmission/1.6.4/test_values.yaml b/stable/transmission/2.0.0/test_values.yaml similarity index 57% rename from charts/transmission/1.6.4/test_values.yaml rename to stable/transmission/2.0.0/test_values.yaml index 4113beba049..6f667801496 100644 --- a/charts/transmission/1.6.4/test_values.yaml +++ b/stable/transmission/2.0.0/test_values.yaml @@ -1,16 +1,31 @@ # Default values for Transmission. image: - repository: linuxserver/transmission + repository: ghcr.io/truecharts/transmission pullPolicy: IfNotPresent - tag: version-3.00-r2 + tag: v3.00 strategy: type: Recreate -service: - port: - port: 9091 +services: + main: + port: + port: 9091 + tcp: + enabled: true + type: ClusterIP + port: + port: 51413 + protocol: TCP + targetPort: 51413 + udp: + enabled: true + type: ClusterIP + port: + port: 51413 + protocol: UDP + targetPort: 51413 env: {} @@ -43,10 +58,42 @@ persistence: ## TrueCharts Values +transmissionConfig: + bind-address-ipv4: "0.0.0.0" + bind-address-ipv6: ::" + cache-size-mb: 4 + lpd-enabled: false + dht-enabled: true + peer-congestion-algorithm: "" + message-level: 2 + peer-id-ttl-hours: 4 + peer-port: 51413 + peer-port-random-high: 65535 + peer-port-random-low: 49152 + peer-port-random-on-start: false - - - +transmissionFixedConfig: + peer-socket-tos: "default" + pex-enabled: true + port-forwarding-enabled: false + preallocation: 0 + prefetch-enabled: true + rename-partial-files: true + rpc-authentication-required: false + rpc-bind-address: "0.0.0.0" + rpc-enabled: true + rpc-host-whitelist: "" + rpc-host-whitelist-enabled: false + rpc-password: "CHANGEME" + rpc-port: 9091 + rpc-url: "/transmission/" + rpc-username: "" + rpc-whitelist: "" + rpc-whitelist-enabled: false + umask: 2 + utp-enabled: true + watch-dir: "/watch" + watch-dir-enabled: true appVolumeMounts: config: @@ -59,23 +106,3 @@ appVolumeMounts: emptyDir: true setPermissions: true mountPath: "/downloads" - - -appAdditionalServicesEnabled: true -appAdditionalServices: - tcp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-tcp - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - name: bittorrent-udp - protocol: UDP - targetPort: 51413 diff --git a/stable/transmission/2.0.0/values.yaml b/stable/transmission/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/transmission/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/transmission/item.yaml b/stable/transmission/item.yaml similarity index 100% rename from charts/transmission/item.yaml rename to stable/transmission/item.yaml diff --git a/charts/zwavejs2mqtt/1.6.4/.helmignore b/stable/zwavejs2mqtt/2.0.0/.helmignore similarity index 100% rename from charts/zwavejs2mqtt/1.6.4/.helmignore rename to stable/zwavejs2mqtt/2.0.0/.helmignore diff --git a/stable/zwavejs2mqtt/2.0.0/CONFIG.md b/stable/zwavejs2mqtt/2.0.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/zwavejs2mqtt/2.0.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/zwavejs2mqtt/1.6.4/Chart.yaml b/stable/zwavejs2mqtt/2.0.0/Chart.yaml similarity index 71% rename from charts/zwavejs2mqtt/1.6.4/Chart.yaml rename to stable/zwavejs2mqtt/2.0.0/Chart.yaml index 180abbb9b17..860558483a9 100644 --- a/charts/zwavejs2mqtt/1.6.4/Chart.yaml +++ b/stable/zwavejs2mqtt/2.0.0/Chart.yaml @@ -1,13 +1,13 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: zwavejs2mqtt -version: 1.6.4 +version: 2.0.0 upstream_version: 1.1.0 -appVersion: 1.1.1 +appVersion: "auto" description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue type: application deprecated: false -home: https://github.com/truecharts/charts/tree/master/charts/zwavejs2mqtt +home: https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt icon: https://raw.githubusercontent.com/zwave-js/zwavejs2mqtt/master/static/logo.png keywords: - zwavejs2mqtt @@ -15,23 +15,20 @@ keywords: - z-wave - zwave sources: - - https://github.com/truecharts/charts/tree/master/charts/zwavejs2mqtt + - https://github.com/truecharts/apps/tree/master/stable/zwavejs2mqtt - https://github.com/k8s-at-home/charts/tree/master/charts/zwavejs2mqtt - https://github.com/zwave-js/zwavejs2mqtt - https://hub.docker.com/r/zwavejs/zwavejs2mqtt dependencies: - name: common - repository: https://charts.truecharts.org/ - version: 1.6.7 + repository: https://truecharts.org/ + version: 2.0.0 # condition: - # tags: - # import-values: - # alias: maintainers: - name: TrueCharts email: info@truecharts.org url: truecharts.org - - name: Troy Prelog + - name: tprelog email: 35702532+tprelog@users.noreply.github.com url: truecharts.org # annotations: diff --git a/charts/zwavejs2mqtt/1.6.4/README.md b/stable/zwavejs2mqtt/2.0.0/README.md similarity index 74% rename from charts/zwavejs2mqtt/1.6.4/README.md rename to stable/zwavejs2mqtt/2.0.0/README.md index 232cc604e33..9e93eef4226 100644 --- a/charts/zwavejs2mqtt/1.6.4/README.md +++ b/stable/zwavejs2mqtt/2.0.0/README.md @@ -1,15 +1,15 @@ # Introduction -![Version: 1.6.4](https://img.shields.io/badge/Version-1.6.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.1.1](https://img.shields.io/badge/AppVersion-1.1.1-informational?style=flat-square) +![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** ## Source Code -* +* * * * @@ -22,7 +22,7 @@ Kubernetes: `>=1.16.0-0` | Repository | Name | Version | |------------|------|---------| -| https://charts.truecharts.org/ | common | 1.6.7 | +| https://truecharts.org/ | common | 2.0.0 | ## Installing the Chart @@ -47,9 +47,10 @@ The command removes all the Kubernetes components associated with the chart **in ## Support -- See the [Wiki](https://wiki.truecharts.org) -- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) -- Ask a [question](https://github.com/truecharts/charts/discussions) +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/zwavejs2mqtt/2.0.0/app-readme.md b/stable/zwavejs2mqtt/2.0.0/app-readme.md new file mode 100644 index 00000000000..a7868886f49 --- /dev/null +++ b/stable/zwavejs2mqtt/2.0.0/app-readme.md @@ -0,0 +1,2 @@ +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/zwavejs2mqtt/2.0.0/charts/common-2.0.0.tgz b/stable/zwavejs2mqtt/2.0.0/charts/common-2.0.0.tgz new file mode 100644 index 00000000000..160d0b6a120 Binary files /dev/null and b/stable/zwavejs2mqtt/2.0.0/charts/common-2.0.0.tgz differ diff --git a/stable/zwavejs2mqtt/2.0.0/ix_values.yaml b/stable/zwavejs2mqtt/2.0.0/ix_values.yaml new file mode 100644 index 00000000000..5cc67d97534 --- /dev/null +++ b/stable/zwavejs2mqtt/2.0.0/ix_values.yaml @@ -0,0 +1,63 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: zwavejs/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 2.3.0 + +# 5=tty 20=dailout 24=cdrom +supplementalGroups: 5,20,24 + +probes: + liveness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + readiness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + startup: + enabled: false + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/zwavejs2mqtt/1.6.4/questions.yaml b/stable/zwavejs2mqtt/2.0.0/questions.yaml similarity index 52% rename from charts/zwavejs2mqtt/1.6.4/questions.yaml rename to stable/zwavejs2mqtt/2.0.0/questions.yaml index 5fd8f910d25..00b0a35083c 100644 --- a/charts/zwavejs2mqtt/1.6.4/questions.yaml +++ b/stable/zwavejs2mqtt/2.0.0/questions.yaml @@ -1,60 +1,50 @@ groups: - name: "Container Image" - description: "Image configuration" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" - name: "Configuration" - description: "Container configuration" + description: "additional container configuration" - name: "Networking" - description: "Network configuration" - - name: "Ingress" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" description: "Reverse Proxy configuration" - - name: "Services" - description: "Service configuration" - - name: "Volume Mounts" - description: "Configuration volume mounts" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: - - "http" + - "$kubernetes-resource_configmap_portal_protocol" host: - - "$node_ip" + - "$kubernetes-resource_configmap_portal_host" ports: - - "$variable-service.port.nodePort" + - "$kubernetes-resource_configmap_portal_port" questions: - # Image related - - variable: image + + - variable: portal group: "Container Image" - label: "Container Image" + label: "Configure Portal Button" schema: type: dict - required: true + hidden: true attrs: - - variable: repository - label: "Image Repository" + - variable: enabled + label: "Enable" + description: "enable the portal button" schema: - type: string - default: "zwavejs/zwavejs2mqtt" + hidden: true editable: false - - variable: tag - description: "Tag to use for specified image" - label: "Image Tag" - schema: - type: string - default: "1.1.1" - required: true - - variable: pullPolicy - label: "Image Pull Policy" - schema: - type: string - default: "IfNotPresent" - enum: - - value: "IfNotPresent" - description: "Only pull image if not present on host" - - value: "Always" - description: "Always pull image even if present on host" - - value: "Never" - description: "Never pull image even if it's not present on host" + type: boolean + default: true + # Update Policy - variable: strategyType group: "Container Image" @@ -68,9 +58,11 @@ questions: - value: "Recreate" description: "Kill existing pods before creating new ones" + + # Configure Time Zone # Configure Time Zone - variable: timezone - group: "Configuration" + group: "Container Image" label: "Timezone" schema: type: string @@ -79,7 +71,7 @@ questions: - "definitions/timezone" - variable: PUID - group: "Configuration" + group: "Container Image" label: "PUID" description: "The UserID of the user running the application and owning the files" schema: @@ -87,7 +79,7 @@ questions: default: 568 - variable: PGID - group: "Configuration" + group: "Container Image" label: "PGID" description: "The groupID of the user/group running the application and owning the files" schema: @@ -95,13 +87,14 @@ questions: default: 568 - variable: UMASK - group: "Configuration" + group: "Container Image" label: "UMASK (advanced)" description: "The UMASK used if supported by the application" schema: type: string default: "002" + # Service Configuration # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -110,66 +103,27 @@ questions: type: boolean default: false - # Service Configuration - - variable: service - group: "Services" - label: "Configure main service for the UI" - schema: - type: dict - attrs: - - variable: type - label: "Service type" - schema: - type: string - default: "NodePort" - enum: - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort" - show_subquestions_if: NodePort - subquestions: - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: port - label: "container port" - schema: - type: int - default: 8091 - hidden: true - editable: false - - variable: nodePort - label: "Node Port to expose for UI" - schema: - type: int - min: 9000 - max: 65535 - default: 38091 - required: true - - - - variable: appAdditionalServices + - variable: services group: "Networking" - label: "Configure additional services" + label: "Configure Service" schema: type: dict attrs: - - variable: ws - label: "" + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict attrs: - variable: enabled - label: "Enable TCP port for websocket Connections" + label: "Enable the service" schema: type: boolean default: true hidden: true - variable: type label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" schema: type: string default: "ClusterIP" @@ -183,18 +137,80 @@ questions: schema: type: dict attrs: - - variable: name - label: "port name" + - variable: protocol + label: "Port Type" schema: type: string - default: "ws" + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "container port" + schema: + type: int + default: 8091 + editable: false hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8091 + editable: false + hidden: true + - variable: nodePort + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + - variable: ws + label: "WebSocket service" + description: "This server is used to process WebSocket Connections" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: - variable: protocol - label: "Protocol" + label: "Port Type" schema: type: string default: "TCP" hidden: true + enum: + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" - variable: port label: "container port" schema: @@ -203,25 +219,26 @@ questions: editable: false hidden: true - variable: targetport - label: "container targetport" + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" schema: type: int default: 3000 editable: false hidden: true - variable: nodePort - label: "Node Port to expose" + label: "(optional) host nodePort to expose to" + description: "only get used when nodePort is selected" schema: type: int min: 9000 max: 65535 - default: 53000 - required: false - + default: 36052 + required: true # Configure app volumes - variable: appVolumeMounts - group: "Volume Mounts" + group: "Storage and Devices" label: "" schema: type: dict @@ -257,11 +274,13 @@ questions: hidden: true editable: false - variable: datasetName - label: "Name" + label: "Dataset Name" schema: type: string - default: "store" + default: "config" + required: true editable: false + hidden: true - variable: mountPath label: "Mount path inside the container" schema: @@ -288,28 +307,49 @@ questions: schema: type: dict attrs: + - variable: hostPathEnabled + label: "Enable Host Path" + schema: + type: boolean + default: true + hidden: true + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: false + required: false + hidden: false + editable: true - variable: setPermissions label: "Automatic Permissions" - description: "Automatically set permissions on install" schema: type: boolean default: false hidden: true + - variable: emptyDir + label: "Empty Dir" + schema: + type: boolean + default: false + hidden: true + - variable: mountPath + label: "Path to mount Z-Wave device inside the container" + description: "Preferably the same as the path to the device path on the host" + schema: + type: path + default: "/dev/ttyACM0" + required: true - variable: hostPath label: "Path to Z-Wave device on host" schema: type: path + default: "/dev/ttyACM0" required: true - default: "/dev/ttyUSB0" - - variable: mountPath - label: "Path to mount device inside the container" - schema: - type: path - required: true - default: "/dev/ttyUSB0" + # Enable privileged - variable: securityContext - group: "Volume Mounts" + group: "Storage and Devices" label: "Security Context" schema: type: dict @@ -321,15 +361,75 @@ questions: default: true required: true - - variable: appIngress + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress label: "" - group: "Ingress" + group: "Reverse Proxy Configuration" schema: type: dict attrs: - - variable: webui + - variable: main label: "Web Reverse Proxy Configuration" - group: "Ingress" schema: type: dict attrs: @@ -340,6 +440,21 @@ questions: default: false show_subquestions_if: true subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" - variable: entrypoint label: "Select Entrypoint" schema: @@ -365,54 +480,32 @@ questions: required: true schema: type: string - - variable: paths - label: "paths" + - variable: path + label: "path" schema: - type: list - default: [] - items: - - variable: path - label: "Path" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "prefix" + type: string + required: true + hidden: true + default: "/" - variable: certType label: "Select Certificate Type" schema: type: string - default: "letsencrypt-prod" + default: "selfsigned" enum: - value: "" description: "No Encryption/TLS/Certificates" - - value: "letsencrypt-prod" - description: "Letsencrypt Production Certificates" - - value: "letsencrypt-staging" - description: "Letsencrypt Test Certificates" - - value: "wildcard" - description: "Global Wildcard Certificate" - value: "selfsigned" description: "Self-Signed Certificate" - - value: "existingcert" - description: "Existing Certificate" - show_subquestions_if: "existingcert" - subquestions: - - variable: existingcert - label: "Existing Certificate Name" - schema: - type: string - default: "" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" - variable: authForwardURL label: "Forward Authentication URL" schema: diff --git a/charts/zwavejs2mqtt/1.6.4/templates/common.yaml b/stable/zwavejs2mqtt/2.0.0/templates/common.yaml similarity index 100% rename from charts/zwavejs2mqtt/1.6.4/templates/common.yaml rename to stable/zwavejs2mqtt/2.0.0/templates/common.yaml diff --git a/charts/zwavejs2mqtt/1.6.4/test_values.yaml b/stable/zwavejs2mqtt/2.0.0/test_values.yaml similarity index 96% rename from charts/zwavejs2mqtt/1.6.4/test_values.yaml rename to stable/zwavejs2mqtt/2.0.0/test_values.yaml index 4d54103448d..6722f62f5bd 100644 --- a/charts/zwavejs2mqtt/1.6.4/test_values.yaml +++ b/stable/zwavejs2mqtt/2.0.0/test_values.yaml @@ -5,7 +5,7 @@ image: repository: zwavejs/zwavejs2mqtt pullPolicy: IfNotPresent - tag: 1.1.1 + tag: 2.3.0 strategy: type: Recreate @@ -59,9 +59,18 @@ probes: # periodSeconds: 10 # timeoutSeconds: 10 -service: - port: - port: 8091 +services: + main: + port: + port: 8091 + ws: + enabled: true + type: ClusterIP + port: + port: 3000 + protocol: TCP + targetPort: 3000 + # Privileged may be required if USB controller is accessed directly through the host machine # securityContext: @@ -115,14 +124,3 @@ appVolumeMounts: emptyDir: true setPermissions: true mountPath: "/config" - -appAdditionalServicesEnabled: true -appAdditionalServices: - ws: - enabled: true - type: ClusterIP - port: - port: 3000 - name: ws - protocol: TCP - targetPort: 3000 diff --git a/stable/zwavejs2mqtt/2.0.0/values.yaml b/stable/zwavejs2mqtt/2.0.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/zwavejs2mqtt/2.0.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/charts/zwavejs2mqtt/item.yaml b/stable/zwavejs2mqtt/item.yaml similarity index 100% rename from charts/zwavejs2mqtt/item.yaml rename to stable/zwavejs2mqtt/item.yaml