From 67fc0c195824dedad6dc610e846139f9d22d1db8 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 10 Mar 2024 11:52:17 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- operators/openebs/3.4.1/ix_values.yaml | 9 +- operators/velero/4.4.2/app-changelog.md | 9 - stable/frigate/14.0.1/.helmignore | 30 + stable/frigate/14.0.1/CHANGELOG.md | 99 + stable/frigate/14.0.1/Chart.yaml | 39 + stable/frigate/14.0.1/README.md | 28 + stable/frigate/14.0.1/app-changelog.md | 9 + stable/frigate/14.0.1/app-readme.md | 8 + .../frigate/14.0.1/charts/common-19.0.0.tgz | Bin 0 -> 100013 bytes stable/frigate/14.0.1/ix_values.yaml | 101 + stable/frigate/14.0.1/questions.yaml | 3293 +++++++++++++++++ stable/frigate/14.0.1/templates/NOTES.txt | 1 + .../frigate/14.0.1/templates/_configmap.tpl | 43 + stable/frigate/14.0.1/templates/common.yaml | 17 + stable/frigate/14.0.1/values.yaml | 0 15 files changed, 3671 insertions(+), 15 deletions(-) delete mode 100644 operators/velero/4.4.2/app-changelog.md create mode 100644 stable/frigate/14.0.1/.helmignore create mode 100644 stable/frigate/14.0.1/CHANGELOG.md create mode 100644 stable/frigate/14.0.1/Chart.yaml create mode 100644 stable/frigate/14.0.1/README.md create mode 100644 stable/frigate/14.0.1/app-changelog.md create mode 100644 stable/frigate/14.0.1/app-readme.md create mode 100644 stable/frigate/14.0.1/charts/common-19.0.0.tgz create mode 100644 stable/frigate/14.0.1/ix_values.yaml create mode 100755 stable/frigate/14.0.1/questions.yaml create mode 100644 stable/frigate/14.0.1/templates/NOTES.txt create mode 100644 stable/frigate/14.0.1/templates/_configmap.tpl create mode 100644 stable/frigate/14.0.1/templates/common.yaml create mode 100644 stable/frigate/14.0.1/values.yaml diff --git a/operators/openebs/3.4.1/ix_values.yaml b/operators/openebs/3.4.1/ix_values.yaml index 8b9bb46482a..9b21caa5a23 100644 --- a/operators/openebs/3.4.1/ix_values.yaml +++ b/operators/openebs/3.4.1/ix_values.yaml @@ -1,11 +1,8 @@ image: pullPolicy: IfNotPresent - repository: tccr.io/tccr/alpine - tag: latest@sha256:ade0065e19edaa4f6903d464ee70605111a48394536deb94f31b661264704558 -manifestManager: - enabled: false -operator: - register: true + repository: tccr.io/tccr/scratch + tag: latest + portal: open: enabled: false diff --git a/operators/velero/4.4.2/app-changelog.md b/operators/velero/4.4.2/app-changelog.md deleted file mode 100644 index e63207caa11..00000000000 --- a/operators/velero/4.4.2/app-changelog.md +++ /dev/null @@ -1,9 +0,0 @@ - - -## [velero-4.4.2](https://github.com/truecharts/charts/compare/velero-4.4.1...velero-4.4.2) (2024-03-10) - -### Chore - - - -- move velero to operator train \ No newline at end of file diff --git a/stable/frigate/14.0.1/.helmignore b/stable/frigate/14.0.1/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/stable/frigate/14.0.1/.helmignore @@ -0,0 +1,30 @@ +# 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 +# docs folder +/docs +# icon +icon.png diff --git a/stable/frigate/14.0.1/CHANGELOG.md b/stable/frigate/14.0.1/CHANGELOG.md new file mode 100644 index 00000000000..5623977f5ea --- /dev/null +++ b/stable/frigate/14.0.1/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + + +*for the complete changelog, please refer to the website* + +**Important:** + + +## [frigate-14.0.1](https://github.com/truecharts/charts/compare/frigate-14.0.0...frigate-14.0.1) (2024-03-10) + +### Fix + + + +- Fix configmap for 0.13 ([#18967](https://github.com/truecharts/charts/issues/18967)) + + +## [frigate-14.0.0](https://github.com/truecharts/charts/compare/frigate-13.4.1...frigate-14.0.0) (2024-03-10) + +### Chore + + + +- update container image ghcr.io/blakeblackshear/frigate to v0.13.2 by renovate ([#17936](https://github.com/truecharts/charts/issues/17936)) + + +## [frigate-13.4.1](https://github.com/truecharts/charts/compare/frigate-13.4.0...frigate-13.4.1) (2024-03-07) + +### Chore + + + +- bump everything to trigger re-release + + +## [frigate-13.4.0](https://github.com/truecharts/charts/compare/frigate-13.3.0...frigate-13.4.0) (2024-03-07) + +### Chore + + + +- update container image common to v19.0.0[@eef2062](https://github.com/eef2062) by renovate ([#18956](https://github.com/truecharts/charts/issues/18956)) + + +## [frigate-13.3.0](https://github.com/truecharts/charts/compare/frigate-13.2.3...frigate-13.3.0) (2024-03-06) + +### Chore + + + +- update container image common to v18.2.0[@9e8b7d4](https://github.com/9e8b7d4) by renovate ([#18943](https://github.com/truecharts/charts/issues/18943)) + + +## [frigate-13.2.3](https://github.com/truecharts/charts/compare/frigate-13.2.2...frigate-13.2.3) (2024-03-05) + +### Chore + + + +- bump everything to force helm release again + + +## [frigate-13.2.2](https://github.com/truecharts/charts/compare/frigate-13.2.0...frigate-13.2.2) (2024-03-05) + +### Chore + + + +- force rereleases + +- update container image common to v18.1.6[@904d84b](https://github.com/904d84b) by renovate ([#18835](https://github.com/truecharts/charts/issues/18835)) + + + + + + + + + + +## [frigate-12.1.11](https://github.com/truecharts/charts/compare/frigate-12.1.10...frigate-12.1.11) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [frigate-12.1.10](https://github.com/truecharts/charts/compare/frigate-12.1.9...frigate-12.1.10) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) diff --git a/stable/frigate/14.0.1/Chart.yaml b/stable/frigate/14.0.1/Chart.yaml new file mode 100644 index 00000000000..7f81f083198 --- /dev/null +++ b/stable/frigate/14.0.1/Chart.yaml @@ -0,0 +1,39 @@ +annotations: + max_scale_version: 24.04.0 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: nvr + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.11" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.13.2 +dependencies: + - name: common + version: 19.0.0 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: NVR With Realtime Object Detection for IP Cameras +home: https://truecharts.org/charts/stable/frigate +icon: https://truecharts.org/img/hotlink-ok/chart-icons/frigate.png +keywords: + - encode + - nvr + - media + - frigate +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: frigate +sources: + - https://github.com/blakeblackshear/frigate + - https://github.com/truecharts/charts/tree/master/charts/stable/frigate + - https://ghcr.io/blakeblackshear/frigate +type: application +version: 14.0.1 diff --git a/stable/frigate/14.0.1/README.md b/stable/frigate/14.0.1/README.md new file mode 100644 index 00000000000..bb1903d80e7 --- /dev/null +++ b/stable/frigate/14.0.1/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/frigate) + +**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)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/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/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/stable/frigate/14.0.1/app-changelog.md b/stable/frigate/14.0.1/app-changelog.md new file mode 100644 index 00000000000..ad8ce23acdb --- /dev/null +++ b/stable/frigate/14.0.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [frigate-14.0.1](https://github.com/truecharts/charts/compare/frigate-14.0.0...frigate-14.0.1) (2024-03-10) + +### Fix + + + +- Fix configmap for 0.13 ([#18967](https://github.com/truecharts/charts/issues/18967)) \ No newline at end of file diff --git a/stable/frigate/14.0.1/app-readme.md b/stable/frigate/14.0.1/app-readme.md new file mode 100644 index 00000000000..2f2f6ddc7ff --- /dev/null +++ b/stable/frigate/14.0.1/app-readme.md @@ -0,0 +1,8 @@ +NVR With Realtime Object Detection for IP Cameras + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/frigate](https://truecharts.org/charts/stable/frigate) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/stable/frigate/14.0.1/charts/common-19.0.0.tgz b/stable/frigate/14.0.1/charts/common-19.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6b07782a3c25125ef32433d220f944bada8c7fec GIT binary patch literal 100013 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%0AHNyA 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

