diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dcd96ec3a3d..69ae5fb64c9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,3 +24,6 @@ collabora-online/ @stavros-k # Apps maintained by djs52 emby/ @djs52 + +# Apps maintained by luuknieuwdorp +syncthing/ @luuknieuwdorp diff --git a/stable/syncthing/2.1.0/.helmignore b/stable/syncthing/2.1.0/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/stable/syncthing/2.1.0/.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/stable/syncthing/2.1.0/CONFIG.md b/stable/syncthing/2.1.0/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/stable/syncthing/2.1.0/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/stable/syncthing/2.1.0/Chart.lock b/stable/syncthing/2.1.0/Chart.lock new file mode 100644 index 00000000000..ff0955c1154 --- /dev/null +++ b/stable/syncthing/2.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://truecharts.org/ + version: 2.1.4 +digest: sha256:85951db7a56787b48500476193e8301acf431a4b6e9b4a933760d278383eda37 +generated: "2021-04-10T18:23:17.38890308Z" diff --git a/stable/syncthing/2.1.0/Chart.yaml b/stable/syncthing/2.1.0/Chart.yaml new file mode 100644 index 00000000000..d7724e1e1d3 --- /dev/null +++ b/stable/syncthing/2.1.0/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: syncthing +version: 2.1.0 +# upstream_version: +appVersion: "auto" +description: P2P file synchronization application +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/stable/syncthing +icon: https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png +keywords: + - syncthing +sources: + - https://syncthing.net/ + - https://github.com/syncthing/syncthing + - https://hub.docker.com/r/syncthing/syncthing +dependencies: + - name: common + repository: https://truecharts.org/ + version: 2.1.4 + # condition: +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: luuknieuwdorp + email: luuk@nieuwdorp.me + url: nieuwdorp.me +# annotations: diff --git a/stable/syncthing/2.1.0/README.md b/stable/syncthing/2.1.0/README.md new file mode 100644 index 00000000000..b6080408089 --- /dev/null +++ b/stable/syncthing/2.1.0/README.md @@ -0,0 +1,54 @@ +# Introduction + +![Version: 1.15](https://img.shields.io/badge/Version-1.15-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Smart PVR for newsgroup and bittorrent users + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | common | 2.1.4 | + +## Installing the Chart + +To install the chart with the release name `syncthing` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `syncthing` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/stable/syncthing/2.1.0/app-readme.md b/stable/syncthing/2.1.0/app-readme.md new file mode 100644 index 00000000000..68591fa9fea --- /dev/null +++ b/stable/syncthing/2.1.0/app-readme.md @@ -0,0 +1,2 @@ +P2P file synchronization application +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/syncthing/2.1.0/charts/common-2.1.4.tgz b/stable/syncthing/2.1.0/charts/common-2.1.4.tgz new file mode 100644 index 00000000000..3da3da7e93b Binary files /dev/null and b/stable/syncthing/2.1.0/charts/common-2.1.4.tgz differ diff --git a/stable/syncthing/2.1.0/ix_values.yaml b/stable/syncthing/2.1.0/ix_values.yaml new file mode 100644 index 00000000000..6f5587867bc --- /dev/null +++ b/stable/syncthing/2.1.0/ix_values.yaml @@ -0,0 +1,15 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: 1.15 + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/stable/syncthing/2.1.0/questions.yaml b/stable/syncthing/2.1.0/questions.yaml new file mode 100644 index 00000000000..514bd92bfa6 --- /dev/null +++ b/stable/syncthing/2.1.0/questions.yaml @@ -0,0 +1,394 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure / service for container" + - name: "Storage and Devices" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resource Reservation" + description: "Specify resources to be allocated to workload" + - name: "Reverse Proxy Configuration" + description: "Reverse Proxy configuration" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" + +portals: + web_portal: + 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 + + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + + # Configure Time Zone + - variable: PUID + group: "Container Image" + label: "PUID" + description: "The UserID of the user running the application and owning the files" + schema: + type: int + default: 568 + + - variable: PGID + group: "Container Image" + label: "PGID" + description: "The groupID of the user/group running the application and owning the files" + schema: + type: int + default: 568 + + # Configure Enviroment Variables + - variable: environmentVariables + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + + - variable: services + group: "Networking" + label: "Configure Service" + schema: + type: dict + attrs: + - variable: main + label: "Main service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - variable: port + label: "Port configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - variable: port + label: "Container port" + schema: + type: int + default: 8384 + editable: false + hidden: true + - variable: targetport + label: "Internal Service port" + description: "When connecting internally to this App, you'll need this port" + schema: + type: int + default: 8384 + editable: false + hidden: true + # - variable: nodePort + # label: "Host nodePort to expose to (optional)" + # description: "Only gets used when nodePort is selected" + # schema: + # type: int + # min: 9000 + # max: 65535 + # default: 36052 + # required: true + +## TrueCharts Specific + + - variable: appVolumeMounts + label: "app storage" + group: "Storage and Devices" + schema: + type: dict + attrs: + - variable: storage + label: "storage dataset" + schema: + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: datasetName + label: "Dataset Name" + schema: + type: string + default: "config" + required: true + editable: false + hidden: true + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "/var/syncthing" + editable: false + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: additionalAppVolumeMounts + label: "Custom app storage" + group: "Storage and Devices" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: name + label: "Mountpoint Name" + schema: + type: string + default: "" + required: true + editable: true + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + + - variable: ingress + label: "" + group: "Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Web Reverse Proxy Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Web Reverse Proxy" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + label: "Reverse Proxy Type" + schema: + type: string + default: "HTTP" + hidden: true + editable: false + required: true + - variable: serviceName + label: "Service name to proxy to" + schema: + hidden: true + editable: false + type: string + default: "" + - variable: entrypoint + label: "Select Entrypoint" + schema: + type: string + default: "websecure" + required: true + enum: + - value: "websecure" + description: "Websecure: HTTPS/TLS port 443" + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "Domain Name" + required: true + schema: + type: string + - variable: path + label: "path" + schema: + type: string + required: true + hidden: true + default: "/" + - variable: certType + label: "Select Certificate Type" + schema: + type: string + default: "selfsigned" + enum: + - value: "" + description: "No Encryption/TLS/Certificates" + - value: "selfsigned" + description: "Self-Signed Certificate" + - value: "ixcert" + description: "TrueNAS SCALE Certificate" + - variable: certificate + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + show_if: [["certType", "=", "ixcert"]] + $ref: + - "definitions/certificate" + - variable: authForwardURL + label: "Forward Authentication URL" + schema: + type: string + default: "" diff --git a/stable/syncthing/2.1.0/templates/common.yaml b/stable/syncthing/2.1.0/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/stable/syncthing/2.1.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/stable/syncthing/2.1.0/test_values.yaml b/stable/syncthing/2.1.0/test_values.yaml new file mode 100644 index 00000000000..af8277ce160 --- /dev/null +++ b/stable/syncthing/2.1.0/test_values.yaml @@ -0,0 +1,28 @@ +# Default values for Syncthing. + +image: + repository: syncthing/syncthing + pullPolicy: IfNotPresent + tag: 1.15 + +strategy: + type: Recreate + +services: + main: + port: + port: 8384 + +persistence: + config: + enabled: false + emptyDir: false + +## TrueCharts Config + +appVolumeMounts: + storage: + enabled: true + emptyDir: true + setPermissions: true + mountPath: "/var/syncthing/" diff --git a/stable/syncthing/2.1.0/values.yaml b/stable/syncthing/2.1.0/values.yaml new file mode 100644 index 00000000000..58eb9c684b0 --- /dev/null +++ b/stable/syncthing/2.1.0/values.yaml @@ -0,0 +1 @@ +# This file is empty on purpose, as it should not be used with TrueNAS SCALE diff --git a/stable/syncthing/item.yaml b/stable/syncthing/item.yaml new file mode 100644 index 00000000000..62634b4252c --- /dev/null +++ b/stable/syncthing/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/syncthing/syncthing/main/assets/logo-128.png