From e3fe0a421217bc2bdea1d87be6498d0763509a32 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:49:22 +0300 Subject: [PATCH] NAS-122677 / 23.10 / Add `readarr` to `community` train (#1300) * Add `readarr` to `community` train * update common --- library/ix-dev/community/readarr/Chart.lock | 6 + library/ix-dev/community/readarr/Chart.yaml | 27 +++ library/ix-dev/community/readarr/README.md | 8 + .../ix-dev/community/readarr/app-readme.md | 8 + .../community/readarr/charts/common-1.0.9.tgz | Bin 0 -> 55990 bytes .../community/readarr/ci/basic-values.yaml | 11 + .../community/readarr/ci/extra-values.yaml | 21 ++ .../community/readarr/ci/hostNet-values.yaml | 8 + library/ix-dev/community/readarr/item.yaml | 10 + .../ix-dev/community/readarr/metadata.yaml | 8 + .../ix-dev/community/readarr/questions.yaml | 225 ++++++++++++++++++ .../community/readarr/templates/NOTES.txt | 1 + .../readarr/templates/_persistence.tpl | 34 +++ .../community/readarr/templates/_portal.tpl | 12 + .../community/readarr/templates/_readarr.tpl | 49 ++++ .../community/readarr/templates/_service.tpl | 15 ++ .../community/readarr/templates/common.yaml | 11 + .../community/readarr/upgrade_info.json | 1 + .../ix-dev/community/readarr/upgrade_strategy | 31 +++ library/ix-dev/community/readarr/values.yaml | 24 ++ 20 files changed, 510 insertions(+) create mode 100644 library/ix-dev/community/readarr/Chart.lock create mode 100644 library/ix-dev/community/readarr/Chart.yaml create mode 100644 library/ix-dev/community/readarr/README.md create mode 100644 library/ix-dev/community/readarr/app-readme.md create mode 100644 library/ix-dev/community/readarr/charts/common-1.0.9.tgz create mode 100644 library/ix-dev/community/readarr/ci/basic-values.yaml create mode 100644 library/ix-dev/community/readarr/ci/extra-values.yaml create mode 100644 library/ix-dev/community/readarr/ci/hostNet-values.yaml create mode 100644 library/ix-dev/community/readarr/item.yaml create mode 100644 library/ix-dev/community/readarr/metadata.yaml create mode 100644 library/ix-dev/community/readarr/questions.yaml create mode 100644 library/ix-dev/community/readarr/templates/NOTES.txt create mode 100644 library/ix-dev/community/readarr/templates/_persistence.tpl create mode 100644 library/ix-dev/community/readarr/templates/_portal.tpl create mode 100644 library/ix-dev/community/readarr/templates/_readarr.tpl create mode 100644 library/ix-dev/community/readarr/templates/_service.tpl create mode 100644 library/ix-dev/community/readarr/templates/common.yaml create mode 100644 library/ix-dev/community/readarr/upgrade_info.json create mode 100644 library/ix-dev/community/readarr/upgrade_strategy create mode 100644 library/ix-dev/community/readarr/values.yaml diff --git a/library/ix-dev/community/readarr/Chart.lock b/library/ix-dev/community/readarr/Chart.lock new file mode 100644 index 0000000000..2779615277 --- /dev/null +++ b/library/ix-dev/community/readarr/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.9 +digest: sha256:c3eb00f142d5d1cdbff7843940c150a00bd916520363e6ee9f459ce61fa92b40 +generated: "2023-06-28T15:39:05.334080122+03:00" diff --git a/library/ix-dev/community/readarr/Chart.yaml b/library/ix-dev/community/readarr/Chart.yaml new file mode 100644 index 0000000000..ec17455a07 --- /dev/null +++ b/library/ix-dev/community/readarr/Chart.yaml @@ -0,0 +1,27 @@ +name: readarr +description: Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users. +annotations: + title: Readarr +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: '0.1.9.1905' +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.0.9 +home: https://github.com/Readarr/Readarr +icon: https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png +sources: + - https://github.com/onedr0p/containers/tree/main/apps/readarr + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/readarr + - https://github.com/Readarr/Readarr +keywords: + - media + - ebook + - audiobook diff --git a/library/ix-dev/community/readarr/README.md b/library/ix-dev/community/readarr/README.md new file mode 100644 index 0000000000..5cc2f44111 --- /dev/null +++ b/library/ix-dev/community/readarr/README.md @@ -0,0 +1,8 @@ +# Readarr + +[Readarr](https://github.com/Readarr/Readarr) is an ebook and audiobook collection manager for Usenet and BitTorrent users. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Readarr` directories. +> Afterward, the `Readarr` container will run as a **non**-root user (Default: `568`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. diff --git a/library/ix-dev/community/readarr/app-readme.md b/library/ix-dev/community/readarr/app-readme.md new file mode 100644 index 0000000000..5cc2f44111 --- /dev/null +++ b/library/ix-dev/community/readarr/app-readme.md @@ -0,0 +1,8 @@ +# Readarr + +[Readarr](https://github.com/Readarr/Readarr) is an ebook and audiobook collection manager for Usenet and BitTorrent users. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Readarr` directories. +> Afterward, the `Readarr` container will run as a **non**-root user (Default: `568`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. diff --git a/library/ix-dev/community/readarr/charts/common-1.0.9.tgz b/library/ix-dev/community/readarr/charts/common-1.0.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e8718311e96a3770aa6e7e9d2d35d286958ed355 GIT binary patch literal 55990 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 literal 0 HcmV?d00001 diff --git a/library/ix-dev/community/readarr/ci/basic-values.yaml b/library/ix-dev/community/readarr/ci/basic-values.yaml new file mode 100644 index 0000000000..d7a56366e6 --- /dev/null +++ b/library/ix-dev/community/readarr/ci/basic-values.yaml @@ -0,0 +1,11 @@ +readarrNetwork: + webPort: 31000 + +readarrRunAs: + user: 1000 + group: 1000 + +readarrStorage: + config: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/library/ix-dev/community/readarr/ci/extra-values.yaml b/library/ix-dev/community/readarr/ci/extra-values.yaml new file mode 100644 index 0000000000..cd011c60cb --- /dev/null +++ b/library/ix-dev/community/readarr/ci/extra-values.yaml @@ -0,0 +1,21 @@ +readarrConfig: + additionalEnvs: + - name: READARR__API_KEY + value: some-long-api-key + - name: READARR__LOG_LEVEL + value: error + +readarrNetwork: + webPort: 31000 + +readarrStorage: + config: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/config + additionalStorages: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pop_music + mountPath: /pop_music + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/country_music + mountPath: /country_music diff --git a/library/ix-dev/community/readarr/ci/hostNet-values.yaml b/library/ix-dev/community/readarr/ci/hostNet-values.yaml new file mode 100644 index 0000000000..d05f6099bc --- /dev/null +++ b/library/ix-dev/community/readarr/ci/hostNet-values.yaml @@ -0,0 +1,8 @@ +readarrNetwork: + webPort: 30000 + hostNetwork: true + +readarrStorage: + config: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/library/ix-dev/community/readarr/item.yaml b/library/ix-dev/community/readarr/item.yaml new file mode 100644 index 0000000000..84aaf29d0c --- /dev/null +++ b/library/ix-dev/community/readarr/item.yaml @@ -0,0 +1,10 @@ +icon_url: https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png +categories: + - media +screenshots: + - https://readarr.com/img/features/manualsearch.png + - https://readarr.com/img/features/calibre.png + - https://readarr.com/img/features/calendar.png +tags: + - ebook + - audiobook diff --git a/library/ix-dev/community/readarr/metadata.yaml b/library/ix-dev/community/readarr/metadata.yaml new file mode 100644 index 0000000000..02724e1d52 --- /dev/null +++ b/library/ix-dev/community/readarr/metadata.yaml @@ -0,0 +1,8 @@ +runAsContext: + - userName: readarr + groupName: readarr + gid: 568 + uid: 568 + description: Readarr can run as any non-root user. +capabilities: [] +hostMounts: [] diff --git a/library/ix-dev/community/readarr/questions.yaml b/library/ix-dev/community/readarr/questions.yaml new file mode 100644 index 0000000000..49d8d354db --- /dev/null +++ b/library/ix-dev/community/readarr/questions.yaml @@ -0,0 +1,225 @@ +groups: + - name: Readarr Configuration + description: Configure Readarr + - name: User and Group Configuration + description: Configure User and Group for Readarr + - name: Network Configuration + description: Configure Network for Readarr + - name: Storage Configuration + description: Configure Storage for Readarr + - name: Resources Configuration + description: Configure Resources for Readarr + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "$kubernetes-resource_configmap_portal_path" + +questions: + - variable: readarrConfig + label: "" + group: Readarr Configuration + schema: + type: dict + attrs: + - variable: instanceName + label: Instance Name + description: The name of the Readarr instance. + schema: + type: string + default: "Readarr" + required: true + - variable: additionalEnvs + label: Additional Environment Variables + description: Configure additional environment variables for Readarr. + schema: + type: list + default: [] + items: + - variable: env + label: Environment Variable + schema: + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: readarrRunAs + label: "" + group: User and Group Configuration + schema: + type: dict + attrs: + - variable: user + label: User ID + description: The user id that Readarr will run as. + schema: + type: int + min: 2 + default: 568 + required: true + - variable: group + label: Group ID + description: The group id that Readarr will run as. + schema: + type: int + min: 2 + default: 568 + required: true + + - variable: readarrNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: webPort + label: Web Port + description: The port for the Readarr Web UI. + schema: + type: int + default: 30045 + min: 9000 + max: 65535 + required: true + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It's recommended to keep this disabled.
+ schema: + type: boolean + default: false + + - variable: readarrStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: config + label: Readarr Config Storage + description: The path to store Readarr Configuration. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "config" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Readarr. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + required: true + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + immutable: true + default: "storage_entry" + $ref: + - "normalize/ixVolume" + + - variable: resources + group: Resources Configuration + label: "" + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Readarr. + schema: + type: string + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Readarr. + schema: + type: string + default: "8Gi" + required: true diff --git a/library/ix-dev/community/readarr/templates/NOTES.txt b/library/ix-dev/community/readarr/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/library/ix-dev/community/readarr/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/library/ix-dev/community/readarr/templates/_persistence.tpl b/library/ix-dev/community/readarr/templates/_persistence.tpl new file mode 100644 index 0000000000..23d197a77e --- /dev/null +++ b/library/ix-dev/community/readarr/templates/_persistence.tpl @@ -0,0 +1,34 @@ +{{- define "readarr.persistence" -}} +persistence: + config: + enabled: true + type: {{ .Values.readarrStorage.config.type }} + datasetName: {{ .Values.readarrStorage.config.datasetName | default "" }} + hostPath: {{ .Values.readarrStorage.config.hostPath | default "" }} + targetSelector: + readarr: + readarr: + mountPath: /config + 01-permissions: + mountPath: /mnt/directories/config + tmp: + enabled: true + type: emptyDir + targetSelector: + readarr: + readarr: + mountPath: /tmp + {{- range $idx, $storage := .Values.readarrStorage.additionalStorages }} + {{ printf "readarr-%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + readarr: + readarr: + mountPath: {{ $storage.mountPath }} + 01-permissions: + mountPath: /mnt/directories{{ $storage.mountPath }} + {{- end }} +{{- end -}} diff --git a/library/ix-dev/community/readarr/templates/_portal.tpl b/library/ix-dev/community/readarr/templates/_portal.tpl new file mode 100644 index 0000000000..f162546f6a --- /dev/null +++ b/library/ix-dev/community/readarr/templates/_portal.tpl @@ -0,0 +1,12 @@ +{{- define "readarr.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: "/" + port: {{ .Values.readarrNetwork.webPort | quote }} + protocol: http + host: $node_ip +{{- end -}} diff --git a/library/ix-dev/community/readarr/templates/_readarr.tpl b/library/ix-dev/community/readarr/templates/_readarr.tpl new file mode 100644 index 0000000000..9088a03642 --- /dev/null +++ b/library/ix-dev/community/readarr/templates/_readarr.tpl @@ -0,0 +1,49 @@ +{{- define "readarr.workload" -}} +workload: + readarr: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.readarrNetwork.hostNetwork }} + containers: + readarr: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: {{ .Values.readarrRunAs.user }} + runAsGroup: {{ .Values.readarrRunAs.group }} + env: + READARR__PORT: {{ .Values.readarrNetwork.webPort }} + READARR__INSTANCE_NAME: {{ .Values.readarrConfig.instanceName }} + {{ with .Values.readarrConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: http + port: "{{ .Values.readarrNetwork.webPort }}" + path: /ping + readiness: + enabled: true + type: http + port: "{{ .Values.readarrNetwork.webPort }}" + path: /ping + startup: + enabled: true + type: http + port: "{{ .Values.readarrNetwork.webPort }}" + path: /ping + initContainers: + {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" + "UID" .Values.readarrRunAs.user + "GID" .Values.readarrRunAs.group + "mode" "check" + "type" "init") | nindent 8 }} +{{- end -}} diff --git a/library/ix-dev/community/readarr/templates/_service.tpl b/library/ix-dev/community/readarr/templates/_service.tpl new file mode 100644 index 0000000000..28f7a8661f --- /dev/null +++ b/library/ix-dev/community/readarr/templates/_service.tpl @@ -0,0 +1,15 @@ +{{- define "readarr.service" -}} +service: + readarr: + enabled: true + primary: true + type: NodePort + targetSelector: readarr + ports: + webui: + enabled: true + primary: true + port: {{ .Values.readarrNetwork.webPort }} + nodePort: {{ .Values.readarrNetwork.webPort }} + targetSelector: readarr +{{- end -}} diff --git a/library/ix-dev/community/readarr/templates/common.yaml b/library/ix-dev/community/readarr/templates/common.yaml new file mode 100644 index 0000000000..eb97b411dc --- /dev/null +++ b/library/ix-dev/community/readarr/templates/common.yaml @@ -0,0 +1,11 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "readarr.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "readarr.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "readarr.persistence" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "readarr.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/library/ix-dev/community/readarr/upgrade_info.json b/library/ix-dev/community/readarr/upgrade_info.json new file mode 100644 index 0000000000..767388094a --- /dev/null +++ b/library/ix-dev/community/readarr/upgrade_info.json @@ -0,0 +1 @@ +{"filename": "values.yaml", "keys": ["image"]} diff --git a/library/ix-dev/community/readarr/upgrade_strategy b/library/ix-dev/community/readarr/upgrade_strategy new file mode 100644 index 0000000000..c55ab4bc7d --- /dev/null +++ b/library/ix-dev/community/readarr/upgrade_strategy @@ -0,0 +1,31 @@ +#!/usr/bin/python3 +import json +import re +import sys + +from catalog_update.upgrade_strategy import semantic_versioning + + +RE_STABLE_VERSION = re.compile(r'\d+\.\d+\.\d+\.\d+') + + +def newer_mapping(image_tags): + key = list(image_tags.keys())[0] + tags = {t: t for t in image_tags[key] if RE_STABLE_VERSION.fullmatch(t)} + version = semantic_versioning(list(tags)) + if not version: + return {} + + return { + 'tags': {key: tags[version]}, + 'app_version': version, + } + + +if __name__ == '__main__': + try: + versions_json = json.loads(sys.stdin.read()) + except ValueError: + raise ValueError('Invalid json specified') + + print(json.dumps(newer_mapping(versions_json))) diff --git a/library/ix-dev/community/readarr/values.yaml b/library/ix-dev/community/readarr/values.yaml new file mode 100644 index 0000000000..8b9241de85 --- /dev/null +++ b/library/ix-dev/community/readarr/values.yaml @@ -0,0 +1,24 @@ +image: + repository: ghcr.io/onedr0p/readarr-develop + pullPolicy: IfNotPresent + tag: '0.1.9.1905' + +resources: + limits: + cpu: 4000m + memory: 8Gi + +readarrConfig: + instanceName: Readarr + additionalEnvs: [] +readarrNetwork: + webPort: 30045 + hostNetwork: false +readarrRunAs: + user: 568 + group: 568 +readarrStorage: + config: + type: ixVolume + datasetName: config + additionalStorages: []