fix(euterpe) set persistence & tagged ver (#4623)
* fix(euterpe) set persistence & tagged ver * remove comment from repo * rar rofs * set protocol to http * set to 568 + ranr * rar + rofs false * set protocol TCP + probes * set probes * ranr * update values * set our image * Update charts/incubator/euterpe/values.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/values.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Apply suggestions from code review Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * secret * empty * major bump * Update values.yaml * whoops * cast to int * clean * whoops * add gui options * Apply suggestions from code review Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Apply suggestions from code review Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Apply suggestions from code review Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/euterpe/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * fixy fixy * fix spelling * hmm Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
parent
f1628a4c05
commit
536febfefd
|
@ -1,18 +1,11 @@
|
|||
annotations:
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/catagories: |
|
||||
- Productivity
|
||||
- Tools-Utilities
|
||||
- MediaApp-Music
|
||||
- MediaServer-Music
|
||||
apiVersion: v2
|
||||
appVersion: "latest"
|
||||
appVersion: "1.5.2"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 11.0.4
|
||||
deprecated: false
|
||||
description: "Euterpe is self-hosted streaming service for music. Formerly known as HTTPMS (HTTP Media Server)."
|
||||
description: Self-hosted streaming service for music, formerly known as HTTP Media Server.
|
||||
home: https://truecharts.org/docs/charts/incubator/euterpe
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/euterpe.png
|
||||
keywords:
|
||||
|
@ -32,4 +25,12 @@ sources:
|
|||
- https://github.com/ironsmile/euterpe
|
||||
- https://hub.docker.com/r/ironsmile/euterpe
|
||||
type: application
|
||||
version: 2.0.3
|
||||
version: 3.0.0
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- Productivity
|
||||
- Tools-Utilities
|
||||
- MediaApp-Music
|
||||
- MediaServer-Music
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/grade: U
|
||||
|
|
|
@ -8,11 +8,122 @@ questions:
|
|||
# Include{replicas}
|
||||
# Include{replica1}
|
||||
# Include{controllerExpertExtraArgs}
|
||||
- variable: euterpe
|
||||
group: App Configuration
|
||||
label: Discord GSM Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: basic_authenticate
|
||||
label: Enable Basic Authenticate
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: authentication
|
||||
label: Authentication
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: user
|
||||
label: Basic Auth Username
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: password
|
||||
label: Basic Auth Password
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: libraries
|
||||
label: Libraries
|
||||
description: The `/root/Music` library is automatically added.
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: libraryEntry
|
||||
label: Library Entry
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: library_scan
|
||||
label: Library Scan
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: initial_wait_duration
|
||||
label: Initial Wait Duration
|
||||
schema:
|
||||
type: string
|
||||
default: 1s
|
||||
- variable: files_per_operation
|
||||
label: Files Per Operation
|
||||
schema:
|
||||
type: int
|
||||
default: 1500
|
||||
- variable: sleep_after_operation
|
||||
label: Sleep After Operation
|
||||
schema:
|
||||
type: string
|
||||
default: 15ms
|
||||
- variable: discogs
|
||||
label: Discogs Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: discogs_auth_token
|
||||
label: Discogs Auth Token
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: download_artwork
|
||||
label: Download Artwork
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: danger_zone
|
||||
label: Danger Zone Settings
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: gzip
|
||||
label: gzip
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
- variable: read_timeout
|
||||
label: Read Timeout
|
||||
schema:
|
||||
type: int
|
||||
default: 15
|
||||
- variable: write_timeout
|
||||
label: Write Timeout
|
||||
schema:
|
||||
type: int
|
||||
default: 1200
|
||||
- variable: max_header_bytes
|
||||
label: Max Header Bytes
|
||||
schema:
|
||||
type: int
|
||||
default: 1048576
|
||||
# Include{containerConfig}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: "Main Service"
|
||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
||||
label: Main Service
|
||||
description: The Primary service on which the healthcheck runs, often the webUI
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
|
@ -20,14 +131,14 @@ questions:
|
|||
# Include{serviceSelectorLoadBalancer}
|
||||
# Include{serviceSelectorExtras}
|
||||
- variable: main
|
||||
label: "Main Service Port Configuration"
|
||||
label: Main Service Port Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: port
|
||||
label: "Port"
|
||||
description: "This port exposes the container port on the service"
|
||||
label: Port
|
||||
description: This port exposes the container port on the service
|
||||
schema:
|
||||
type: int
|
||||
default: 9996
|
||||
|
@ -37,9 +148,9 @@ questions:
|
|||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
- variable: storagelibrary
|
||||
label: "storagelibrary Storage"
|
||||
description: "This is your music library."
|
||||
- variable: music
|
||||
label: App Music Storage
|
||||
description: Stores the Application Music.
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
|
@ -48,7 +159,7 @@ questions:
|
|||
# Include{persistenceList}
|
||||
# Include{ingressRoot}
|
||||
- variable: main
|
||||
label: "Main Ingress"
|
||||
label: Main Ingress
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
|
@ -60,41 +171,41 @@ questions:
|
|||
# Include{security}
|
||||
# Include{securityContextAdvancedRoot}
|
||||
- variable: privileged
|
||||
label: "Privileged mode"
|
||||
label: Privileged mode
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: readOnlyRootFilesystem
|
||||
label: "ReadOnly Root Filesystem"
|
||||
label: ReadOnly Root Filesystem
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: allowPrivilegeEscalation
|
||||
label: "Allow Privilege Escalation"
|
||||
label: Allow Privilege Escalation
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: runAsNonRoot
|
||||
label: "runAsNonRoot"
|
||||
label: runAsNonRoot
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
# Include{podSecurityContextRoot}
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
label: runAsUser
|
||||
description: The UserID of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: The groupID this App of the user running the application"
|
||||
label: runAsGroup
|
||||
description: The groupID this App of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: fsGroup
|
||||
label: "fsGroup"
|
||||
description: "The group that should own ALL storage."
|
||||
label: fsGroup
|
||||
description: The group that should own ALL storage.
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
{{/* Define the secret */}}
|
||||
{{- define "euterpe.secret" -}}
|
||||
|
||||
{{- $secretName := printf "%s-secret" (include "tc.common.names.fullname" .) }}
|
||||
{{- $secretStorageName := printf "%s-storage-secret" (include "tc.common.names.fullname" .) }}
|
||||
|
||||
{{- $secretKey := "" }}
|
||||
{{- with (lookup "v1" "Secret" .Release.Namespace $secretStorageName) }}
|
||||
{{- $secretKey = (index .data "secret") }}
|
||||
{{- else }}
|
||||
{{- $secretKey = randAlphaNum 32 }}
|
||||
{{- end }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: Opaque
|
||||
metadata:
|
||||
name: {{ $secretName }}
|
||||
labels:
|
||||
{{- include "tc.common.labels" . | nindent 4 }}
|
||||
stringData:
|
||||
config.json: |
|
||||
{
|
||||
"listen": {{ printf ":%v" .Values.service.main.ports.main.port | quote }},
|
||||
"ssl": false,
|
||||
|
||||
"basic_authenticate": {{ .Values.euterpe.basic_authenticate }},
|
||||
"authentication": {
|
||||
{{- with .Values.euterpe.authentication.user }}
|
||||
"user": {{ . | quote }},
|
||||
{{- end }}
|
||||
{{- with .Values.euterpe.authentication.password }}
|
||||
"password": {{ . | quote }},
|
||||
{{- end }}
|
||||
"secret": {{ $secretKey | quote }}
|
||||
},
|
||||
|
||||
{{- $libraries := .Values.euterpe.libraries -}}
|
||||
{{- $libraries = append $libraries .Values.persistence.music.mountPath }}
|
||||
|
||||
"libraries": [
|
||||
{{- range initial $libraries }}
|
||||
{{ . | quote }},
|
||||
{{- end }}
|
||||
{{ last $libraries | quote }}
|
||||
],
|
||||
|
||||
"library_scan": {
|
||||
"initial_wait_duration": {{ .Values.euterpe.library_scan.initial_wait_duration | quote }},
|
||||
"files_per_operation": {{ .Values.euterpe.library_scan.files_per_operation }},
|
||||
"sleep_after_operation": {{ .Values.euterpe.library_scan.sleep_after_operation | quote }}
|
||||
},
|
||||
|
||||
"download_artwork": {{ .Values.euterpe.discogs.download_artwork }},
|
||||
|
||||
{{- with .Values.euterpe.discogs.discogs_auth_token }}
|
||||
"discogs_auth_token": {{ . | quote }},
|
||||
{{- end }}
|
||||
|
||||
"gzip": {{ .Values.euterpe.danger_zone.gzip }},
|
||||
"log_file": {{ .Values.euterpe.danger_zone.log_file | quote }},
|
||||
"sqlite_database": {{ .Values.euterpe.danger_zone.sqlite_database | quote }},
|
||||
"read_timeout": {{ .Values.euterpe.danger_zone.read_timeout }},
|
||||
"write_timeout": {{ .Values.euterpe.danger_zone.write_timeout }},
|
||||
"max_header_bytes": {{ .Values.euterpe.danger_zone.max_header_bytes | int }}
|
||||
}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
type: Opaque
|
||||
metadata:
|
||||
name: {{ $secretStorageName }}
|
||||
labels:
|
||||
{{- include "tc.common.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{/* Store secretKey to reuse */}}
|
||||
secret: {{ $secretKey | b64enc }}
|
||||
{{- end }}
|
|
@ -1,2 +1,8 @@
|
|||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "tc.common.loader.init" . }}
|
||||
|
||||
{{/* Render secret */}}
|
||||
{{- include "euterpe.secret" . }}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "tc.common.loader.all" . }}
|
||||
{{ include "tc.common.loader.apply" . }}
|
||||
|
|
|
@ -1,25 +1,57 @@
|
|||
env: {}
|
||||
image:
|
||||
pullPolicy: IfNotPresent
|
||||
repository: tccr.io/truecharts/euterpe
|
||||
tag: latest@sha256:5be892d3559100899f7b36a9bc3894448414b53dd6af885f3606fa0316b6b44a
|
||||
persistence:
|
||||
storagelibrary:
|
||||
enabled: true
|
||||
mountPath: /root/Music
|
||||
tag: 1.5.2@sha256:5be892d3559100899f7b36a9bc3894448414b53dd6af885f3606fa0316b6b44a
|
||||
|
||||
podSecurityContext:
|
||||
runAsGroup: 0
|
||||
runAsUser: 0
|
||||
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
runAsNonRoot: false
|
||||
|
||||
euterpe:
|
||||
basic_authenticate: false
|
||||
authentication:
|
||||
user: ""
|
||||
password: ""
|
||||
libraries: []
|
||||
library_scan:
|
||||
initial_wait_duration: 1s
|
||||
files_per_operation: 1500
|
||||
sleep_after_operation: 15ms
|
||||
discogs:
|
||||
download_artwork: false
|
||||
discogs_auth_token: ""
|
||||
# Danger Zone
|
||||
danger_zone:
|
||||
gzip: true
|
||||
log_file: euterpe.log
|
||||
sqlite_database: euterpe.db
|
||||
read_timeout: 15
|
||||
write_timeout: 1200
|
||||
max_header_bytes: 1048576
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
port: 9996
|
||||
protocol: TCP
|
||||
targetPort: 9996
|
||||
protocol: HTTP
|
||||
|
||||
persistence:
|
||||
music:
|
||||
enabled: true
|
||||
mountPath: /root/Music
|
||||
configfile:
|
||||
enabled: true
|
||||
type: secret
|
||||
readOnly: true
|
||||
defaultMode: "0600"
|
||||
objectName: '{{ include "tc.common.names.fullname" . }}-secret'
|
||||
mountPath: /root/.euterpe/config.json
|
||||
subPath: config.json
|
||||
|
||||
portal:
|
||||
enabled: true
|
||||
|
|
Loading…
Reference in New Issue