From 803a3e1a14438ba14f086c12bab130496f1f4590 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 25 Feb 2024 10:44:26 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/hammond/9.1.2/.helmignore | 30 + stable/hammond/9.1.2/CHANGELOG.md | 99 + stable/hammond/9.1.2/Chart.yaml | 36 + stable/hammond/9.1.2/README.md | 28 + stable/hammond/9.1.2/app-readme.md | 8 + stable/hammond/9.1.2/charts/common-18.0.2.tgz | Bin 0 -> 98784 bytes stable/hammond/9.1.2/ix_values.yaml | 37 + stable/hammond/9.1.2/questions.yaml | 3113 +++++++++++++++++ stable/hammond/9.1.2/templates/NOTES.txt | 1 + stable/hammond/9.1.2/templates/_secrets.tpl | 15 + stable/hammond/9.1.2/templates/common.yaml | 11 + stable/hammond/9.1.2/values.yaml | 0 12 files changed, 3378 insertions(+) create mode 100644 stable/hammond/9.1.2/.helmignore create mode 100644 stable/hammond/9.1.2/CHANGELOG.md create mode 100644 stable/hammond/9.1.2/Chart.yaml create mode 100644 stable/hammond/9.1.2/README.md create mode 100644 stable/hammond/9.1.2/app-readme.md create mode 100644 stable/hammond/9.1.2/charts/common-18.0.2.tgz create mode 100644 stable/hammond/9.1.2/ix_values.yaml create mode 100755 stable/hammond/9.1.2/questions.yaml create mode 100644 stable/hammond/9.1.2/templates/NOTES.txt create mode 100644 stable/hammond/9.1.2/templates/_secrets.tpl create mode 100644 stable/hammond/9.1.2/templates/common.yaml create mode 100644 stable/hammond/9.1.2/values.yaml diff --git a/stable/hammond/9.1.2/.helmignore b/stable/hammond/9.1.2/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/stable/hammond/9.1.2/.helmignore @@ -0,0 +1,30 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/stable/hammond/9.1.2/CHANGELOG.md b/stable/hammond/9.1.2/CHANGELOG.md new file mode 100644 index 00000000000..fe76933a711 --- /dev/null +++ b/stable/hammond/9.1.2/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + + +*for the complete changelog, please refer to the website* + +**Important:** + + + + + + + + +## [hammond-8.1.11](https://github.com/truecharts/charts/compare/hammond-8.1.10...hammond-8.1.11) (2024-02-03) + +### Chore + + + +- update container image common to v17.2.30[@19ad5ec](https://github.com/19ad5ec) by renovate ([#17804](https://github.com/truecharts/charts/issues/17804)) + + +## [hammond-8.1.10](https://github.com/truecharts/charts/compare/hammond-8.1.9...hammond-8.1.10) (2024-01-26) + +### Chore + + + +- update container image common to v17.2.29[@d7c41a3](https://github.com/d7c41a3) by renovate ([#17545](https://github.com/truecharts/charts/issues/17545)) + + +## [hammond-8.1.9](https://github.com/truecharts/charts/compare/hammond-8.1.8...hammond-8.1.9) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + + +## [hammond-8.1.8](https://github.com/truecharts/charts/compare/hammond-8.1.7...hammond-8.1.8) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [hammond-8.1.7](https://github.com/truecharts/charts/compare/hammond-8.1.6...hammond-8.1.7) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + + + +## [hammond-8.1.6](https://github.com/truecharts/charts/compare/hammond-8.1.5...hammond-8.1.6) (2024-01-09) + +### Chore + + + +- update container image common to v17.2.22[@e7c9056](https://github.com/e7c9056) by renovate ([#16986](https://github.com/truecharts/charts/issues/16986)) + + +## [hammond-8.1.5](https://github.com/truecharts/charts/compare/hammond-8.1.4...hammond-8.1.5) (2024-01-02) + +### Chore + + + +- force bump to ensure up-to-date catalogs + + +## [hammond-8.1.4](https://github.com/truecharts/charts/compare/hammond-8.1.3...hammond-8.1.4) (2024-01-01) + +### Chore + + + +- increase common version for oci fixes + +- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738)) + + +## [hammond-8.1.3](https://github.com/truecharts/charts/compare/hammond-8.1.0...hammond-8.1.3) (2024-01-01) + +### Chore + + + +- bump all charts for OCI test push diff --git a/stable/hammond/9.1.2/Chart.yaml b/stable/hammond/9.1.2/Chart.yaml new file mode 100644 index 00000000000..d42fe66cf50 --- /dev/null +++ b/stable/hammond/9.1.2/Chart.yaml @@ -0,0 +1,36 @@ +annotations: + max_scale_version: 24.04.0 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: productivity + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 0.0.24 +dependencies: + - name: common + version: 18.0.2 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: A self-hosted vehicle expense tracking system with support for multiple users. +home: https://truecharts.org/charts/stable/hammond +icon: https://truecharts.org/img/hotlink-ok/chart-icons/hammond.png +keywords: + - hammond +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: hammond +sources: + - https://github.com/AlfHou/hammond + - https://github.com/truecharts/charts/tree/master/charts/stable/hammond + - https://github.com/alfhou/hammond/pkgs/container/hammond +type: application +version: 9.1.2 diff --git a/stable/hammond/9.1.2/README.md b/stable/hammond/9.1.2/README.md new file mode 100644 index 00000000000..3e48266f97b --- /dev/null +++ b/stable/hammond/9.1.2/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/hammond) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/stable/hammond/9.1.2/app-readme.md b/stable/hammond/9.1.2/app-readme.md new file mode 100644 index 00000000000..5c3f2a7a2d6 --- /dev/null +++ b/stable/hammond/9.1.2/app-readme.md @@ -0,0 +1,8 @@ +A self-hosted vehicle expense tracking system with support for multiple users. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/hammond](https://truecharts.org/charts/stable/hammond) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/stable/hammond/9.1.2/charts/common-18.0.2.tgz b/stable/hammond/9.1.2/charts/common-18.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1588b1d05a16b20438bbc705eac225461a6888ce GIT binary patch literal 98784 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 F7e{OIR|UPv`apV6iH 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 TWtaay00960JTG`M09p(H9js0} literal 0 HcmV?d00001 diff --git a/stable/hammond/9.1.2/ix_values.yaml b/stable/hammond/9.1.2/ix_values.yaml new file mode 100644 index 00000000000..9156f2ee4ee --- /dev/null +++ b/stable/hammond/9.1.2/ix_values.yaml @@ -0,0 +1,37 @@ +image: + repository: ghcr.io/alfhou/hammond + tag: v0.0.24@sha256:c85dc0293aa10be15280277bade9cce808be572d0d4c5eac62acd87dec30479d + pullPolicy: IfNotPresent + +service: + main: + ports: + main: + targetPort: 3000 + port: 10186 + +workload: + main: + podSpec: + containers: + main: + env: + JWT_SECRET: + secretKeyRef: + name: secrets + key: JWT_SECRET + # manually define storage paths + CONFIG: "{{.Values.persistence.config.mountPath }}" + DATA: "{{.Values.persistence.assets.mountPath }}" + +persistence: + config: + enabled: true + mountPath: "/config" + assets: + enabled: true + mountPath: "/assets" + +portal: + open: + enabled: true diff --git a/stable/hammond/9.1.2/questions.yaml b/stable/hammond/9.1.2/questions.yaml new file mode 100755 index 00000000000..0981f872886 --- /dev/null +++ b/stable/hammond/9.1.2/questions.yaml @@ -0,0 +1,3113 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Backup Configuration + description: Configure Velero Backup Schedule + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation + +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" + +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + + - variable: workload + group: "Workload Settings" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + + - variable: TZ + label: Timezone + group: "General Settings" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: podOptions + group: "General Settings" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General Settings" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + + - variable: service + group: Networking and Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10186 + 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: assets + label: "App Assets Storage" + description: "Stores the Application Assets." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 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: 'gpu.intel.com/i915' + label: Add Intel i915 GPUs + schema: + type: int + default: 0 + - variable: 'nvidia.com/gpu' + label: Add NVIDIA GPUs (Experimental) + schema: + type: int + default: 0 + - variable: 'amd.com/gpu' + label: Add AMD GPUs + schema: + type: int + default: 0 + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true + diff --git a/stable/hammond/9.1.2/templates/NOTES.txt b/stable/hammond/9.1.2/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/hammond/9.1.2/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/hammond/9.1.2/templates/_secrets.tpl b/stable/hammond/9.1.2/templates/_secrets.tpl new file mode 100644 index 00000000000..9c7aeade076 --- /dev/null +++ b/stable/hammond/9.1.2/templates/_secrets.tpl @@ -0,0 +1,15 @@ +{{/* Define the secrets */}} +{{- define "hammond.secrets" -}} +{{- $secretName := printf "%s-secrets" (include "tc.v1.common.lib.chart.names.fullname" .) }} +{{- $hammondprevious := lookup "v1" "Secret" .Release.Namespace $secretName }} +{{- $jwt_secret := "" }} +enabled: true +data: + {{- if $hammondprevious}} + JWT_SECRET: {{ index $hammondprevious.data "JWT_SECRET" }} + {{- else }} + {{- $jwt_secret := randAlphaNum 32 }} + JWT_SECRET: {{ $jwt_secret | b64enc }} + {{- end }} + +{{- end -}} diff --git a/stable/hammond/9.1.2/templates/common.yaml b/stable/hammond/9.1.2/templates/common.yaml new file mode 100644 index 00000000000..f720a35d9f9 --- /dev/null +++ b/stable/hammond/9.1.2/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render secrets for hammond */}} +{{- $secrets := include "hammond.secrets" . | fromYaml -}} +{{- if $secrets -}} + {{- $_ := set .Values.secret "secrets" $secrets -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/stable/hammond/9.1.2/values.yaml b/stable/hammond/9.1.2/values.yaml new file mode 100644 index 00000000000..e69de29bb2d