From 9c6cee7636954ac98bddb60b66060cad15eaa33c Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sat, 3 Sep 2022 08:07:59 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/zwavejs2mqtt/11.0.36/CHANGELOG.md | 99 + stable/zwavejs2mqtt/11.0.36/Chart.lock | 6 + stable/zwavejs2mqtt/11.0.36/Chart.yaml | 32 + stable/zwavejs2mqtt/11.0.36/README.md | 109 + stable/zwavejs2mqtt/11.0.36/app-readme.md | 8 + .../11.0.36/charts/common-10.5.6.tgz | Bin 0 -> 48176 bytes stable/zwavejs2mqtt/11.0.36/ix_values.yaml | 85 + stable/zwavejs2mqtt/11.0.36/questions.yaml | 2620 +++++++++++++++++ .../11.0.36/templates/common.yaml | 1 + stable/zwavejs2mqtt/11.0.36/values.yaml | 0 10 files changed, 2960 insertions(+) create mode 100644 stable/zwavejs2mqtt/11.0.36/CHANGELOG.md create mode 100644 stable/zwavejs2mqtt/11.0.36/Chart.lock create mode 100644 stable/zwavejs2mqtt/11.0.36/Chart.yaml create mode 100644 stable/zwavejs2mqtt/11.0.36/README.md create mode 100644 stable/zwavejs2mqtt/11.0.36/app-readme.md create mode 100644 stable/zwavejs2mqtt/11.0.36/charts/common-10.5.6.tgz create mode 100644 stable/zwavejs2mqtt/11.0.36/ix_values.yaml create mode 100644 stable/zwavejs2mqtt/11.0.36/questions.yaml create mode 100644 stable/zwavejs2mqtt/11.0.36/templates/common.yaml create mode 100644 stable/zwavejs2mqtt/11.0.36/values.yaml diff --git a/stable/zwavejs2mqtt/11.0.36/CHANGELOG.md b/stable/zwavejs2mqtt/11.0.36/CHANGELOG.md new file mode 100644 index 00000000000..fce7eb3dd20 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/CHANGELOG.md @@ -0,0 +1,99 @@ +# Changelog + + + +## [zwavejs2mqtt-11.0.36](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.35...zwavejs2mqtt-11.0.36) (2022-09-03) + +### Chore + +- update container image tccr.io/truecharts/zwavejs2mqtt to v7.0.0 ([#3670](https://github.com/truecharts/charts/issues/3670)) + + + + +## [zwavejs2mqtt-11.0.35](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.33...zwavejs2mqtt-11.0.35) (2022-08-30) + +### Chore + +- Auto-update chart README [skip ci] + - update helm general non-major ([#3639](https://github.com/truecharts/charts/issues/3639)) + - update helm chart common to v10.5.5 ([#3626](https://github.com/truecharts/charts/issues/3626)) + + + + +## [zwavejs2mqtt-11.0.34](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.33...zwavejs2mqtt-11.0.34) (2022-08-30) + +### Chore + +- update helm chart common to v10.5.5 ([#3626](https://github.com/truecharts/charts/issues/3626)) + + + + +## [zwavejs2mqtt-11.0.33](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.32...zwavejs2mqtt-11.0.33) (2022-08-30) + +### Chore + +- update docker general non-major ([#3623](https://github.com/truecharts/charts/issues/3623)) + + + + +## [zwavejs2mqtt-11.0.32](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.31...zwavejs2mqtt-11.0.32) (2022-08-29) + +### Chore + +- update helm general non-major ([#3619](https://github.com/truecharts/charts/issues/3619)) + + + + +## [zwavejs2mqtt-11.0.31](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.30...zwavejs2mqtt-11.0.31) (2022-08-23) + +### Chore + +- update helm general non-major helm releases ([#3545](https://github.com/truecharts/charts/issues/3545)) + + + + +## [zwavejs2mqtt-11.0.30](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.29...zwavejs2mqtt-11.0.30) (2022-08-14) + +### Chore + +- update docker general non-major docker tags ([#3465](https://github.com/truecharts/charts/issues/3465)) + + + + +## [zwavejs2mqtt-11.0.29](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.28...zwavejs2mqtt-11.0.29) (2022-08-12) + +### Chore + +- add documentation checkbox/section to all SCALE Apps + - update helm general non-major helm releases ([#3456](https://github.com/truecharts/charts/issues/3456)) + + ### Fix + +- move extraArgs from .Values.controller to .Values ([#3447](https://github.com/truecharts/charts/issues/3447)) + + + + +## [zwavejs2mqtt-11.0.28](https://github.com/truecharts/charts/compare/zwavejs2mqtt-11.0.27...zwavejs2mqtt-11.0.28) (2022-08-08) + +### Chore + +- update helm general non-major helm releases ([#3376](https://github.com/truecharts/charts/issues/3376)) + - replace questions parts with templates ([#3402](https://github.com/truecharts/charts/issues/3402)) + + + + +## [zwavejs2mqtt-11.0.27](https://github.com/truecharts/apps/compare/zwavejs2mqtt-11.0.26...zwavejs2mqtt-11.0.27) (2022-07-28) + +### Chore + +- update docker general non-major ([#3326](https://github.com/truecharts/apps/issues/3326)) + diff --git a/stable/zwavejs2mqtt/11.0.36/Chart.lock b/stable/zwavejs2mqtt/11.0.36/Chart.lock new file mode 100644 index 00000000000..41222fc85ea --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.5.6 +digest: sha256:033cffd654878c0c1fcc6f4c236f81736e71491b2ad46a5dec9708ea6faf2b63 +generated: "2022-09-03T07:59:59.837816873Z" diff --git a/stable/zwavejs2mqtt/11.0.36/Chart.yaml b/stable/zwavejs2mqtt/11.0.36/Chart.yaml new file mode 100644 index 00000000000..e9bb34a7362 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: "7.0.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.5.6 +deprecated: false +description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue +home: https://truecharts.org/docs/charts/stable/zwavejs2mqtt +icon: https://truecharts.org/img/hotlink-ok/chart-icons/zwavejs2mqtt.png +keywords: + - zwavejs2mqtt + - zwave-js + - z-wave + - zwave +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: zwavejs2mqtt +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/zwavejs2mqtt + - https://github.com/zwave-js/zwavejs2mqtt + - https://hub.docker.com/r/zwavejs/zwavejs2mqtt +type: application +version: 11.0.36 +annotations: + truecharts.org/catagories: | + - tools + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/stable/zwavejs2mqtt/11.0.36/README.md b/stable/zwavejs2mqtt/11.0.36/README.md new file mode 100644 index 00000000000..0b6e219c1a1 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/README.md @@ -0,0 +1,109 @@ +# zwavejs2mqtt + +![Version: 11.0.36](https://img.shields.io/badge/Version-11.0.36-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 7.0.0](https://img.shields.io/badge/AppVersion-7.0.0-informational?style=flat-square) + +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +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: [zwavejs2mqtt](https://truecharts.org/docs/charts/stable/zwavejs2mqtt) + +**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.5.6 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App). + +### Helm + +To install the chart with the release name `zwavejs2mqtt` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install zwavejs2mqtt TrueCharts/zwavejs2mqtt +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `zwavejs2mqtt` deployment + +```console +helm uninstall zwavejs2mqtt +``` + +## 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 command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install zwavejs2mqtt \ + --set env.TZ="America/New York" \ + TrueCharts/zwavejs2mqtt +``` + +#### 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 zwavejs2mqtt TrueCharts/zwavejs2mqtt -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/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/stable/zwavejs2mqtt/11.0.36/app-readme.md b/stable/zwavejs2mqtt/11.0.36/app-readme.md new file mode 100644 index 00000000000..d28ca8f0ac0 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/app-readme.md @@ -0,0 +1,8 @@ +Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/stable/zwavejs2mqtt](https://truecharts.org/docs/charts/stable/zwavejs2mqtt) + +--- + +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/stable/zwavejs2mqtt/11.0.36/charts/common-10.5.6.tgz b/stable/zwavejs2mqtt/11.0.36/charts/common-10.5.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9e3f5a957f3fa92bc5b2d7cb2c16b0ab954235cf GIT binary patch literal 48176 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%0D#1AX%ulOWWbBnc9F790F-J%0)!zJSZ8b00| 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 literal 0 HcmV?d00001 diff --git a/stable/zwavejs2mqtt/11.0.36/ix_values.yaml b/stable/zwavejs2mqtt/11.0.36/ix_values.yaml new file mode 100644 index 00000000000..e1ca5882a77 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/ix_values.yaml @@ -0,0 +1,85 @@ +image: + repository: tccr.io/truecharts/zwavejs2mqtt + pullPolicy: IfNotPresent + tag: 7.0.0@sha256:baebb7103ec07993d7888575dcc3be9f78eb53f25593179fe50f677f57b1ac0e + +securityContext: + readOnlyRootFilesystem: false + +# env: {} +# OZW_NETWORK_KEY: + +probes: + liveness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + readiness: + enabled: true + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + startup: + enabled: false + # custom: true + # spec: + # failureThreshold: 5 + # httpGet: + # path: /health + # port: http + # httpHeaders: + # - name: Accept + # value: text/plain + # initialDelaySeconds: 30 + # periodSeconds: 10 + # timeoutSeconds: 10 + +service: + main: + ports: + main: + port: 8091 + targetPort: 8091 + ws: + enabled: true + ports: + ws: + enabled: true + port: 10046 + targetPort: 3000 + +persistence: + config: + enabled: true + mountPath: "/usr/src/app/store" +# affinity: +# nodeAffinity: +# requiredDuringSchedulingIgnoredDuringExecution: +# nodeSelectorTerms: +# - matchExpressions: +# - key: app +# operator: In +# values: +# - zwave-controller + +portal: + enabled: true diff --git a/stable/zwavejs2mqtt/11.0.36/questions.yaml b/stable/zwavejs2mqtt/11.0.36/questions.yaml new file mode 100644 index 00000000000..0c4d31c2c2e --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/questions.yaml @@ -0,0 +1,2620 @@ +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 + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - 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 + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + 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" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: customextraargs + group: Controller + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + 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: TZ + label: Timezone + group: Container Configuration + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - 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..." + 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 Configuration + 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: 8091 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: 8091 + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + 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: ws + label: "WebSocket 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: 10046 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: 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: 3000 + - 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: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + 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: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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 + 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: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - 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: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - 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: 999Gi + - variable: hostPathType + label: (Advanced) Host Path 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: Path Type + 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: Path Type + 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 the 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: false + - 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/docs/manual/SCALE%20Apps/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/docs/manual/SCALE%20Apps/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/docs/manual/SCALE%20Apps/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/docs/manual/SCALE%20Apps/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: 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: 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 + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + 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 + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + 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: 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: Sock5 Server + 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: 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: "" + - 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: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + 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 Command 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 + - 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/docs/about/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/docs/about/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/zwavejs2mqtt/11.0.36/templates/common.yaml b/stable/zwavejs2mqtt/11.0.36/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/stable/zwavejs2mqtt/11.0.36/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/stable/zwavejs2mqtt/11.0.36/values.yaml b/stable/zwavejs2mqtt/11.0.36/values.yaml new file mode 100644 index 00000000000..e69de29bb2d