From bb899a9fb3730fbb9d80dce3ec1461611571aeaa Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Thu, 17 Mar 2022 07:29:26 +0200 Subject: [PATCH] feat(handbrake): make gui easier - Breaking Change (#2153) * feat(handbrake): make gui easier. * fix values * test * pass --- charts/stable/handbrake/Chart.yaml | 2 +- charts/stable/handbrake/questions.yaml | 109 ++++++++++++++++++++++--- charts/stable/handbrake/values.yaml | 36 ++++++-- docs/apps/stable/handbrake/notes.md | 2 - docs/apps/stable/jdownloader2/notes.md | 6 ++ 5 files changed, 134 insertions(+), 21 deletions(-) create mode 100644 docs/apps/stable/jdownloader2/notes.md diff --git a/charts/stable/handbrake/Chart.yaml b/charts/stable/handbrake/Chart.yaml index 59d47f3ea87..8590948393c 100644 --- a/charts/stable/handbrake/Chart.yaml +++ b/charts/stable/handbrake/Chart.yaml @@ -24,7 +24,7 @@ sources: - https://hub.docker.com/r/jlesage/handbrake/ - https://handbrake.fr/ type: application -version: 11.0.2 +version: 12.0.0 annotations: truecharts.org/catagories: | - media diff --git a/charts/stable/handbrake/questions.yaml b/charts/stable/handbrake/questions.yaml index 69c37fadd60..4cccad8d951 100644 --- a/charts/stable/handbrake/questions.yaml +++ b/charts/stable/handbrake/questions.yaml @@ -88,14 +88,20 @@ questions: schema: type: string private: true - default: "REPLACETHIS" - - variable: env + default: "" + - variable: handbrake group: "Container Configuration" - label: "Image Environment" + label: "HandBrake Configuration" schema: additional_attrs: true type: dict attrs: + - variable: KEEP_APP_RUNNING + label: "KEEP_APP_RUNNING" + description: "When set to true, the application will be automatically restarted if it crashes or if a user quits it." + schema: + type: boolean + default: false - variable: gui label: "GUI Settings" description: "Always read description before changing a value here. Also refer to README" @@ -122,9 +128,8 @@ questions: label: "SECURE_CONNECTION" description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." schema: - type: int - default: 0 - required: true + type: boolean + default: false - variable: autoconv label: "Automated Conversion Settings" description: "Always read description before changing a value here. Also refer to README" @@ -151,9 +156,8 @@ questions: label: "AUTOMATED_CONVERSION_KEEP_SOURCE" description: "When set to 0, a video that has been successfully converted is removed from the watch folder." schema: - type: int - default: 0 - required: true + type: boolean + default: false - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." @@ -226,7 +230,6 @@ questions: type: int default: 5800 - - variable: vnc label: "VNC Service" description: "VNC Service" @@ -352,6 +355,92 @@ questions: description: "Default" - value: "Memory" description: "Memory" +# Include{persistenceAdvanced} + - variable: storage + label: "App Storage" + description: "Application Storage." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: output + label: "App Output Storage" + description: "Stores the Application Output." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" # Include{persistenceAdvanced} # Include{persistenceList} diff --git a/charts/stable/handbrake/values.yaml b/charts/stable/handbrake/values.yaml index 03e17107924..f9bcab847bc 100644 --- a/charts/stable/handbrake/values.yaml +++ b/charts/stable/handbrake/values.yaml @@ -25,23 +25,43 @@ service: port: 10055 targetPort: 5900 +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-handbrake' + secret: VNC_PASSWORD: "" -env: - # General Settings - KEEP_APP_RUNNING: 0 - CLEAN_TMP_DIR: 1 - # GUI Settings + +handbrake: + KEEP_APP_RUNNING: false DISPLAY_WIDTH: 1280 DISPLAY_HEIGHT: 768 - SECURE_CONNECTION: 0 - # Automated Conversion Preset + SECURE_CONNECTION: false AUTOMATED_CONVERSION_PRESET: "General/Very Fast 1080p30" AUTOMATED_CONVERSION_FORMAT: "mp4" - AUTOMATED_CONVERSION_KEEP_SOURCE: 1 + AUTOMATED_CONVERSION_KEEP_SOURCE: true AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: "ignore" +configmap: + handbrake: + enabled: true + data: + KEEP_APP_RUNNING: "{{ ternary \"1\" \"0\" .Values.handbrake.KEEP_APP_RUNNING }}" + SECURE_CONNECTION: "{{ ternary \"1\" \"0\" .Values.handbrake.SECURE_CONNECTION }}" + DISPLAY_WIDTH: "{{ .Values.handbrake.DISPLAY_WIDTH }}" + DISPLAY_HEIGHT: "{{ .Values.handbrake.DISPLAY_HEIGHT }}" + AUTOMATED_CONVERSION_KEEP_SOURCE: "{{ ternary \"1\" \"0\" .Values.handbrake.AUTOMATED_CONVERSION_KEEP_SOURCE }}" + AUTOMATED_CONVERSION_PRESET: "{{ .Values.handbrake.AUTOMATED_CONVERSION_PRESET }}" + AUTOMATED_CONVERSION_FORMAT: "{{ .Values.handbrake.AUTOMATED_CONVERSION_FORMAT }}" + AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION: "{{ .Values.handbrake.AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION }}" + persistence: config: enabled: true mountPath: "/config" + storage: + enabled: true + mountPath: "/storage" + output: + enabled: true + mountPath: "/output" diff --git a/docs/apps/stable/handbrake/notes.md b/docs/apps/stable/handbrake/notes.md index e507480a36f..aeed1e47a26 100644 --- a/docs/apps/stable/handbrake/notes.md +++ b/docs/apps/stable/handbrake/notes.md @@ -1,7 +1,5 @@ # Installation Notes -- You HAVE to add `/output` and `/watch` container paths (using the Custom Storage Option), so you can use the automatic conversion feature and also be able to access the converted files (manual or automatic). - - If you enable `Reverse Proxy` for `Handbrake`, you need to have `SECURE_CONNECTION` set to `0` and `Port Type` set to `HTTP`, otherwise you may run into errors for `Too many redirects`. - `VNC` can't be `Reversed Proxied`. if you want to use `VNC`, you must set this service to `Simple` instead of `clusterIP`. - `VNC` with `SECURE_CONNECTION` set 1, only works with very few clients. One of them is `SSVNC`. diff --git a/docs/apps/stable/jdownloader2/notes.md b/docs/apps/stable/jdownloader2/notes.md new file mode 100644 index 00000000000..69a2d904ff9 --- /dev/null +++ b/docs/apps/stable/jdownloader2/notes.md @@ -0,0 +1,6 @@ +# Installation Notes + +- If you enable `Reverse Proxy` for `jDownloader2`, you need to have `SECURE_CONNECTION` set to `0` and `Port Type` set to `HTTP`, otherwise you may run into errors for `Too many redirects`. +- `VNC` can't be `Reversed Proxied`. if you want to use `VNC`, you must set this service to `Simple` instead of `clusterIP`. +- `VNC` with `SECURE_CONNECTION` set 1, only works with very few clients. One of them is `SSVNC`. +- `SECURE_CONNECTION` affects both `WebUI` and `VNC`.