From 79dbdbc8d8f1fbe3be0514142f39cdd51380f93c Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 27 Jul 2022 13:30:51 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/autobrr/0.0.1/CHANGELOG.md | 11 + incubator/autobrr/0.0.1/Chart.lock | 6 + incubator/autobrr/0.0.1/Chart.yaml | 28 + incubator/autobrr/0.0.1/README.md | 107 + incubator/autobrr/0.0.1/app-readme.md | 8 + .../autobrr/0.0.1/charts/common-10.4.8.tgz | Bin 0 -> 47357 bytes incubator/autobrr/0.0.1/ix_values.yaml | 49 + incubator/autobrr/0.0.1/questions.yaml | 2420 +++++++++++++++++ incubator/autobrr/0.0.1/templates/common.yaml | 1 + incubator/autobrr/0.0.1/values.yaml | 0 incubator/autobrr/item.yaml | 4 + 11 files changed, 2634 insertions(+) create mode 100644 incubator/autobrr/0.0.1/CHANGELOG.md create mode 100644 incubator/autobrr/0.0.1/Chart.lock create mode 100644 incubator/autobrr/0.0.1/Chart.yaml create mode 100644 incubator/autobrr/0.0.1/README.md create mode 100644 incubator/autobrr/0.0.1/app-readme.md create mode 100644 incubator/autobrr/0.0.1/charts/common-10.4.8.tgz create mode 100644 incubator/autobrr/0.0.1/ix_values.yaml create mode 100644 incubator/autobrr/0.0.1/questions.yaml create mode 100644 incubator/autobrr/0.0.1/templates/common.yaml create mode 100644 incubator/autobrr/0.0.1/values.yaml create mode 100644 incubator/autobrr/item.yaml diff --git a/incubator/autobrr/0.0.1/CHANGELOG.md b/incubator/autobrr/0.0.1/CHANGELOG.md new file mode 100644 index 00000000000..78228da4b88 --- /dev/null +++ b/incubator/autobrr/0.0.1/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + + + +## [autobrr-0.0.1]autobrr-0.0.1 (2022-07-27) + +### Feat + +- Add autobrr ([#3309](https://github.com/truecharts/apps/issues/3309)) + + \ No newline at end of file diff --git a/incubator/autobrr/0.0.1/Chart.lock b/incubator/autobrr/0.0.1/Chart.lock new file mode 100644 index 00000000000..4b214079b7a --- /dev/null +++ b/incubator/autobrr/0.0.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.4.8 +digest: sha256:57e44481adb7fd605739fb266e38ae0c04f147ec6de12d4423545322e1461bad +generated: "2022-07-27T13:25:28.596482267Z" diff --git a/incubator/autobrr/0.0.1/Chart.yaml b/incubator/autobrr/0.0.1/Chart.yaml new file mode 100644 index 00000000000..b23b1f0442d --- /dev/null +++ b/incubator/autobrr/0.0.1/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: autobrr +version: 0.0.1 +appVersion: "1.1.0" +description: The modern download automation tool for torrents. +type: application +deprecated: false +home: https://github.com/truecharts/charts/tree/master/charts/incubator/autobrr +icon: https://truecharts.org/img/chart-icons/autobrr.png +keywords: + - autobrr + - torrent +sources: + - https://github.com/autobrr/autobrr +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.4.8 +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/autobrr/0.0.1/README.md b/incubator/autobrr/0.0.1/README.md new file mode 100644 index 00000000000..e77f83e79e7 --- /dev/null +++ b/incubator/autobrr/0.0.1/README.md @@ -0,0 +1,107 @@ +# autobrr + +![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.1.0](https://img.shields.io/badge/AppVersion-1.1.0-informational?style=flat-square) + +The modern download automation tool for torrents. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [autobrr](https://truecharts.org/docs/charts/stable/autobrr) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.4.8 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/Quick-Start%20Guides/02-Installing-an-App/). + +### Helm + +To install the chart with the release name `autobrr` + +```console +helm repo add TrueCharts https://helm.truecharts.org +helm repo update +helm install autobrr TrueCharts/autobrr +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/Quick-Start%20Guides/04-Upgrade-rollback-delete-an-App/). + +### Helm + +To uninstall the `autobrr` deployment + +```console +helm uninstall autobrr +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the Commandline + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install autobrr \ + --set env.TZ="America/New York" \ + TrueCharts/autobrr +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install autobrr TrueCharts/autobrr -f values.yaml +``` + +#### Connecting to other apps + +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our [Linking Apps Internally](https://truecharts.org/docs/manual/Quick-Start%20Guides/06-linking-apps/) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/autobrr/0.0.1/app-readme.md b/incubator/autobrr/0.0.1/app-readme.md new file mode 100644 index 00000000000..24182c004bb --- /dev/null +++ b/incubator/autobrr/0.0.1/app-readme.md @@ -0,0 +1,8 @@ +The modern download automation tool for torrents. + +This App is supplied by TrueCharts, for more information visit the manual: https://truecharts.org/charts/incubator/autobrr + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/autobrr/0.0.1/charts/common-10.4.8.tgz b/incubator/autobrr/0.0.1/charts/common-10.4.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e7ddaf2da570bef08d695e2efa887fc5c127337c GIT binary patch literal 47357 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 F1OU@}Y}Eh& literal 0 HcmV?d00001 diff --git a/incubator/autobrr/0.0.1/ix_values.yaml b/incubator/autobrr/0.0.1/ix_values.yaml new file mode 100644 index 00000000000..e9b61dd0960 --- /dev/null +++ b/incubator/autobrr/0.0.1/ix_values.yaml @@ -0,0 +1,49 @@ +image: + repository: ghcr.io/autobrr/autobrr + pullPolicy: IfNotPresent + tag: v1.1.0@sha256:6d3a723c7160b837a132acf5e52582bf28efa88b72298227d106bb8728daa553 + +service: + main: + ports: + main: + protocol: HTTP + port: 7474 + targetPort: 7474 + +probes: + liveness: + enabled: true + custom: true + spec: + exec: + command: + - /bin/sh + - -c + - curl --fail localhost:7474/ + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + readiness: + enabled: true + custom: true + spec: + exec: + command: + - /bin/sh + - -c + - curl --fail localhost:7474/ + failureThreshold: 5 + initialDelaySeconds: 60 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + startup: + enabled: false + +persistence: + config: + enabled: true + mountPath: "/config" diff --git a/incubator/autobrr/0.0.1/questions.yaml b/incubator/autobrr/0.0.1/questions.yaml new file mode 100644 index 00000000000..d8131a73803 --- /dev/null +++ b/incubator/autobrr/0.0.1/questions.yaml @@ -0,0 +1,2420 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Middlewares" + description: "Traefik Middlewares" + - name: "Metrics" + description: "Metrics" + - name: "Addons" + description: "Addon Configuration" + - name: "Advanced" + description: "Advanced Configuration" +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 + - variable: global + label: "global settings" + group: "Controller" + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: "flag this is SCALE" + schema: + type: boolean + default: true + hidden: true + - 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" + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: "Extra Args" + schema: + type: list + default: [] + items: + - variable: arg + label: "arg" + schema: + type: string + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: TZ + label: "Timezone" + group: "Container Configuration" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: expertpodconf + group: "Container Configuration" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: "Enable TTY" + description: "Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled." + group: "Workload Details" + schema: + type: boolean + default: false + - variable: stdin + label: "Enable STDIN" + description: "Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled." + group: "Workload Details" + schema: + type: boolean + default: false + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - 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: + - 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, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "Simple" + enum: + - value: "Simple" + description: "Simple" + - value: "ClusterIP" + description: "ClusterIP" + - value: "NodePort" + description: "NodePort (Advanced)" + - value: "LoadBalancer" + description: "LoadBalancer (Advanced)" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ipFamilyPolicy + label: "IP Family Policy" + description: "(Advanced) Specify the ip policy" + schema: + show_if: [["type", "!=", "Simple"]] + type: string + default: "SingleStack" + enum: + - value: "SingleStack" + description: "SingleStack" + - value: "PreferDualStack" + description: "PreferDualStack" + - value: "RequireDualStack" + description: "RequireDualStack" + - variable: ipFamilies + label: "(advanced) IP families" + description: "(advanced) The ip families that should be used" + schema: + show_if: [["type", "!=", "Simple"]] + type: list + default: [] + items: + - variable: ipFamily + label: "IP family" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - 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: 7474 + 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: 7474 + + - 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 + - variable: externalInterfaces + description: "Add External Interfaces" + label: "Add external Interfaces" + group: "Networking" + schema: + type: list + items: + - variable: interfaceConfiguration + description: "Interface Configuration" + label: "Interface Configuration" + schema: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: "Please specify host interface" + label: "Host Interface" + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: "Define how IP Address will be managed" + label: "IP Address Management" + schema: + type: dict + required: true + attrs: + - variable: type + description: "Specify type for IPAM" + label: "IPAM Type" + schema: + type: string + required: true + enum: + - value: "dhcp" + description: "Use DHCP" + - value: "static" + description: "Use static IP" + show_subquestions_if: "static" + subquestions: + - variable: staticIPConfigurations + label: "Static IP Addresses" + schema: + type: list + items: + - variable: staticIP + label: "Static IP" + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: "Static Routes" + schema: + type: list + items: + - variable: staticRouteConfiguration + label: "Static Route Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: "Destination" + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: "Gateway" + schema: + type: ipaddr + cidr: false + required: true + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + - variable: serviceList + label: "Add Manual Custom Services" + group: "Networking and Services" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "Simple" + enum: + - value: "Simple" + description: "Simple" + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + - 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" + - value: "nfs" + description: "NFS Share" + - variable: server + label: "NFS server" + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: "Path on NFS server" + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: true + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPathSimple + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "999Gi" + - variable: hostPathType + label: "(Advanced) hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: storageClass + label: "(Advanced) storageClass" + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: accessMode + label: "(Advanced) Access Mode" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: advanced + label: "Show Advanced Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name (optional)" + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simpleHP" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" + - value: "nfs" + description: "NFS Share" + - variable: server + label: "NFS server" + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: "Path on NFS server" + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: true + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPathSimple + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "999Gi" + - variable: hostPathType + label: "(Advanced) hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: storageClass + label: "(Advanced) storageClass" + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: accessMode + label: "(Advanced) Access Mode" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: advanced + label: "Show Advanced Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: "These middlewares enforce a number of best practices." + label: "Enable Default Middlewares" + schema: + type: boolean + default: true + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: ingressList + label: "Add Manual Custom Ingresses" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + - variable: security + label: "Container Security Settings" + group: "Security and Permissions" + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: "Change PUID / UMASK values" + description: "By enabling this you override default set values." + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: PUID + label: "Process User ID - PUID" + description: "When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "When supported by the container, this sets the UMASK for tha App. Not supported by all Apps" + schema: + type: string + default: "002" + - 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 + - variable: capabilities + label: "Capabilities" + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: "Drop Capability" + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: "Add Capability" + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + + - variable: advancedresources + label: "Set Custom Resource Limits/Requests (Advanced)" + group: "Resources and Devices" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: "Advanced Limit Resource Consumption" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: "CPU" + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/indepth/validation/" + schema: + type: string + default: "4000m" + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/indepth/validation/" + schema: + type: string + default: "8Gi" + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: "CPU" + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/indepth/validation/" + schema: + type: string + default: "10m" + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/indepth/validation/" + schema: + type: string + default: "50Mi" + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + + - variable: deviceList + label: "Mount USB devices" + group: "Resources and Devices" + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: "Device" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "Host Device Path" + description: "Path to the device on the host system" + schema: + type: path + - variable: mountPath + label: "Container Device Path" + description: "Path inside the container the device is mounted" + schema: + type: string + default: "/dev/ttyACM0" + + # Specify GPU configuration + - variable: scaleGPU + label: "GPU Configuration" + group: "Resources and Devices" + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] +# - variable: autoscaling +# group: "Advanced" +# label: "(Advanced) Horizontal Pod Autoscaler" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: enabled +# label: "enabled" +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: "Target" +# description: "deployment name, defaults to main deployment" +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: "Minimum Replicas" +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: "Maximum Replicas" +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: "Target CPU Utilization Percentage" +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: "Target Memory Utilization Percentage" +# schema: +# type: int +# default: 80 +# - variable: networkPolicy +# group: "Advanced" +# label: "(Advanced) Network Policy" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: enabled +# label: "enabled" +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: policyType +# label: "Policy Type" +# schema: +# type: string +# default: "" +# enum: +# - value: "" +# description: "Default" +# - value: "ingress" +# description: "Ingress" +# - value: "egress" +# description: "Egress" +# - value: "ingress-egress" +# description: "Ingress and Egress" +# - variable: egress +# label: "Egress" +# schema: +# type: list +# default: [] +# items: +# - variable: egressEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: to +# label: "To" +# schema: +# type: list +# default: [] +# items: +# - variable: toEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: ipBlock +# label: "ipBlock" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: cidr +# label: "cidr" +# schema: +# type: string +# default: "" +# - variable: except +# label: "except" +# schema: +# type: list +# default: [] +# items: +# - variable: exceptint +# label: "" +# schema: +# type: string +# - variable: namespaceSelector +# label: "namespaceSelector" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: matchExpressions +# label: "matchExpressions" +# schema: +# type: list +# default: [] +# items: +# - variable: expressionEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: key +# label: "Key" +# schema: +# type: string +# - variable: operator +# label: "operator" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "In" +# description: "In" +# - value: "NotIn" +# description: "NotIn" +# - value: "Exists " +# description: "Exists " +# - value: "DoesNotExist " +# description: "DoesNotExist " +# - variable: values +# label: "values" +# schema: +# type: list +# default: [] +# items: +# - variable: value +# label: "" +# schema: +# type: string +# - variable: podSelector +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: matchExpressions +# label: "matchExpressions" +# schema: +# type: list +# default: [] +# items: +# - variable: expressionEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: key +# label: "Key" +# schema: +# type: string +# - variable: operator +# label: "operator" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "In" +# description: "In" +# - value: "NotIn" +# description: "NotIn" +# - value: "Exists " +# description: "Exists " +# - value: "DoesNotExist " +# description: "DoesNotExist " +# - variable: values +# label: "values" +# schema: +# type: list +# default: [] +# items: +# - variable: value +# label: "" +# schema: +# type: string +# - variable: ports +# label: "Ports" +# schema: +# type: list +# default: [] +# items: +# - variable: portsEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: port +# label: "port" +# schema: +# type: int +# - variable: endPort +# label: "port" +# schema: +# type: int +# - variable: protocol +# label: "Protocol" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "TCP" +# description: "TCP" +# - value: "UDP" +# description: "UDP" +# - value: "SCTP" +# description: "SCTP" +# - variable: ingress +# label: "Ingress" +# schema: +# type: list +# default: [] +# items: +# - variable: ingressEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: from +# label: "From" +# schema: +# type: list +# default: [] +# items: +# - variable: fromEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: ipBlock +# label: "ipBlock" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: cidr +# label: "cidr" +# schema: +# type: string +# default: "" +# - variable: except +# label: "except" +# schema: +# type: list +# default: [] +# items: +# - variable: exceptint +# label: "" +# schema: +# type: string +# - variable: namespaceSelector +# label: "namespaceSelector" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: matchExpressions +# label: "matchExpressions" +# schema: +# type: list +# default: [] +# items: +# - variable: expressionEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: key +# label: "Key" +# schema: +# type: string +# - variable: operator +# label: "operator" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "In" +# description: "In" +# - value: "NotIn" +# description: "NotIn" +# - value: "Exists " +# description: "Exists " +# - value: "DoesNotExist " +# description: "DoesNotExist " +# - variable: values +# label: "values" +# schema: +# type: list +# default: [] +# items: +# - variable: value +# label: "" +# schema: +# type: string +# - variable: podSelector +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: matchExpressions +# label: "matchExpressions" +# schema: +# type: list +# default: [] +# items: +# - variable: expressionEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: key +# label: "Key" +# schema: +# type: string +# - variable: operator +# label: "operator" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "In" +# description: "In" +# - value: "NotIn" +# description: "NotIn" +# - value: "Exists " +# description: "Exists " +# - value: "DoesNotExist " +# description: "DoesNotExist " +# - variable: values +# label: "values" +# schema: +# type: list +# default: [] +# items: +# - variable: value +# label: "" +# schema: +# type: string +# - variable: ports +# label: "Ports" +# schema: +# type: list +# default: [] +# items: +# - variable: portsEntry +# label: "" +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: port +# label: "port" +# schema: +# type: int +# - variable: endPort +# label: "port" +# schema: +# type: int +# - variable: protocol +# label: "Protocol" +# schema: +# type: string +# default: "TCP" +# enum: +# - value: "TCP" +# description: "TCP" +# - value: "UDP" +# description: "UDP" +# - value: "SCTP" +# description: "SCTP" + + - variable: addons + group: "Addons" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: vpn + label: "VPN" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type" + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: "disabled" + - value: "openvpn" + description: "OpenVPN" + - value: "wireguard" + description: "Wireguard" + - variable: openvpn + label: "OpenVPN Settings" + schema: + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: "authentication username" + description: "authentication username, optional" + schema: + type: string + default: "" + - variable: password + label: "authentication password" + description: "authentication credentials" + schema: + type: string + default: "" + required: true + - variable: killSwitch + label: "Enable killswitch" + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: "Killswitch Excluded IPv4 networks" + description: "list of killswitch excluded ipv4 addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: "IPv4 Network" + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: "Killswitch Excluded IPv6 networks" + description: "list of killswitch excluded ipv4 addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: "IPv6 Network" + schema: + type: string + required: true + + - variable: configFile + label: "VPN Config File Location" + schema: + type: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "type" + schema: + type: string + default: "hostPath" + hidden: true + - variable: hostPathType + label: "hostPathType" + schema: + type: string + default: "File" + hidden: true + - variable: noMount + label: "noMount" + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: "Full path to file" + description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + default: "" + required: true + - variable: envList + label: "VPN environment Variables" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + required: true + + - variable: codeserver + label: "Codeserver" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: git + label: "Git Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: "Raw SSH private key" + label: "deployKey" + schema: + type: string + - variable: deployKeyBase64 + description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" + label: "deployKeyBase64" + schema: + type: string + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: nodePort + description: "leave empty to disable" + label: "nodePort" + schema: + type: int + default: 36107 + - variable: envList + label: "Codeserver environment Variables" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + required: true + + + - variable: promtail + label: "Promtail" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: "Loki URL" + schema: + type: string + required: true + - variable: logs + label: "Log Paths" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: path + label: "Path" + schema: + type: string + required: true + - variable: args + label: "Promtail ecommand line arguments" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: "Arg" + schema: + type: string + required: true + - variable: envList + label: "Promtail environment Variables" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + required: true + + + + + - variable: netshoot + label: "Netshoot" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: "Netshoot environment Variables" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + required: true diff --git a/incubator/autobrr/0.0.1/templates/common.yaml b/incubator/autobrr/0.0.1/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/incubator/autobrr/0.0.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/incubator/autobrr/0.0.1/values.yaml b/incubator/autobrr/0.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/autobrr/item.yaml b/incubator/autobrr/item.yaml new file mode 100644 index 00000000000..a705c510318 --- /dev/null +++ b/incubator/autobrr/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/chart-icons/autobrr.png +categories: +- media +