feat(flemarr): add flemarr (#3808)

* feat(flemarr): add flemarr

* required

* no service, persistence, portal

* no ingress

* add description

* add ci values

* lint

* lint

* Apply suggestions from code review

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>

* lint

* Update charts/incubator/flemarr/values.yaml

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Stavros Kois
2022-09-18 21:19:46 +03:00
committed by GitHub
parent ef270fcd7d
commit 4b23ba9043
11 changed files with 284 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
# 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
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png
+25
View File
@@ -0,0 +1,25 @@
apiVersion: v2
appVersion: "10.6.2"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.5.10
description: Flemmarr is a simple Python script that parses a configuration written in YAML and can apply it to any of the -arr apps using their API.
home: https://truecharts.org/docs/charts/stable/airsonic
icon: https://truecharts.org/img/hotlink-ok/chart-icons/airsonic.png
keywords:
- flemarr
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: flemarr
sources:
- https://github.com/Flemmarr/Flemmarr
version: 0.0.1
annotations:
truecharts.org/catagories: |
- media
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
View File
@@ -0,0 +1,28 @@
flemarrConfig:
sonarr:
server:
address: sonarr
port: 8989
config:
host:
analyticsEnabled: false
ui:
firstDayOfWeek: 1
timeFormat: HH:mm
rootfolder:
- name: Series
path: /data/series
defaultTags: []
defaultQualityProfileId: 1
defaultMetadataProfileId: 1
downloadclient:
- name: Transmission
enable: true
protocol: torrent
fields:
- name: host
value: transmission
- name: port
value: 9091
implementation: Transmission
configContract: TransmissionSettings
@@ -0,0 +1,13 @@
# Input Validation
**`Config File Host Path`**
Accepted formats are:
- Valid filesystem paths (eg. `/mnt/path/to/config.yml`)
Regex used to match those: `^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$`
You can try live [here](https://regex101.com/r/9gwRQK/1)
---
_If you find a field that you think it needs validation, please open an issue on github_
Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

+82
View File
@@ -0,0 +1,82 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: flemarr
group: Container Configuration
label: Flemarr Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: configFilePath
label: Config File Host Path
description: Path to file with flemarr configuration based on https://github.com/Flemmarr/Flemmarr#configuration
description:
schema:
type: string
required: true
valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
default: ""
# Include{containerConfig}
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: Privileged mode
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: ReadOnly Root Filesystem
schema:
type: boolean
default: true
- variable: allowPrivilegeEscalation
label: Allow Privilege Escalation
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: runAsNonRoot
schema:
type: boolean
default: true
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: runAsUser
description: The UserID of the user running the application
schema:
type: int
default: 568
- variable: runAsGroup
label: runAsGroup
description: The groupID this App of the user running the application
schema:
type: int
default: 568
- variable: fsGroup
label: fsGroup
description: The group that should own ALL storage.
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
@@ -0,0 +1,16 @@
{{/* Define the secrets */}}
{{- define "flemarr.config" -}}
{{- $configName := printf "%s-flemarr-config" (include "tc.common.names.fullname" .) }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $configName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
config.yml: |
{{- .Values.flemarrConfig | toYaml | nindent 4 }}
{{- end -}}
@@ -0,0 +1,30 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{/* Render config for flemarr */}}
{{- include "flemarr.config" . }}
{{- define "flemarr.configmap.mount" -}}
{{- if .Values.flemarrConfig }}
enabled: true
type: custom
mountPath: /config/config.yml
subPath: config.yml
readOnly: true
volumeSpec:
configMap:
name: '{{ printf "%s-flemarr-config" (include "tc.common.names.fullname" .) }}'
{{- else -}}
enabled: true
type: hostPath
hostPathType: File
hostPath: {{ .Values.flemarr.configFilePath }}
mountPath: /config/config.yml
readOnly: true
{{- end -}}
{{- end -}}
{{- $_ := set .Values.persistence "configfile" (include "flemarr.configmap.mount" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "tc.common.loader.apply" . }}
+58
View File
@@ -0,0 +1,58 @@
image:
repository: tccr.io/truecharts/flemmarr
tag: latest@sha256:0113664468f20a22079d2a9c10255542e3d23fd11cfd1732fd9f95c8055f88ed
pullPolicy: IfNotPresent
# https://github.com/Flemmarr/Flemmarr#configuration
flemarrConfig:
# sonarr:
# server:
# address: sonarr
# port: 8989
# config:
# host:
# analyticsEnabled: false
# ui:
# # 0 = Sunday, 1 = Monday
# firstDayOfWeek: 1
# # HH:mm = 17:30, h(:mm)a = 5:30PM
# timeFormat: HH:mm
# rootfolder:
# - name: Series
# path: /data/series
# defaultTags: []
# defaultQualityProfileId: 1
# defaultMetadataProfileId: 1
# downloadclient:
# - name: Transmission
# enable: true
# protocol: torrent
# fields:
# - name: host
# value: transmission
# - name: port
# value: 9091
# implementation: Transmission
# configContract: TransmissionSettings
# Implemented for inclusion in TrueNAS Scale GUI
flemarr:
configFilePath: ""
service:
main:
enabled: false
ports:
main:
enabled: false
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
portal:
enabled: false
+2
View File
@@ -54,6 +54,8 @@ words:
- entrypoints
- eptgmk
- fireshare
- flemarr
- Flemmarr
- flatnotes
- flushtables
- forcegc