From c6b7eeb9fe53e2e2e5b1aca187004255abaaea3f Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 20 Dec 2023 19:43:08 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/grafana/10.0.1/CHANGELOG.md | 99 + enterprise/grafana/10.0.1/Chart.yaml | 40 + enterprise/grafana/10.0.1/LICENSE | 106 + enterprise/grafana/10.0.1/README.md | 27 + enterprise/grafana/10.0.1/app-changelog.md | 9 + enterprise/grafana/10.0.1/app-readme.md | 8 + .../grafana/10.0.1/charts/common-16.2.7.tgz | Bin 0 -> 95883 bytes enterprise/grafana/10.0.1/ix_values.yaml | 79 + enterprise/grafana/10.0.1/questions.yaml | 2788 +++++++++++++++++ enterprise/grafana/10.0.1/templates/NOTES.txt | 1 + .../grafana/10.0.1/templates/common.yaml | 1 + enterprise/grafana/10.0.1/values.yaml | 0 12 files changed, 3158 insertions(+) create mode 100644 enterprise/grafana/10.0.1/CHANGELOG.md create mode 100644 enterprise/grafana/10.0.1/Chart.yaml create mode 100644 enterprise/grafana/10.0.1/LICENSE create mode 100644 enterprise/grafana/10.0.1/README.md create mode 100644 enterprise/grafana/10.0.1/app-changelog.md create mode 100644 enterprise/grafana/10.0.1/app-readme.md create mode 100644 enterprise/grafana/10.0.1/charts/common-16.2.7.tgz create mode 100644 enterprise/grafana/10.0.1/ix_values.yaml create mode 100644 enterprise/grafana/10.0.1/questions.yaml create mode 100644 enterprise/grafana/10.0.1/templates/NOTES.txt create mode 100644 enterprise/grafana/10.0.1/templates/common.yaml create mode 100644 enterprise/grafana/10.0.1/values.yaml diff --git a/enterprise/grafana/10.0.1/CHANGELOG.md b/enterprise/grafana/10.0.1/CHANGELOG.md new file mode 100644 index 00000000000..6b4e9ff45c8 --- /dev/null +++ b/enterprise/grafana/10.0.1/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [grafana-10.0.1](https://github.com/truecharts/charts/compare/grafana-10.0.0...grafana-10.0.1) (2023-12-20) + +### Chore + +- Update ingress and cnpg questions for new common ([#16328](https://github.com/truecharts/charts/issues/16328)) + + + + +## [grafana-10.0.0](https://github.com/truecharts/charts/compare/grafana-9.0.47...grafana-10.0.0) (2023-12-20) + +### Chore + +- update helm general major by renovate (major) ([#14631](https://github.com/truecharts/charts/issues/14631)) + + + + +## [grafana-9.0.47](https://github.com/truecharts/charts/compare/grafana-9.0.46...grafana-9.0.47) (2023-12-20) + +### Chore + +- Bump everything to force min/max scale version update + + + + +## [grafana-9.0.46](https://github.com/truecharts/charts/compare/grafana-9.0.44...grafana-9.0.46) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [grafana-9.0.46](https://github.com/truecharts/charts/compare/grafana-9.0.44...grafana-9.0.46) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [grafana-9.0.45](https://github.com/truecharts/charts/compare/grafana-9.0.44...grafana-9.0.45) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + + + + +## [grafana-9.0.44](https://github.com/truecharts/charts/compare/grafana-9.0.43...grafana-9.0.44) (2023-12-06) + +### Chore + +- update container image bitnami/grafana to 10.2.2[@cf16036](https://github.com/cf16036) ([#15807](https://github.com/truecharts/charts/issues/15807)) + + + + +## [grafana-9.0.43](https://github.com/truecharts/charts/compare/grafana-9.0.42...grafana-9.0.43) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + + + + +## [grafana-9.0.42](https://github.com/truecharts/charts/compare/grafana-9.0.41...grafana-9.0.42) (2023-12-02) + +### Chore + +- fix annotations again + - update annotations + - cleanup chart.yaml and add min-max scale version + + ### Fix + +- ensure all questions.yaml can be rendered ([#15612](https://github.com/truecharts/charts/issues/15612)) + + + + + + + + diff --git a/enterprise/grafana/10.0.1/Chart.yaml b/enterprise/grafana/10.0.1/Chart.yaml new file mode 100644 index 00000000000..7a2b2822477 --- /dev/null +++ b/enterprise/grafana/10.0.1/Chart.yaml @@ -0,0 +1,40 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: grafana +version: 10.0.1 +appVersion: 10.2.2 +description: Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. +home: https://truecharts.org/charts/enterprise/grafana +icon: https://truecharts.org/img/hotlink-ok/chart-icons/grafana.png +deprecated: false +sources: + - https://github.com/bitnami/bitnami-docker-grafana + - https://grafana.com/ + - https://github.com/truecharts/charts/tree/master/charts/enterprise/grafana + - https://hub.docker.com/r/bitnami/grafana +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - analytics + - monitoring + - metrics + - logs +dependencies: + - name: common + version: 16.2.7 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: metrics + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: enterprise +type: application diff --git a/enterprise/grafana/10.0.1/LICENSE b/enterprise/grafana/10.0.1/LICENSE new file mode 100644 index 00000000000..93c3f61c61e --- /dev/null +++ b/enterprise/grafana/10.0.1/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Grafana" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/enterprise/grafana/10.0.1/README.md b/enterprise/grafana/10.0.1/README.md new file mode 100644 index 00000000000..3433e9d8d33 --- /dev/null +++ b/enterprise/grafana/10.0.1/README.md @@ -0,0 +1,27 @@ +# 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/enterprise/grafana) + +**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/enterprise/grafana/10.0.1/app-changelog.md b/enterprise/grafana/10.0.1/app-changelog.md new file mode 100644 index 00000000000..9a1cd6cf28d --- /dev/null +++ b/enterprise/grafana/10.0.1/app-changelog.md @@ -0,0 +1,9 @@ + + +## [grafana-10.0.1](https://github.com/truecharts/charts/compare/grafana-10.0.0...grafana-10.0.1) (2023-12-20) + +### Chore + +- Update ingress and cnpg questions for new common ([#16328](https://github.com/truecharts/charts/issues/16328)) + + \ No newline at end of file diff --git a/enterprise/grafana/10.0.1/app-readme.md b/enterprise/grafana/10.0.1/app-readme.md new file mode 100644 index 00000000000..c4893171943 --- /dev/null +++ b/enterprise/grafana/10.0.1/app-readme.md @@ -0,0 +1,8 @@ +Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/grafana](https://truecharts.org/charts/enterprise/grafana) + +--- + +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/enterprise/grafana/10.0.1/charts/common-16.2.7.tgz b/enterprise/grafana/10.0.1/charts/common-16.2.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..79b55c5140c1bc08d05fd7ce6d6b7f0fe91c6776 GIT binary patch literal 95883 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 literal 0 HcmV?d00001 diff --git a/enterprise/grafana/10.0.1/ix_values.yaml b/enterprise/grafana/10.0.1/ix_values.yaml new file mode 100644 index 00000000000..433d31a4ed3 --- /dev/null +++ b/enterprise/grafana/10.0.1/ix_values.yaml @@ -0,0 +1,79 @@ +image: + repository: bitnami/grafana + pullPolicy: IfNotPresent + tag: 10.2.2@sha256:cf16036efbdf9192af02287492feca0ae1b470fdae2af30dd5d0c029ec447ae6 +manifestManager: + enabled: true +securityContext: + container: + readOnlyRootFilesystem: false +service: + main: + ports: + main: + protocol: http + targetPort: 3000 + port: 10038 +workload: + main: + replicas: 2 + strategy: RollingUpdate + podSpec: + containers: + main: + env: + GF_SECURITY_ADMIN_USER: "admin" + GF_SECURITY_ADMIN_PASSWORD: "testpassword" + GF_INSTALL_PLUGINS: "" + GF_PATHS_PLUGINS: "/opt/bitnami/grafana/data/plugins" + GF_AUTH_LDAP_ENABLED: "false" + GF_AUTH_LDAP_CONFIG_FILE: "/opt/bitnami/grafana/conf/ldap.toml" + GF_AUTH_LDAP_ALLOW_SIGN_UP: "false" + GF_PATHS_PROVISIONING: "/opt/bitnami/grafana/conf/provisioning" + GF_PATHS_CONFIG: "/opt/bitnami/grafana/conf/grafana.ini" + GF_PATHS_DATA: "/opt/bitnami/grafana/data" + GF_PATHS_LOGS: "/opt/bitnami/grafana/logs" + probes: + liveness: + path: "/api/health" + readiness: + path: "/api/health" + startup: + path: "/api/health" +persistence: + config: + enabled: true + mountPath: "/opt/bitnami/grafana/data" + grafana-tmp: + enabled: true + type: emptyDir + mountPath: /opt/bitnami/grafana/tmp +metrics: + main: + # -- Enable and configure a Prometheus serviceMonitor for the chart under this key. + # @default -- See values.yaml + enabled: true + type: "servicemonitor" + endpoints: + - port: main + path: /metrics + # -- Enable and configure Prometheus Rules for the chart under this key. + # @default -- See values.yaml + prometheusRule: + enabled: false + labels: {} + # -- Configure additionial rules for the chart under this key. + # @default -- See prometheusrules.yaml + rules: [] + # - alert: UnifiPollerAbsent + # annotations: + # description: Unifi Poller has disappeared from Prometheus service discovery. + # summary: Unifi Poller is down. + # expr: | + # absent(up{job=~".*unifi-poller.*"} == 1) + # for: 5m + # labels: + # severity: critical +portal: + open: + enabled: true diff --git a/enterprise/grafana/10.0.1/questions.yaml b/enterprise/grafana/10.0.1/questions.yaml new file mode 100644 index 00000000000..b4e1458b172 --- /dev/null +++ b/enterprise/grafana/10.0.1/questions.yaml @@ -0,0 +1,2788 @@ +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: 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: env + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: GF_SECURITY_ADMIN_USER + label: "Admin User" + schema: + type: string + required: true + default: "admin" + - variable: GF_SECURITY_ADMIN_PASSWORD + label: "Admin Password" + schema: + type: string + required: true + private: true + default: "REPLACETHIS" + - variable: GF_INSTALL_PLUGINS + label: "Extra Plugins to Install" + description: "comma seperated" + schema: + type: string + default: "" + - variable: GF_AUTH_LDAP_ENABLED + label: "enable LDAP" + schema: + type: boolean + default: false + - variable: GF_AUTH_LDAP_ALLOW_SIGN_UP + label: "Allow LDAP Signup" + schema: + type: boolean + default: false + - variable: GF_AUTH_LDAP_CONFIG_FILE + label: "LDAP Config Path" + schema: + type: string + default: "/opt/bitnami/grafana/conf/ldap.toml" + - 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: 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 + 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: 10038 + 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: 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: 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" + 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: 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: 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: 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: 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: [] + 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: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - 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: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 568 + # 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: 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: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - 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: certificateIssuer + label: Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates. Cannot be used combined with tls option below' + schema: + type: string + default: "" + - 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: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + show_if: [["advanced", "=", true]] + required: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + 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/enterprise/grafana/10.0.1/templates/NOTES.txt b/enterprise/grafana/10.0.1/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/enterprise/grafana/10.0.1/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/enterprise/grafana/10.0.1/templates/common.yaml b/enterprise/grafana/10.0.1/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/enterprise/grafana/10.0.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/enterprise/grafana/10.0.1/values.yaml b/enterprise/grafana/10.0.1/values.yaml new file mode 100644 index 00000000000..e69de29bb2d