From 3286e26ef5e9936ff52eb1f5aac5bd20bd61543d Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Tue, 9 Jan 2024 11:56:35 +0200 Subject: [PATCH] remove 2 apps from test train (#2007) --- library/ix-dev/test/jellyfin/Chart.lock | 6 - library/ix-dev/test/jellyfin/Chart.yaml | 27 -- library/ix-dev/test/jellyfin/README.md | 8 - library/ix-dev/test/jellyfin/app-readme.md | 8 - .../test/jellyfin/charts/common-1.2.3.tgz | Bin 63000 -> 0 bytes .../ix-dev/test/jellyfin/ci/basic-values.yaml | 24 -- .../ix-dev/test/jellyfin/ci/extra-values.yaml | 22 - .../test/jellyfin/ci/hostNet-values.yaml | 13 - library/ix-dev/test/jellyfin/item.yaml | 12 - library/ix-dev/test/jellyfin/metadata.yaml | 8 - .../ix-dev/test/jellyfin/migrations/migrate | 28 -- library/ix-dev/test/jellyfin/questions.yaml | 398 ------------------ .../ix-dev/test/jellyfin/templates/NOTES.txt | 1 - .../test/jellyfin/templates/_jellyfin.tpl | 151 ------- .../test/jellyfin/templates/_portal.tpl | 16 - .../test/jellyfin/templates/common.yaml | 9 - .../ix-dev/test/jellyfin/upgrade_info.json | 1 - library/ix-dev/test/jellyfin/upgrade_strategy | 31 -- library/ix-dev/test/jellyfin/values.yaml | 33 -- library/ix-dev/test/sonarr/Chart.lock | 6 - library/ix-dev/test/sonarr/Chart.yaml | 26 -- library/ix-dev/test/sonarr/README.md | 8 - library/ix-dev/test/sonarr/app-readme.md | 8 - .../test/sonarr/charts/common-1.1.1.tgz | Bin 61730 -> 0 bytes .../ix-dev/test/sonarr/ci/basic-values.yaml | 11 - .../ix-dev/test/sonarr/ci/extra-values.yaml | 21 - .../ix-dev/test/sonarr/ci/hostNet-values.yaml | 8 - library/ix-dev/test/sonarr/item.yaml | 9 - library/ix-dev/test/sonarr/metadata.yaml | 8 - library/ix-dev/test/sonarr/migrations/migrate | 29 -- library/ix-dev/test/sonarr/questions.yaml | 286 ------------- .../ix-dev/test/sonarr/templates/NOTES.txt | 1 - .../ix-dev/test/sonarr/templates/_portal.tpl | 12 - .../ix-dev/test/sonarr/templates/_sonarr.tpl | 112 ----- .../ix-dev/test/sonarr/templates/common.yaml | 9 - library/ix-dev/test/sonarr/upgrade_info.json | 1 - .../test/sonarr/upgrade_strategy_disable | 31 -- library/ix-dev/test/sonarr/values.yaml | 24 -- 38 files changed, 1406 deletions(-) delete mode 100644 library/ix-dev/test/jellyfin/Chart.lock delete mode 100644 library/ix-dev/test/jellyfin/Chart.yaml delete mode 100644 library/ix-dev/test/jellyfin/README.md delete mode 100644 library/ix-dev/test/jellyfin/app-readme.md delete mode 100644 library/ix-dev/test/jellyfin/charts/common-1.2.3.tgz delete mode 100644 library/ix-dev/test/jellyfin/ci/basic-values.yaml delete mode 100644 library/ix-dev/test/jellyfin/ci/extra-values.yaml delete mode 100644 library/ix-dev/test/jellyfin/ci/hostNet-values.yaml delete mode 100644 library/ix-dev/test/jellyfin/item.yaml delete mode 100644 library/ix-dev/test/jellyfin/metadata.yaml delete mode 100755 library/ix-dev/test/jellyfin/migrations/migrate delete mode 100644 library/ix-dev/test/jellyfin/questions.yaml delete mode 100644 library/ix-dev/test/jellyfin/templates/NOTES.txt delete mode 100644 library/ix-dev/test/jellyfin/templates/_jellyfin.tpl delete mode 100644 library/ix-dev/test/jellyfin/templates/_portal.tpl delete mode 100644 library/ix-dev/test/jellyfin/templates/common.yaml delete mode 100644 library/ix-dev/test/jellyfin/upgrade_info.json delete mode 100755 library/ix-dev/test/jellyfin/upgrade_strategy delete mode 100644 library/ix-dev/test/jellyfin/values.yaml delete mode 100644 library/ix-dev/test/sonarr/Chart.lock delete mode 100644 library/ix-dev/test/sonarr/Chart.yaml delete mode 100644 library/ix-dev/test/sonarr/README.md delete mode 100644 library/ix-dev/test/sonarr/app-readme.md delete mode 100644 library/ix-dev/test/sonarr/charts/common-1.1.1.tgz delete mode 100644 library/ix-dev/test/sonarr/ci/basic-values.yaml delete mode 100644 library/ix-dev/test/sonarr/ci/extra-values.yaml delete mode 100644 library/ix-dev/test/sonarr/ci/hostNet-values.yaml delete mode 100644 library/ix-dev/test/sonarr/item.yaml delete mode 100644 library/ix-dev/test/sonarr/metadata.yaml delete mode 100755 library/ix-dev/test/sonarr/migrations/migrate delete mode 100644 library/ix-dev/test/sonarr/questions.yaml delete mode 100644 library/ix-dev/test/sonarr/templates/NOTES.txt delete mode 100644 library/ix-dev/test/sonarr/templates/_portal.tpl delete mode 100644 library/ix-dev/test/sonarr/templates/_sonarr.tpl delete mode 100644 library/ix-dev/test/sonarr/templates/common.yaml delete mode 100644 library/ix-dev/test/sonarr/upgrade_info.json delete mode 100644 library/ix-dev/test/sonarr/upgrade_strategy_disable delete mode 100644 library/ix-dev/test/sonarr/values.yaml diff --git a/library/ix-dev/test/jellyfin/Chart.lock b/library/ix-dev/test/jellyfin/Chart.lock deleted file mode 100644 index 296a292f0b..0000000000 --- a/library/ix-dev/test/jellyfin/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: file://../../../common - version: 1.2.3 -digest: sha256:e6ff49b06bf5d4d159e505ae6d153f36cd46170bb519caf90462cd5caebfd0fb -generated: "2023-11-30T14:07:56.924795065+02:00" diff --git a/library/ix-dev/test/jellyfin/Chart.yaml b/library/ix-dev/test/jellyfin/Chart.yaml deleted file mode 100644 index 490dabe4b4..0000000000 --- a/library/ix-dev/test/jellyfin/Chart.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: jellyfin -description: Jellyfin is a Free Software Media System that puts you in control of - managing and streaming your media. -annotations: - title: Jellyfin -type: application -version: 1.0.16 -apiVersion: v2 -appVersion: 10.8.13 -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.2.3 -home: https://jellyfin.org/ -icon: https://jellyfin.org/images/logo.svg -sources: - - https://hub.docker.com/r/jellyfin/jellyfin - - https://github.com/truenas/charts/tree/master/community/jellyfin - - https://jellyfin.org/ -keywords: - - media - - streaming diff --git a/library/ix-dev/test/jellyfin/README.md b/library/ix-dev/test/jellyfin/README.md deleted file mode 100644 index e6cc2f8b26..0000000000 --- a/library/ix-dev/test/jellyfin/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Jellyfin - -[Jellyfin](https://jellyfin.org/) is a Free Software Media System that puts you in control of managing and streaming your media. - -> When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `Jellyfin` directories. -> Afterward, the `Jellyfin` 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/test/jellyfin/app-readme.md b/library/ix-dev/test/jellyfin/app-readme.md deleted file mode 100644 index e6cc2f8b26..0000000000 --- a/library/ix-dev/test/jellyfin/app-readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Jellyfin - -[Jellyfin](https://jellyfin.org/) is a Free Software Media System that puts you in control of managing and streaming your media. - -> When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `Jellyfin` directories. -> Afterward, the `Jellyfin` 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/test/jellyfin/charts/common-1.2.3.tgz b/library/ix-dev/test/jellyfin/charts/common-1.2.3.tgz deleted file mode 100644 index b5cf1ec113f90b8518d441d2201ad66c76bf0798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63000 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 diff --git a/library/ix-dev/test/jellyfin/ci/basic-values.yaml b/library/ix-dev/test/jellyfin/ci/basic-values.yaml deleted file mode 100644 index 460f2bfda1..0000000000 --- a/library/ix-dev/test/jellyfin/ci/basic-values.yaml +++ /dev/null @@ -1,24 +0,0 @@ -jellyfinNetwork: - webPort: 31000 - -jellyfinRunAs: - user: 1000 - group: 1000 - -jellyfinStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config - cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache - transcodes: - type: emptyDir - medium: Memory - size: 1Gi - -# Make sure installation don't fail when 0 GPU are assigned -jellyfinGPU: - nvidia.com/gpu: 0 - intel.com/gpu: 0 -# TODO: Test assigning GPUs on a GPU-enabled system diff --git a/library/ix-dev/test/jellyfin/ci/extra-values.yaml b/library/ix-dev/test/jellyfin/ci/extra-values.yaml deleted file mode 100644 index db993b9465..0000000000 --- a/library/ix-dev/test/jellyfin/ci/extra-values.yaml +++ /dev/null @@ -1,22 +0,0 @@ -jellyfinNetwork: - webPort: 31000 - -jellyfinStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config - cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache - transcodes: - type: emptyDir - medium: '' - size: '' - - additionalStorages: - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/movies - mountPath: /movies - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/series - mountPath: /series diff --git a/library/ix-dev/test/jellyfin/ci/hostNet-values.yaml b/library/ix-dev/test/jellyfin/ci/hostNet-values.yaml deleted file mode 100644 index d85fc2ab77..0000000000 --- a/library/ix-dev/test/jellyfin/ci/hostNet-values.yaml +++ /dev/null @@ -1,13 +0,0 @@ -jellyfinNetwork: - hostNetwork: true - -jellyfinStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config - cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache - transcodes: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/transcodes diff --git a/library/ix-dev/test/jellyfin/item.yaml b/library/ix-dev/test/jellyfin/item.yaml deleted file mode 100644 index 4292f5a67e..0000000000 --- a/library/ix-dev/test/jellyfin/item.yaml +++ /dev/null @@ -1,12 +0,0 @@ -icon_url: https://jellyfin.org/images/logo.svg -categories: - - media -screenshots: - - https://jellyfin.org/assets/images/10.8-home-4a73a92bf90d1eeffa5081201ca9c7bb.png - - https://jellyfin.org/assets/images/10.8-details-df4f7caaee389ffbaeeaa95b668fa037.png -tags: - - entertainment - - movies - - series - - tv - - streaming diff --git a/library/ix-dev/test/jellyfin/metadata.yaml b/library/ix-dev/test/jellyfin/metadata.yaml deleted file mode 100644 index d806ba85f0..0000000000 --- a/library/ix-dev/test/jellyfin/metadata.yaml +++ /dev/null @@ -1,8 +0,0 @@ -runAsContext: - - userName: jellyfin - groupName: jellyfin - gid: 568 - uid: 568 - description: Jellyfin runs as any non-root user. -capabilities: [] -hostMounts: [] diff --git a/library/ix-dev/test/jellyfin/migrations/migrate b/library/ix-dev/test/jellyfin/migrations/migrate deleted file mode 100755 index 8f7e3dc857..0000000000 --- a/library/ix-dev/test/jellyfin/migrations/migrate +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python3 -import json -import os -import sys - - -def migrate(values): - storageKey = 'jellyfinStorage' - storages = ['config', 'cache', 'transcodes'] - - - for storage in storages: - check_val = values.get(storageKey, {}).get(storage, {}) - if not isinstance(check_val, dict) or not check_val or check_val.get('type', 'hostPath') == 'hostPath': - continue - - values[storageKey][storage] = {key: value for key, value in check_val.items() if key != 'hostPath'} - - return values - - -if __name__ == '__main__': - if len(sys.argv) != 2: - exit(1) - - if os.path.exists(sys.argv[1]): - with open(sys.argv[1], 'r') as f: - print(json.dumps(migrate(json.loads(f.read())))) diff --git a/library/ix-dev/test/jellyfin/questions.yaml b/library/ix-dev/test/jellyfin/questions.yaml deleted file mode 100644 index 794c9479ff..0000000000 --- a/library/ix-dev/test/jellyfin/questions.yaml +++ /dev/null @@ -1,398 +0,0 @@ -groups: - - name: Jellyfin Configuration - description: Configure Jellyfin - - name: User and Group Configuration - description: Configure User and Group for Jellyfin - - name: Network Configuration - description: Configure Network for Jellyfin - - name: Storage Configuration - description: Configure Storage for Jellyfin - - name: Resources Configuration - description: Configure Resources for Jellyfin - -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: jellyfinConfig - label: "" - group: Jellyfin Configuration - schema: - type: dict - attrs: - - variable: publishServerUrl - label: Published Server URL - description: Optional - The URL that Jellyfin will be advertised. - schema: - type: string - default: "" - - variable: additionalEnvs - label: Additional Environment Variables - description: Configure additional environment variables for Jellyfin. - 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: jellyfinRunAs - label: "" - group: User and Group Configuration - schema: - type: dict - attrs: - - variable: user - label: User ID - description: The user id that Jellyfin will run as. - schema: - type: int - min: 2 - default: 568 - required: true - - variable: group - label: Group ID - description: The group id that Jellyfin will run as. - schema: - type: int - min: 2 - default: 568 - required: true - - - variable: jellyfinNetwork - label: "" - group: Network Configuration - schema: - type: dict - attrs: - - variable: hostNetwork - label: Host Network - description: | - Bind to the host network. While it's recommended to keep this disabled.
- It's required for autodiscovery to work. - schema: - type: boolean - default: false - - variable: webPort - label: Web Port - description: The port for the Jellyfin Web UI. - schema: - type: int - default: 30013 - show_if: [["hostNetwork", "=", false]] - min: 9000 - max: 65535 - required: true - - - variable: jellyfinStorage - label: "" - group: Storage Configuration - schema: - type: dict - attrs: - - variable: config - label: Jellyfin Config Storage - description: The path to store Jellyfin 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: cache - label: Jellyfin Cache Storage - description: The path to store Jellyfin Cache. - 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: "cache" - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: transcodes - label: Jellyfin Transcodes Storage - description: The path to store Jellyfin Transcodes. - 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.
- emptyDir: Is a temporary directory that will be created on the disk or in memory. - 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) - - value: "emptyDir" - description: emptyDir (Temporary directory created on the disk or in memory) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: "transcodes" - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: medium - label: emptyDir Medium - description: | - Disk: Creates a temporary directory on the disk.
- Memory: Creates a temporary directory in memory. - schema: - type: string - show_if: [["type", "=", "emptyDir"]] - default: "" - enum: - - value: "" - description: Disk (Temporary directory created on the disk) - - value: "Memory" - description: Memory (Temporary directory created in memory) - - variable: size - label: emptyDir Size Limit - description: | - The maximum size of the temporary directory.
- For example: 2Gi - schema: - type: string - show_if: [["type", "=", "emptyDir"]] - default: "2Gi" - - - variable: additionalStorages - label: Additional Storage - description: Additional storage for Jellyfin. - 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) - - value: "smb-pv-pvc" - description: SMB Share (Mounts a persistent volume claim to a SMB share) - - 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: server - label: Server - description: The server for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: share - label: Share - description: The share name for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: domain - label: Domain (Optional) - description: The domain for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - - variable: username - label: Username - description: The username for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: password - label: Password - description: The password for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - private: true - - variable: size - label: Size (in Gi) - description: The size of the volume quota. - schema: - type: int - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - min: 1 - default: 1 - - 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 Jellyfin. - schema: - type: string - max_length: 6 - valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' - valid_chars_error: | - Valid CPU limit formats are
- - Plain Integer - eg. 1
- - Float - eg. 0.5
- - Milicpu - eg. 500m - default: "4000m" - required: true - - variable: memory - label: Memory - description: Memory limit for Jellyfin. - schema: - type: string - max_length: 12 - valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' - valid_chars_error: | - Valid Memory limit formats are
- - Suffixed with E/P/T/G/M/K - eg. 1G
- - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- - Plain Integer in bytes - eg. 1024
- - Exponent - eg. 134e6 - default: "8Gi" - required: true - - - variable: jellyfinGPU - group: Resources Configuration - label: GPU Configuration - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] diff --git a/library/ix-dev/test/jellyfin/templates/NOTES.txt b/library/ix-dev/test/jellyfin/templates/NOTES.txt deleted file mode 100644 index ba4e01146c..0000000000 --- a/library/ix-dev/test/jellyfin/templates/NOTES.txt +++ /dev/null @@ -1 +0,0 @@ -{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/library/ix-dev/test/jellyfin/templates/_jellyfin.tpl b/library/ix-dev/test/jellyfin/templates/_jellyfin.tpl deleted file mode 100644 index 5e5a374c34..0000000000 --- a/library/ix-dev/test/jellyfin/templates/_jellyfin.tpl +++ /dev/null @@ -1,151 +0,0 @@ -{{- define "jellyfin.workload" -}} -workload: - jellyfin: - enabled: true - primary: true - type: Deployment - podSpec: - hostNetwork: {{ .Values.jellyfinNetwork.hostNetwork }} - containers: - jellyfin: - enabled: true - primary: true - imageSelector: image - securityContext: - runAsUser: {{ .Values.jellyfinRunAs.user }} - runAsGroup: {{ .Values.jellyfinRunAs.group }} - env: - {{ with .Values.jellyfinConfig.publishedServerUrl }} - JELLYFIN_PublishedServerUrl: {{ . | quote }} - {{ end }} - {{ with .Values.jellyfinConfig.additionalEnvs }} - envList: - {{ range $env := . }} - - name: {{ $env.name }} - values: {{ $env.value }} - {{ end }} - {{ end }} - probes: - liveness: - enabled: true - type: http - port: 8096 - path: /health - readiness: - enabled: true - type: http - port: 8096 - path: /health - startup: - enabled: true - type: http - port: 8096 - path: /health - initContainers: - {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" - "UID" .Values.jellyfinRunAs.user - "GID" .Values.jellyfinRunAs.group - "mode" "check" - "type" "init") | nindent 8 }} - -{{/* Service */}} -service: - jellyfin: - enabled: true - primary: true - type: NodePort - targetSelector: jellyfin - ports: - webui: - enabled: true - primary: true - port: {{ .Values.jellyfinNetwork.webPort }} - nodePort: {{ .Values.jellyfinNetwork.webPort }} - targetPort: 8096 - targetSelector: jellyfin - -{{/* Persistence */}} -persistence: - config: - enabled: true - type: {{ .Values.jellyfinStorage.config.type }} - datasetName: {{ .Values.jellyfinStorage.config.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.config.hostPath | default "" }} - targetSelector: - jellyfin: - jellyfin: - mountPath: /config - 01-permissions: - mountPath: /mnt/directories/config - cache: - enabled: true - type: {{ .Values.jellyfinStorage.cache.type }} - datasetName: {{ .Values.jellyfinStorage.cache.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.cache.hostPath | default "" }} - targetSelector: - jellyfin: - jellyfin: - mountPath: /cache - 01-permissions: - mountPath: /mnt/directories/cache - transcode: - enabled: true - type: {{ .Values.jellyfinStorage.transcodes.type }} - datasetName: {{ .Values.jellyfinStorage.transcodes.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.transcodes.hostPath | default "" }} - medium: {{ .Values.jellyfinStorage.transcodes.medium | default "" }} - {{/* Size of the emptyDir */}} - size: {{ .Values.jellyfinStorage.transcodes.size | default "" }} - targetSelector: - jellyfin: - jellyfin: - mountPath: /config/transcodes - {{ if ne .Values.jellyfinStorage.transcodes.type "emptyDir" }} - 01-permissions: - mountPath: /mnt/directories/transcodes - {{ end }} - tmp: - enabled: true - type: emptyDir - targetSelector: - jellyfin: - jellyfin: - mountPath: /tmp - {{- range $idx, $storage := .Values.jellyfinStorage.additionalStorages }} - {{ printf "jellyfin-%v" (int $idx) }}: - {{- $size := "" -}} - {{- if $storage.size -}} - {{- $size = (printf "%vGi" $storage.size) -}} - {{- end }} - enabled: true - type: {{ $storage.type }} - datasetName: {{ $storage.datasetName | default "" }} - hostPath: {{ $storage.hostPath | default "" }} - server: {{ $storage.server | default "" }} - share: {{ $storage.share | default "" }} - domain: {{ $storage.domain | default "" }} - username: {{ $storage.username | default "" }} - password: {{ $storage.password | default "" }} - size: {{ $size }} - {{- if eq $storage.type "smb-pv-pvc" }} - mountOptions: - - key: noperm - {{- end }} - targetSelector: - jellyfin: - jellyfin: - mountPath: {{ $storage.mountPath }} - 01-permissions: - mountPath: /mnt/directories{{ $storage.mountPath }} - {{- end }} -{{ with .Values.jellyfinGPU }} -scaleGPU: - {{ range $key, $value := . }} - - gpu: - {{ $key }}: {{ $value }} - targetSelector: - jellyfin: - - jellyfin - {{ end }} -{{ end }} -{{- end -}} diff --git a/library/ix-dev/test/jellyfin/templates/_portal.tpl b/library/ix-dev/test/jellyfin/templates/_portal.tpl deleted file mode 100644 index c985b5aa83..0000000000 --- a/library/ix-dev/test/jellyfin/templates/_portal.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{{- define "jellyfin.portal" -}} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: portal -data: - path: "/" - {{- $port := .Values.jellyfinNetwork.webPort -}} - {{- if .Values.jellyfinNetwork.hostNetwork -}} - {{- $port = 8096 -}} - {{- end }} - port: {{ $port | quote }} - protocol: http - host: $node_ip -{{- end -}} diff --git a/library/ix-dev/test/jellyfin/templates/common.yaml b/library/ix-dev/test/jellyfin/templates/common.yaml deleted file mode 100644 index ee3c3a7796..0000000000 --- a/library/ix-dev/test/jellyfin/templates/common.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- include "ix.v1.common.loader.init" . -}} - -{{/* Merge the templates with Values */}} -{{- $_ := mustMergeOverwrite .Values (include "jellyfin.workload" $ | fromYaml) -}} - -{{/* Create the configmap for portal manually*/}} -{{- include "jellyfin.portal" $ -}} - -{{- include "ix.v1.common.loader.apply" . -}} diff --git a/library/ix-dev/test/jellyfin/upgrade_info.json b/library/ix-dev/test/jellyfin/upgrade_info.json deleted file mode 100644 index 767388094a..0000000000 --- a/library/ix-dev/test/jellyfin/upgrade_info.json +++ /dev/null @@ -1 +0,0 @@ -{"filename": "values.yaml", "keys": ["image"]} diff --git a/library/ix-dev/test/jellyfin/upgrade_strategy b/library/ix-dev/test/jellyfin/upgrade_strategy deleted file mode 100755 index 41e9448b21..0000000000 --- a/library/ix-dev/test/jellyfin/upgrade_strategy +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/python3 -import json -import re -import sys - -from catalog_update.upgrade_strategy import semantic_versioning - - -RE_STABLE_VERSION = re.compile(r'[0-9]+\.[0-9]+\.[0-9]+') - - -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/test/jellyfin/values.yaml b/library/ix-dev/test/jellyfin/values.yaml deleted file mode 100644 index 5e7c58fbe8..0000000000 --- a/library/ix-dev/test/jellyfin/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -image: - repository: jellyfin/jellyfin - pullPolicy: IfNotPresent - tag: 10.8.13 - -resources: - limits: - cpu: 4000m - memory: 8Gi - -jellyfinConfig: - publishedServerUrl: '' - additionalEnvs: [] -jellyfinGPU: {} -jellyfinNetwork: - webPort: 30013 - hostNetwork: false -jellyfinRunAs: - user: 568 - group: 568 -jellyfinStorage: - config: - type: ixVolume - datasetName: config - cache: - type: ixVolume - datasetName: cache - transcodes: - type: ixVolume - datasetName: transcodes - medium: '' - size: '' - additionalStorages: [] diff --git a/library/ix-dev/test/sonarr/Chart.lock b/library/ix-dev/test/sonarr/Chart.lock deleted file mode 100644 index 7178e9efbf..0000000000 --- a/library/ix-dev/test/sonarr/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: file://../../../common - version: 1.1.1 -digest: sha256:a7dbe3e4d42dbcd4325776e5e01a1d630c7f185f79e7ebf22b1b9cc80f56eed7 -generated: "2023-09-21T15:59:14.078456648+03:00" diff --git a/library/ix-dev/test/sonarr/Chart.yaml b/library/ix-dev/test/sonarr/Chart.yaml deleted file mode 100644 index 9a7d68f970..0000000000 --- a/library/ix-dev/test/sonarr/Chart.yaml +++ /dev/null @@ -1,26 +0,0 @@ -name: sonarr -description: Sonarr is a PVR for Usenet and BitTorrent users. -annotations: - title: Sonarr -type: application -version: 1.0.16 -apiVersion: v2 -appVersion: '3.0.10.1567' -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.1.1 -home: https://github.com/Sonarr/Sonarr -icon: https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png -sources: - - https://github.com/onedr0p/containers/tree/main/apps/sonarr - - https://github.com/truenas/charts/tree/master/community/sonarr - - https://github.com/Sonarr/Sonarr -keywords: - - media - - series diff --git a/library/ix-dev/test/sonarr/README.md b/library/ix-dev/test/sonarr/README.md deleted file mode 100644 index f345ff022a..0000000000 --- a/library/ix-dev/test/sonarr/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Sonarr - -[Sonarr](https://github.com/Sonarr/Sonarr) is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. - -> When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `Sonarr` directories. -> Afterward, the `Sonarr` 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/test/sonarr/app-readme.md b/library/ix-dev/test/sonarr/app-readme.md deleted file mode 100644 index f345ff022a..0000000000 --- a/library/ix-dev/test/sonarr/app-readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# Sonarr - -[Sonarr](https://github.com/Sonarr/Sonarr) is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. - -> When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `Sonarr` directories. -> Afterward, the `Sonarr` 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/test/sonarr/charts/common-1.1.1.tgz b/library/ix-dev/test/sonarr/charts/common-1.1.1.tgz deleted file mode 100644 index 8a94b953938a99ab0674b597eddd9e9150e04b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61730 zcmV)zK#{*6iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvFciT9!Fb>b({uFpP&K;{COP2Q;Kb_py?W8lglf}n&y5D;< zxj8TiNf=WELqKvoiNE{rU?Tw#T(nqOT0Eya76}vzg{2l0szNdzlVs;?1T)sVgX8#5 z%YXX)e*fs;K>XY9_uYT{2mSt^b`K8w`~CgnJ}C(wTYTuRS`GMN3Tzi?Y_ z=f0B%CJAAXVUp034FDKsF**TfVpf2c_&S5x9T2l)1E%;llu=BQ6ENM|fN5I%+}(%} z4KtiF@%t3Ss%prqf&s|@{{MqFg8>dPjKLXXFebx|F~kXjI6)ab+2{f^hB!U}5t{!0 z@F#jl85+}GNX8ogByfyQ0LvyQfpi0aNfw`g5o0Mm+1a_hz3r(_y!g(BEG_5u2D?kq ziAHE+s&U@!?e=yzzBc{8_M_JS6vh)oA7}$;SpUa|M|i0H7$F;t-u@gprWMCxC^^{f5J7I_@eMKT9&;g(eE)a}< z&oD!8l91P+jAU?#&SFUE2?&B5Ydl6|!c@H&Pf>!X`UL<^FvBo@ieh+oi9(V@^aSko z)z=hdm_+6GOv21R9IE#Nh~r6yu0|Q6BN9i&7djC=Fuv@HFByUn{x%TW6JPimW0Q0) zbPg-9*{j6ns9!^$iusAhaELg58A=JojAVCeycrzok)OozIf-$2cLH7vUK4hnA&L^V zv2hLQ=!Fjg|B%Bt=pFR-_Uj>~gtB3Vs27_4m_yt>?CsUV8^a94=-LZTeJh~#dq=(9 zgL;4&im)HMYs?Zj#yg@!4)nO!@9pl^!}JdcMd2jF?Cy*t41Hp}xsWJvLC&P}w=bTa zfWxD|ieGPEonHRq1O)xQpa}rkBsrz8Npe95ld?nc`YlCSQB}Npo{>pvyhAX0lf-wt z_OCcbQXVnjz&Iwi=NX>j7!A=g8p0S#@kj4Be6vuWBl9gqVMxa5c}4~}MtW69Ipt!K z@R_dmN%1L!DZIupW*Frw8b;9xc=ulYiZYTfF20SOzI@3EP9pho;Py?uI2*xai1e7e z5rle$=@_zbBoUpYX^h4wVK5doXx=Ejqalms?}`D;5G9i=lt{;TjP-sQrjrwJ(C_!h z;^!ER#RU4R*p)N%ae}B-bk`|(*nh=KzW(jS(-)^7&Q8xS_5KaxxC)z;L~qhu&_xNn zj?txLEH80#LyG|#5z1a8c1yCG;$?=!CZ>sX8sEY@KFgzo>UWAW{faZn|~()N27yY*lc=$e2tL zrh0f9hWytRxk1MKWGEZsM8JEV!4RF>JMX^D%@e{96{Hk@@s5lTjQBeGB0BJA@H>h_ zGDd(AaFtEa>(fhcd3O5pnfQD)g2@fIBNM3(B$UB8#>o(T{tS9j0X;1QjGjZ@XKTD=8bv;{Y3O%Cs51*I!OPy2#j8?LLlm=CUGZ9pjDH4n1T!SIrauF{67~KF z{tT|(JbiNlo{87s`VK^LEBsGYp1Fb^e<|krIb@>~up`0i(l8q$c8OvXveP)ux9>lL zDa>Lrqz{J16lOcTfks5wIDIfA*f?!$KSEPF8b25c5t{DM(YO{3Igwr@|3V={5g24- zEH@4?#!(cbTbQAZKLgH=#WKy%0A+km0Y2q7@TX^=7|IeDzepI$1~5cw>z!nZCBJ+B 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 UL+M!lCjbEd|K?GT0RRFB0B9M&x&QzG diff --git a/library/ix-dev/test/sonarr/ci/basic-values.yaml b/library/ix-dev/test/sonarr/ci/basic-values.yaml deleted file mode 100644 index 886fe58f92..0000000000 --- a/library/ix-dev/test/sonarr/ci/basic-values.yaml +++ /dev/null @@ -1,11 +0,0 @@ -sonarrNetwork: - webPort: 31000 - -sonarrRunAs: - user: 1000 - group: 1000 - -sonarrStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/library/ix-dev/test/sonarr/ci/extra-values.yaml b/library/ix-dev/test/sonarr/ci/extra-values.yaml deleted file mode 100644 index 2d1d330236..0000000000 --- a/library/ix-dev/test/sonarr/ci/extra-values.yaml +++ /dev/null @@ -1,21 +0,0 @@ -sonarrConfig: - additionalEnvs: - - name: SONARR__API_KEY - value: some-long-api-key - - name: SONARR__LOG_LEVEL - value: error - -sonarrNetwork: - webPort: 31000 - -sonarrStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config - additionalStorages: - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/action_series - mountPath: /action_series - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/adventure_series - mountPath: /adventure_series diff --git a/library/ix-dev/test/sonarr/ci/hostNet-values.yaml b/library/ix-dev/test/sonarr/ci/hostNet-values.yaml deleted file mode 100644 index a23e799a30..0000000000 --- a/library/ix-dev/test/sonarr/ci/hostNet-values.yaml +++ /dev/null @@ -1,8 +0,0 @@ -sonarrNetwork: - webPort: 30000 - hostNetwork: true - -sonarrStorage: - config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config diff --git a/library/ix-dev/test/sonarr/item.yaml b/library/ix-dev/test/sonarr/item.yaml deleted file mode 100644 index 8e971a26f9..0000000000 --- a/library/ix-dev/test/sonarr/item.yaml +++ /dev/null @@ -1,9 +0,0 @@ -icon_url: https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png -categories: - - media -screenshots: - - https://sonarr.tv/img/features/calendar.png - - https://sonarr.tv/img/features/manualsearch.png - - https://sonarr.tv/img/features/blocklist.png -tags: - - series diff --git a/library/ix-dev/test/sonarr/metadata.yaml b/library/ix-dev/test/sonarr/metadata.yaml deleted file mode 100644 index c70b059638..0000000000 --- a/library/ix-dev/test/sonarr/metadata.yaml +++ /dev/null @@ -1,8 +0,0 @@ -runAsContext: - - userName: sonarr - groupName: sonarr - gid: 568 - uid: 568 - description: Sonarr can run as any non-root user. -capabilities: [] -hostMounts: [] diff --git a/library/ix-dev/test/sonarr/migrations/migrate b/library/ix-dev/test/sonarr/migrations/migrate deleted file mode 100755 index 3176f197c3..0000000000 --- a/library/ix-dev/test/sonarr/migrations/migrate +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/python3 -import json -import os -import sys - - -def migrate(values): - storageKey = 'sonarrStorage' - storages = ['config'] - - - for storage in storages: - check_val = values.get(storageKey, {}).get(storage, {}) - if not isinstance(check_val, dict) or not check_val or check_val.get('type', 'hostPath') == 'hostPath': - continue - - values[storageKey][storage] = {key: value for key, value in check_val.items() if key != 'hostPath'} - - - return values - - -if __name__ == '__main__': - if len(sys.argv) != 2: - exit(1) - - if os.path.exists(sys.argv[1]): - with open(sys.argv[1], 'r') as f: - print(json.dumps(migrate(json.loads(f.read())))) diff --git a/library/ix-dev/test/sonarr/questions.yaml b/library/ix-dev/test/sonarr/questions.yaml deleted file mode 100644 index e158867171..0000000000 --- a/library/ix-dev/test/sonarr/questions.yaml +++ /dev/null @@ -1,286 +0,0 @@ -groups: - - name: Sonarr Configuration - description: Configure Sonarr - - name: User and Group Configuration - description: Configure User and Group for Sonarr - - name: Network Configuration - description: Configure Network for Sonarr - - name: Storage Configuration - description: Configure Storage for Sonarr - - name: Resources Configuration - description: Configure Resources for Sonarr - -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: sonarrConfig - label: "" - group: Sonarr Configuration - schema: - type: dict - attrs: - - variable: instanceName - label: Instance Name - description: The name of the Sonarr instance. - schema: - type: string - default: "Sonarr" - required: true - - variable: additionalEnvs - label: Additional Environment Variables - description: Configure additional environment variables for Sonarr. - 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: sonarrRunAs - label: "" - group: User and Group Configuration - schema: - type: dict - attrs: - - variable: user - label: User ID - description: The user id that Sonarr will run as. - schema: - type: int - min: 2 - default: 568 - required: true - - variable: group - label: Group ID - description: The group id that Sonarr will run as. - schema: - type: int - min: 2 - default: 568 - required: true - - - variable: sonarrNetwork - label: "" - group: Network Configuration - schema: - type: dict - attrs: - - variable: webPort - label: Web Port - description: The port for the Sonarr Web UI. - schema: - type: int - default: 30027 - 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: sonarrStorage - label: "" - group: Storage Configuration - schema: - type: dict - attrs: - - variable: config - label: Sonarr Config Storage - description: The path to store Sonarr 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 Sonarr. - 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) - - value: "smb-pv-pvc" - description: SMB Share (Mounts a persistent volume claim to a SMB share) - - 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: server - label: Server - description: The server for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: share - label: Share - description: The share name for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: domain - label: Domain (Optional) - description: The domain for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - - variable: username - label: Username - description: The username for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: password - label: Password - description: The password for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - private: true - - variable: size - label: Size (in Gi) - description: The size of the volume quota. - schema: - type: int - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - min: 1 - default: 1 - - - 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 Sonarr. - schema: - type: string - max_length: 6 - valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' - valid_chars_error: | - Valid CPU limit formats are
- - Plain Integer - eg. 1
- - Float - eg. 0.5
- - Milicpu - eg. 500m - default: "4000m" - required: true - - variable: memory - label: Memory - description: Memory limit for Sonarr. - schema: - type: string - max_length: 12 - valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' - valid_chars_error: | - Valid Memory limit formats are
- - Suffixed with E/P/T/G/M/K - eg. 1G
- - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- - Plain Integer in bytes - eg. 1024
- - Exponent - eg. 134e6 - default: "8Gi" - required: true diff --git a/library/ix-dev/test/sonarr/templates/NOTES.txt b/library/ix-dev/test/sonarr/templates/NOTES.txt deleted file mode 100644 index ba4e01146c..0000000000 --- a/library/ix-dev/test/sonarr/templates/NOTES.txt +++ /dev/null @@ -1 +0,0 @@ -{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/library/ix-dev/test/sonarr/templates/_portal.tpl b/library/ix-dev/test/sonarr/templates/_portal.tpl deleted file mode 100644 index 88e40c57bc..0000000000 --- a/library/ix-dev/test/sonarr/templates/_portal.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{{- define "sonarr.portal" -}} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: portal -data: - path: "/" - port: {{ .Values.sonarrNetwork.webPort | quote }} - protocol: http - host: $node_ip -{{- end -}} diff --git a/library/ix-dev/test/sonarr/templates/_sonarr.tpl b/library/ix-dev/test/sonarr/templates/_sonarr.tpl deleted file mode 100644 index 3c2b23b868..0000000000 --- a/library/ix-dev/test/sonarr/templates/_sonarr.tpl +++ /dev/null @@ -1,112 +0,0 @@ -{{- define "sonarr.workload" -}} -workload: - sonarr: - enabled: true - primary: true - type: Deployment - podSpec: - hostNetwork: {{ .Values.sonarrNetwork.hostNetwork }} - containers: - sonarr: - enabled: true - primary: true - imageSelector: image - securityContext: - runAsUser: {{ .Values.sonarrRunAs.user }} - runAsGroup: {{ .Values.sonarrRunAs.group }} - env: - SONARR__PORT: {{ .Values.sonarrNetwork.webPort }} - SONARR__INSTANCE_NAME: {{ .Values.sonarrConfig.instanceName }} - {{ with .Values.sonarrConfig.additionalEnvs }} - envList: - {{ range $env := . }} - - name: {{ $env.name }} - value: {{ $env.value }} - {{ end }} - {{ end }} - probes: - liveness: - enabled: true - type: http - port: "{{ .Values.sonarrNetwork.webPort }}" - path: /ping - readiness: - enabled: true - type: http - port: "{{ .Values.sonarrNetwork.webPort }}" - path: /ping - startup: - enabled: true - type: http - port: "{{ .Values.sonarrNetwork.webPort }}" - path: /ping - initContainers: - {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" - "UID" .Values.sonarrRunAs.user - "GID" .Values.sonarrRunAs.group - "mode" "check" - "type" "init") | nindent 8 }} - -{{/* Service */}} -service: - sonarr: - enabled: true - primary: true - type: NodePort - targetSelector: sonarr - ports: - webui: - enabled: true - primary: true - port: {{ .Values.sonarrNetwork.webPort }} - nodePort: {{ .Values.sonarrNetwork.webPort }} - targetSelector: sonarr - -{{/* Persistence */}} -persistence: - config: - enabled: true - type: {{ .Values.sonarrStorage.config.type }} - datasetName: {{ .Values.sonarrStorage.config.datasetName | default "" }} - hostPath: {{ .Values.sonarrStorage.config.hostPath | default "" }} - targetSelector: - sonarr: - sonarr: - mountPath: /config - 01-permissions: - mountPath: /mnt/directories/config - tmp: - enabled: true - type: emptyDir - targetSelector: - sonarr: - sonarr: - mountPath: /tmp - {{- range $idx, $storage := .Values.sonarrStorage.additionalStorages }} - {{ printf "sonarr-%v" (int $idx) }}: - {{- $size := "" -}} - {{- if $storage.size -}} - {{- $size = (printf "%vGi" $storage.size) -}} - {{- end }} - enabled: true - type: {{ $storage.type }} - datasetName: {{ $storage.datasetName | default "" }} - hostPath: {{ $storage.hostPath | default "" }} - server: {{ $storage.server | default "" }} - share: {{ $storage.share | default "" }} - domain: {{ $storage.domain | default "" }} - username: {{ $storage.username | default "" }} - password: {{ $storage.password | default "" }} - size: {{ $size }} - {{- if eq $storage.type "smb-pv-pvc" }} - mountOptions: - - key: noperm - {{- end }} - targetSelector: - sonarr: - sonarr: - mountPath: {{ $storage.mountPath }} - 01-permissions: - mountPath: /mnt/directories{{ $storage.mountPath }} - {{- end }} -{{- end -}} diff --git a/library/ix-dev/test/sonarr/templates/common.yaml b/library/ix-dev/test/sonarr/templates/common.yaml deleted file mode 100644 index 23242cb8d3..0000000000 --- a/library/ix-dev/test/sonarr/templates/common.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- include "ix.v1.common.loader.init" . -}} - -{{/* Merge the templates with Values */}} -{{- $_ := mustMergeOverwrite .Values (include "sonarr.workload" $ | fromYaml) -}} - -{{/* Create the configmap for portal manually*/}} -{{- include "sonarr.portal" $ -}} - -{{- include "ix.v1.common.loader.apply" . -}} diff --git a/library/ix-dev/test/sonarr/upgrade_info.json b/library/ix-dev/test/sonarr/upgrade_info.json deleted file mode 100644 index 767388094a..0000000000 --- a/library/ix-dev/test/sonarr/upgrade_info.json +++ /dev/null @@ -1 +0,0 @@ -{"filename": "values.yaml", "keys": ["image"]} diff --git a/library/ix-dev/test/sonarr/upgrade_strategy_disable b/library/ix-dev/test/sonarr/upgrade_strategy_disable deleted file mode 100644 index 3e49862388..0000000000 --- a/library/ix-dev/test/sonarr/upgrade_strategy_disable +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/python3 -import json -import re -import sys - -from catalog_update.upgrade_strategy import semantic_versioning - - -RE_STABLE_VERSION = re.compile(r'[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+') - - -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/test/sonarr/values.yaml b/library/ix-dev/test/sonarr/values.yaml deleted file mode 100644 index c14da6f89b..0000000000 --- a/library/ix-dev/test/sonarr/values.yaml +++ /dev/null @@ -1,24 +0,0 @@ -image: - repository: ghcr.io/onedr0p/sonarr - pullPolicy: IfNotPresent - tag: '3.0.10.1567' - -resources: - limits: - cpu: 4000m - memory: 8Gi - -sonarrConfig: - instanceName: Sonarr - additionalEnvs: [] -sonarrNetwork: - webPort: 30027 - hostNetwork: false -sonarrRunAs: - user: 568 - group: 568 -sonarrStorage: - config: - type: ixVolume - datasetName: config - additionalStorages: []