From 0ca0f72feb3f97bd3fa1fd70a212154cbb73edb5 Mon Sep 17 00:00:00 2001 From: sagit <36596628+Sagit-chu@users.noreply.github.com> Date: Thu, 10 Mar 2022 15:57:13 +0800 Subject: [PATCH] feat(flexget): Add flexget (#2117) * add flexget * change permission to 568 * change img tag * change version * Update charts/incubator/flexget/values.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update docs/manual/default-ports.md Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/flexget/values.yaml * Adapt to the new container * change port * Update charts/incubator/flexget/values.yaml * Update charts/incubator/flexget/values.yaml * Update charts/incubator/flexget/questions.yaml * Update charts/incubator/flexget/values.yaml * Update charts/incubator/flexget/values.yaml * Update charts/incubator/flexget/values.yaml * Update charts/incubator/flexget/values.yaml * change icon * Update charts/incubator/flexget/Chart.yaml * change sources Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> --- charts/incubator/flexget/.helmignore | 24 ++ charts/incubator/flexget/Chart.yaml | 29 ++ charts/incubator/flexget/questions.yaml | 364 ++++++++++++++++++ .../incubator/flexget/templates/common.yaml | 1 + charts/incubator/flexget/values.yaml | 36 ++ docs/_static/img/appicons/flexget.png | Bin 0 -> 4603 bytes docs/manual/default-ports.md | 1 + 7 files changed, 455 insertions(+) create mode 100644 charts/incubator/flexget/.helmignore create mode 100644 charts/incubator/flexget/Chart.yaml create mode 100644 charts/incubator/flexget/questions.yaml create mode 100644 charts/incubator/flexget/templates/common.yaml create mode 100644 charts/incubator/flexget/values.yaml create mode 100644 docs/_static/img/appicons/flexget.png diff --git a/charts/incubator/flexget/.helmignore b/charts/incubator/flexget/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/charts/incubator/flexget/.helmignore @@ -0,0 +1,24 @@ +# 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 diff --git a/charts/incubator/flexget/Chart.yaml b/charts/incubator/flexget/Chart.yaml new file mode 100644 index 00000000000..d184f71e548 --- /dev/null +++ b/charts/incubator/flexget/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "latest" +dependencies: +- name: common + repository: https://truecharts.org + version: 9.1.2 +deprecated: false +description: FlexGet is a multipurpose automation tool for all of your media +home: https://github.com/truecharts/apps/tree/master/charts/stable/flexget +icon: https://truecharts.org/_static/img/appicons/flexget.png +keywords: +- flexget +- automation +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: flexget +sources: +- https://hub.docker.com/r/wiserain/flexget +- https://github.com/wiserain/docker-flexget +type: application +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/flexget/questions.yaml b/charts/incubator/flexget/questions.yaml new file mode 100644 index 00000000000..e7be9f7f25d --- /dev/null +++ b/charts/incubator/flexget/questions.yaml @@ -0,0 +1,364 @@ +# Include{groups} +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + additional_attrs: true + type: dict + attrs: + - variable: FG_WEBUI_PASSWD + label: "FG_WEBUI_PASSWD" + schema: + type: string + required: true + private: true + default: "REPLACETHIS" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + 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" + schema: + type: int + default: 10174 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 5050 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + 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: data + label: "App Data Storage" + description: "Stores the Application Data." + 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} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + 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" + schema: + type: int + default: 0 + - 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} diff --git a/charts/incubator/flexget/templates/common.yaml b/charts/incubator/flexget/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/flexget/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/flexget/values.yaml b/charts/incubator/flexget/values.yaml new file mode 100644 index 00000000000..fe9cb8eab59 --- /dev/null +++ b/charts/incubator/flexget/values.yaml @@ -0,0 +1,36 @@ +image: + repository: wiserain/flexget + pullPolicy: IfNotPresent + tag: 3.3.2@sha256:5a38f9587d298e923eb828d73c33cac3691bc3b3b8f06508db9e394e0270960c + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10174 + targetPort: 5050 + +env: + FG_LOG_LEVEL: info + FG_LOG_FILE: flexget.log + +secret: + FG_WEBUI_PASSWD: "jLeT78KBDPW" + + +persistence: + config: + enabled: true + mountPath: "/config" + + data: + enabled: true + mountPath: "/data" diff --git a/docs/_static/img/appicons/flexget.png b/docs/_static/img/appicons/flexget.png new file mode 100644 index 0000000000000000000000000000000000000000..5f94f1435ff96b3c7f81d9c190874d2c4ceed5cf GIT binary patch literal 4603 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 Ns>1>MT039n{{cV(JZk^| literal 0 HcmV?d00001 diff --git a/docs/manual/default-ports.md b/docs/manual/default-ports.md index b5fdae36dc4..04932b196d1 100644 --- a/docs/manual/default-ports.md +++ b/docs/manual/default-ports.md @@ -331,6 +331,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa | redmine | main | main | 10171 | HTTP | | | matomo | main | main | 10172 | HTTP | | | matomo | https | https | 10173 | HTTPS | | +| flexget | main | main | 10174 | HTTP | | | storj-node | main | main | 14002 | TCP | | | satisfactory | beacon | beacon | 15000 | UDP | | | satisfactory | query | query | 15777 | UDP | |