mw>7Dj2FGEc3;R~ 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%0AobVhfOc?j1+~A4K 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 z\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 F3;=difN=l- literal 0 HcmV?d00001 diff --git a/stable/frigate/14.0.1/ix_values.yaml b/stable/frigate/14.0.1/ix_values.yaml new file mode 100644 index 00000000000..77609964697 --- /dev/null +++ b/stable/frigate/14.0.1/ix_values.yaml @@ -0,0 +1,101 @@ +image: + repository: ghcr.io/blakeblackshear/frigate + pullPolicy: IfNotPresent + tag: 0.13.2@sha256:2906991ccad85035b176941f9dedfd35088ff710c39d45ef1baa9a49f2b16734 +tensorrtImage: + repository: ghcr.io/blakeblackshear/frigate + pullPolicy: IfNotPresent + tag: 0.13.2-tensorrt@sha256:07cc224cdf2feef0af9c860c044ac7ea0ac4adfca7f68b37dc3958bc3a3ee357 + +# When this is defined, the contents will be mounted +# as configmap into the container at /config/config.yml. +frigateConfig: {} +# -- https://docs.frigate.video/configuration/ +# mqtt: +# enabled: False +# cameras: +# dummy: +# enabled: False +# ffmpeg: +# inputs: +# - path: rtsp://127.0.0.1:554/rtsp +# roles: +# - detect + +workload: + main: + podSpec: + initContainers: + init-config: + enabled: "{{ not .Values.frigateConfig }}" + type: init + imageSelector: alpineImage + command: + - /bin/sh + - -c + - | + mkdir -p /config + if [ ! -f /config/config.yml ]; then + echo "Config file not found, copying dummy..." + cp /dummy-config/config.yml /config/config.yml + echo "Config file copied, you can now edit it at /config/config.yml" + else + echo "Config file found, you can edit it at /config/config.yml" + fi + +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10500 + protocol: http + targetPort: 5000 + rtmp: + enabled: true + ports: + rtmp: + enabled: true + port: 1935 + targetPort: 1935 + rtsp: + enabled: true + ports: + rtsp: + enabled: true + port: 8554 + targetPort: 8554 + webrtc: + enabled: true + ports: + webrtc-tcp: + enabled: true + port: 8555 + targetPort: 8555 + webrtc-udp: + enabled: true + port: 8555 + protocol: udp + targetPort: 8555 + +persistence: + media: + enabled: true + mountPath: /media + config: + enabled: true + mountPath: /config + targetSelector: + main: + main: {} + init-config: {} + +portal: + open: + enabled: true diff --git a/stable/frigate/14.0.1/questions.yaml b/stable/frigate/14.0.1/questions.yaml new file mode 100755 index 00000000000..2bbd14fa5ac --- /dev/null +++ b/stable/frigate/14.0.1/questions.yaml @@ -0,0 +1,3293 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - 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: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation + +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" + +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + + - variable: imageSelector + label: Select Image + schema: + type: string + default: image + enum: + - value: image + description: Base Image + - value: tensorrtImage + description: Image with TensorRT libraries for nvidia cards + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + 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: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + + - 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 and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - 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: 10500 + required: true + - variable: rtmp + label: RTMP Service + description: The service on which nodes connect to. + 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 and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: rtmp + label: RTMP 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: 1935 + required: true + - variable: rtsp + label: RTSP Service + description: The service on which nodes connect to. + 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 and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: rtsp + label: RTSP 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: 8554 + required: true + - variable: webrtc + label: WebRTC Service + description: The service on which nodes connect to. + 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 and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: webrtc-tcp + label: WebRTC (TCP) 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: 8555 + required: true + - variable: webrtc-udp + label: WebRTC (UDP) 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: 8555 + required: true + - variable: serviceexpert + group: Networking and Services + label: Show Expert Config + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + + - variable: scaleExternalInterface + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + 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: + additional_attrs: true + 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 + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + 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: 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 and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + 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: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + + - variable: media + label: App Media + description: Stores the Application Media and DB + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - variable: config + label: App Config + 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: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + 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 (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - 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: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - 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: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + 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: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - 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: [{path: "/", pathType: "Prefix"}] + 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: Path Type + schema: + type: string + required: true + default: Prefix + + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + + - 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: 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: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + 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: [] + show_if: [["certificateIssuer", "=", ""]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - 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 + # Settings from questions.yaml get appended here on a per-app basis + - 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 + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - 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 + # Settings from questions.yaml get appended here on a per-app basis + + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + 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/SCALE/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/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: 'gpu.intel.com/i915' + label: Add Intel i915 GPUs + schema: + type: int + default: 0 + - variable: 'nvidia.com/gpu' + label: Add NVIDIA GPUs (Experimental) + schema: + type: int + default: 0 + - variable: 'amd.com/gpu' + label: Add AMD GPUs + schema: + type: int + default: 0 + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + 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/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + 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: device + 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" + +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - 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: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - 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: IP Block + 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: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + 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: Match Expressions + 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: End 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: IP Block + 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: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + 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: Match Expressions + 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: End 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: 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: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "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: [{path: "/", pathType: "Prefix"}] + 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: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + 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: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 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 + + - 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: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - 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 IPv6 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: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - 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 + max_length: 10240 + + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true + diff --git a/stable/frigate/14.0.1/templates/NOTES.txt b/stable/frigate/14.0.1/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/frigate/14.0.1/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/frigate/14.0.1/templates/_configmap.tpl b/stable/frigate/14.0.1/templates/_configmap.tpl new file mode 100644 index 00000000000..140aa24e075 --- /dev/null +++ b/stable/frigate/14.0.1/templates/_configmap.tpl @@ -0,0 +1,43 @@ +{{/* Define the configmap */}} +{{- define "frigate.configmap" -}} +enabled: true +data: + config.yml: | + {{- if .Values.frigateConfig }} + {{- .Values.frigateConfig | toYaml | nindent 4 }} + {{- else }} + mqtt: + enabled: false + cameras: + dummy: + enabled: false + ffmpeg: + inputs: + - path: rtsp://127.0.0.1:554/rtsp + roles: + - detect + {{- end }} +{{- end -}} + +{{- define "frigate.configVolume" -}} +{{- $mountPath := "/dummy-config/config.yml" -}} +{{- if .Values.frigateConfig }} + {{- $mountPath = "/config/config.yaml" -}} +{{- end }} +enabled: true +type: configmap +objectName: frigate-config +items: + - key: config.yml + path: config.yml +targetSelector: + main: + main: + subPath: config.yml + mountPath: {{ $mountPath }} + readOnly: true + init-config: + subPath: config.yml + mountPath: {{ $mountPath }} + readOnly: true +{{- end -}} diff --git a/stable/frigate/14.0.1/templates/common.yaml b/stable/frigate/14.0.1/templates/common.yaml new file mode 100644 index 00000000000..2b554743aec --- /dev/null +++ b/stable/frigate/14.0.1/templates/common.yaml @@ -0,0 +1,17 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render configmap for frigate */}} +{{- $config := include "frigate.configmap" . | fromYaml -}} +{{- if $config -}} + {{- $_ := set .Values.configmap "frigate-config" $config -}} +{{- end -}} + + +{{- $vol := include "frigate.configVolume" . | fromYaml -}} +{{- if $vol -}} + {{- $_ := set .Values.persistence "frigate-config" $vol -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/frigate/14.0.1/values.yaml b/stable/frigate/14.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d