From 1cd524442d04e9d0f32d3df2fc2483e96a9465e3 Mon Sep 17 00:00:00 2001 From: sagit <36596628+Sagit-chu@users.noreply.github.com> Date: Sun, 6 Mar 2022 00:15:10 +0800 Subject: [PATCH] feat(ddns-go):add ddns-go (#2004) * create ddns-go * update image tag * update tag and commom version * Update charts/incubator/ddns-go/questions.yaml * Update charts/incubator/ddns-go/questions.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> --- charts/incubator/ddns-go/.helmignore | 26 ++ charts/incubator/ddns-go/Chart.yaml | 29 ++ charts/incubator/ddns-go/questions.yaml | 307 ++++++++++++++++++ .../incubator/ddns-go/templates/common.yaml | 1 + charts/incubator/ddns-go/values.yaml | 18 + docs/_static/img/appicons/ddns-go.png | Bin 0 -> 22281 bytes docs/manual/default-ports.md | 1 + 7 files changed, 382 insertions(+) create mode 100644 charts/incubator/ddns-go/.helmignore create mode 100644 charts/incubator/ddns-go/Chart.yaml create mode 100644 charts/incubator/ddns-go/questions.yaml create mode 100644 charts/incubator/ddns-go/templates/common.yaml create mode 100644 charts/incubator/ddns-go/values.yaml create mode 100644 docs/_static/img/appicons/ddns-go.png diff --git a/charts/incubator/ddns-go/.helmignore b/charts/incubator/ddns-go/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/ddns-go/.helmignore @@ -0,0 +1,26 @@ +# 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 diff --git a/charts/incubator/ddns-go/Chart.yaml b/charts/incubator/ddns-go/Chart.yaml new file mode 100644 index 00000000000..956836495bd --- /dev/null +++ b/charts/incubator/ddns-go/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: ddns-go +version: 0.0.1 +appVersion: 1.0.0 +description: Automatically obtain your public network IPv4 or IPv6 address and resolve it to the corresponding domain name service +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/alist +icon: https://truecharts.org/_static/img/appicons/ddns-go.png +keywords: + - ddns-go + - ddns +sources: + - https://github.com/jeessy2/ddns-go +dependencies: +- name: common + repository: https://truecharts.org + version: 9.0.0 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - cloud + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/ddns-go/questions.yaml b/charts/incubator/ddns-go/questions.yaml new file mode 100644 index 00000000000..9d5806108a6 --- /dev/null +++ b/charts/incubator/ddns-go/questions.yaml @@ -0,0 +1,307 @@ +# 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} + +# 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: 10168 + 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: 9876 + + - 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: 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: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true +# 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: 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} diff --git a/charts/incubator/ddns-go/templates/common.yaml b/charts/incubator/ddns-go/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/ddns-go/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/ddns-go/values.yaml b/charts/incubator/ddns-go/values.yaml new file mode 100644 index 00000000000..9a756dfe394 --- /dev/null +++ b/charts/incubator/ddns-go/values.yaml @@ -0,0 +1,18 @@ +image: + repository: tccr.io/truecharts/ddns-go + pullPolicy: IfNotPresent + tag: v3.5.0@sha256:47126c3903118731d3958c7fb9a81c1beb762645c5f77137835bffa9b95a728e + +env: {} + +service: + main: + ports: + main: + targetPort: 9876 + port: 10168 + +persistence: + data: + enabled: true + mountPath: "/root" diff --git a/docs/_static/img/appicons/ddns-go.png b/docs/_static/img/appicons/ddns-go.png new file mode 100644 index 0000000000000000000000000000000000000000..7d26ddc9ccdb61a3c7d1117e74bec7d9bb6970fb GIT binary patch literal 22281 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