From 15dd72f47fc9c5d3773a91a3badbde23f24cd6a7 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Thu, 23 Nov 2023 21:34:42 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/splunk/4.0.0/CHANGELOG.md | 99 + incubator/splunk/4.0.0/Chart.yaml | 28 + incubator/splunk/4.0.0/README.md | 27 + incubator/splunk/4.0.0/app-changelog.md | 0 incubator/splunk/4.0.0/app-readme.md | 8 + .../splunk/4.0.0/charts/common-15.2.0.tgz | Bin 0 -> 80032 bytes incubator/splunk/4.0.0/ix_values.yaml | 63 + incubator/splunk/4.0.0/questions.yaml | 2735 +++++++++++++++++ incubator/splunk/4.0.0/templates/NOTES.txt | 1 + incubator/splunk/4.0.0/templates/_config.tpl | 26 + incubator/splunk/4.0.0/templates/common.yaml | 11 + incubator/splunk/4.0.0/values.yaml | 0 incubator/splunk/item.yaml | 3 +- 13 files changed, 2999 insertions(+), 2 deletions(-) create mode 100644 incubator/splunk/4.0.0/CHANGELOG.md create mode 100644 incubator/splunk/4.0.0/Chart.yaml create mode 100644 incubator/splunk/4.0.0/README.md create mode 100644 incubator/splunk/4.0.0/app-changelog.md create mode 100644 incubator/splunk/4.0.0/app-readme.md create mode 100644 incubator/splunk/4.0.0/charts/common-15.2.0.tgz create mode 100644 incubator/splunk/4.0.0/ix_values.yaml create mode 100644 incubator/splunk/4.0.0/questions.yaml create mode 100644 incubator/splunk/4.0.0/templates/NOTES.txt create mode 100644 incubator/splunk/4.0.0/templates/_config.tpl create mode 100644 incubator/splunk/4.0.0/templates/common.yaml create mode 100644 incubator/splunk/4.0.0/values.yaml diff --git a/incubator/splunk/4.0.0/CHANGELOG.md b/incubator/splunk/4.0.0/CHANGELOG.md new file mode 100644 index 0000000000..fcbcfd42e5 --- /dev/null +++ b/incubator/splunk/4.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + + + +## [splunk-4.0.0](https://github.com/truecharts/charts/compare/splunk-3.0.10...splunk-4.0.0) (2023-07-31) + +### Feat + +- hide advanced ingress options behind checbox ([#9203](https://github.com/truecharts/charts/issues/9203)) + + ### Fix + +- fix mistakes on questions.yaml + + + + +## [splunk-3.0.10](https://github.com/truecharts/charts/compare/splunk-3.0.9...splunk-3.0.10) (2023-02-20) + +### Chore + +- update container image splunk/splunk to 9.0.4 + + + + +## [splunk-3.0.9](https://github.com/truecharts/charts/compare/splunk-3.0.8...splunk-3.0.9) (2023-02-15) + +### Chore + +- update container image splunk/splunk to v9.0.4 + + + + +## [splunk-3.0.8](https://github.com/truecharts/charts/compare/splunk-3.0.7...splunk-3.0.8) (2023-02-10) + +### Fix + +- ensure new helm deps repo is used in latest releases as well. + + + + +## [splunk-3.0.7](https://github.com/truecharts/charts/compare/splunk-3.0.6...splunk-3.0.7) (2023-02-02) + +### Fix + +- remove non-link sources ([#6826](https://github.com/truecharts/charts/issues/6826)) + + + + +## [splunk-3.0.6](https://github.com/truecharts/charts/compare/splunk-3.0.5...splunk-3.0.6) (2022-12-27) + +### Chore + +- update helm general non-major ([#5856](https://github.com/truecharts/charts/issues/5856)) + + + + +## [splunk-3.0.5](https://github.com/truecharts/charts/compare/splunk-3.0.4...splunk-3.0.5) (2022-12-26) + +### Chore + +- update helm general non-major ([#5839](https://github.com/truecharts/charts/issues/5839)) + + + + +## [splunk-3.0.4](https://github.com/truecharts/charts/compare/splunk-3.0.3...splunk-3.0.4) (2022-12-25) + +### Chore + +- update helm general non-major + + + + +## [splunk-3.0.3](https://github.com/truecharts/charts/compare/splunk-3.0.2...splunk-3.0.3) (2022-12-21) + +### Chore + +- update container image splunk/splunk to v9.0.3 + + + + +## [splunk-3.0.2](https://github.com/truecharts/charts/compare/splunk-3.0.1...splunk-3.0.2) (2022-12-19) + +### Chore + +- update helm general non-major + diff --git a/incubator/splunk/4.0.0/Chart.yaml b/incubator/splunk/4.0.0/Chart.yaml new file mode 100644 index 0000000000..e359f2d5a2 --- /dev/null +++ b/incubator/splunk/4.0.0/Chart.yaml @@ -0,0 +1,28 @@ +annotations: + truecharts.org/SCALE-support: "true" + truecharts.org/category: Tools-Utilities +apiVersion: v2 +appVersion: "9.1.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 15.2.0 +deprecated: false +description: "This is a Chartfile for Splunk designed for OpenShift and TrueNAS based on Alpine Linux - https://www.splunk.com" +home: https://truecharts.org/charts/incubator/splunk +icon: https://truecharts.org/img/hotlink-ok/chart-icons/splunk.png +keywords: + - splunk + - Tools-Utilities + - Network-Management +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: splunk +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/splunk + - https://splunk.github.io/docker-splunk +type: application +version: 4.0.0 diff --git a/incubator/splunk/4.0.0/README.md b/incubator/splunk/4.0.0/README.md new file mode 100644 index 0000000000..83229a6026 --- /dev/null +++ b/incubator/splunk/4.0.0/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/incubator/) + +**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/incubator/splunk/4.0.0/app-changelog.md b/incubator/splunk/4.0.0/app-changelog.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/splunk/4.0.0/app-readme.md b/incubator/splunk/4.0.0/app-readme.md new file mode 100644 index 0000000000..118737c367 --- /dev/null +++ b/incubator/splunk/4.0.0/app-readme.md @@ -0,0 +1,8 @@ +This is a Chartfile for Splunk designed for OpenShift and TrueNAS based on Alpine Linux - https://www.splunk.com + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/splunk](https://truecharts.org/charts/incubator/splunk) + +--- + +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/incubator/splunk/4.0.0/charts/common-15.2.0.tgz b/incubator/splunk/4.0.0/charts/common-15.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..62a4cf7dc74d7f7fa91bb853245762ed31309904 GIT binary patch literal 80032 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%0A%t& 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�@O^IwxQZX4I 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

m401vjFxrgr;EPpT(P6YS9x~zWZb^c6}HV8 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 a=jC~MUY literal 0 HcmV?d00001 diff --git a/incubator/splunk/4.0.0/ix_values.yaml b/incubator/splunk/4.0.0/ix_values.yaml new file mode 100644 index 0000000000..b3b718e2a9 --- /dev/null +++ b/incubator/splunk/4.0.0/ix_values.yaml @@ -0,0 +1,63 @@ +image: + pullPolicy: IfNotPresent + repository: splunk/splunk + tag: 9.1.2@sha256:2a94cd38514f6f3b6bee2cd1df36ded17d7b8148ccb35e3be2a91258f6e5c46b + +securityContext: + container: + runAsNonRoot: false + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 + +splunk: + acceptLicense: true + password: changeme + extraArgs: [] + +service: + dataingest: + enabled: true + ports: + dataingest: + enabled: true + port: 9997 + protocol: http + targetPort: 9997 + main: + ports: + main: + port: 8000 + protocol: http + targetPort: 8000 + management: + enabled: true + ports: + management: + enabled: true + port: 8089 + protocol: http + targetPort: 8089 +workload: + main: + podSpec: + containers: + main: + envFrom: + - secretRef: + name: "secret" + +persistence: + appcreds: + enabled: true + mountPath: /opt/splunk/etc/ + config: + enabled: true + mountPath: /opt/splunk/var + datap: + enabled: true + mountPath: /splunkdata + +portal: + open: + enabled: true diff --git a/incubator/splunk/4.0.0/questions.yaml b/incubator/splunk/4.0.0/questions.yaml new file mode 100644 index 0000000000..e33c9293d7 --- /dev/null +++ b/incubator/splunk/4.0.0/questions.yaml @@ -0,0 +1,2735 @@ +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: 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: splunk + group: App Configuration + label: "Splunk Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: acceptLicense + label: "Accept License" + description: "Arguments to start Splunk with." + schema: + type: boolean + default: true + - variable: password + label: "Splunk Password" + description: "Splunk Web UI admin password." + schema: + type: string + private: true + default: "" + - variable: extraArgs + label: "Extra Startup Arguments" + schema: + type: list + default: [] + items: + - variable: argEntry + label: "Arg Entry" + schema: + type: string + required: true + default: "" + - 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: 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: 8000 + required: true + - variable: management + label: management service + description: HTTPS API + 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: management + label: management 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: 8089 + required: true + - variable: dataingest + label: dataingest service + description: SplunkTCP input + 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: dataingest + label: dataingest 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: 9997 + 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: data + label: data Storage + description: For indexed data persistence + 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 + - 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: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config + label: config Storage + description: For config and app data persistence + 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 + - 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: 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: appcreds + label: appcreds Storage + description: For passwordencryption persistence + 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 + - 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: 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: 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: 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: 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: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + show_if: [["advanced", "=", true]] + default: false + - 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: certificateIssuer + label: certificateIssuer + 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: 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: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: 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: 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: 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/incubator/splunk/4.0.0/templates/NOTES.txt b/incubator/splunk/4.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..efcb74cb77 --- /dev/null +++ b/incubator/splunk/4.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/incubator/splunk/4.0.0/templates/_config.tpl b/incubator/splunk/4.0.0/templates/_config.tpl new file mode 100644 index 0000000000..b8a0994478 --- /dev/null +++ b/incubator/splunk/4.0.0/templates/_config.tpl @@ -0,0 +1,26 @@ +{{/* Define the secret */}} +{{- define "splunk.secret" -}} + +{{- $splunkSecret := printf "%s-splunk-config" (include "tc.v1.common.lib.chart.names.fullname" .) }} +{{- $argList := list -}} + +{{- if .Values.splunk.acceptLicense -}} + {{- $argList = append $argList "--accept-license" -}} +{{- end -}} + +{{- with .Values.splunk.extraArgs -}} + {{- range . -}} + {{- $argList = append $argList . -}} + {{- end -}} +{{- end }} + +enabled: true +data: + {{- with $argList }} + SPLUNK_START_ARGS: {{ join " " . | quote }} + {{- end }} + + {{- with .Values.splunk.password }} + SPLUNK_PASSWORD: {{ . }} + {{- end }} +{{- end -}} diff --git a/incubator/splunk/4.0.0/templates/common.yaml b/incubator/splunk/4.0.0/templates/common.yaml new file mode 100644 index 0000000000..de4c1a4a91 --- /dev/null +++ b/incubator/splunk/4.0.0/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{/* Render secrets for Splunk */}} +{{- $secrets := include "splunk.secret" . | fromYaml -}} +{{- if $secrets -}} + {{- $_ := set .Values.secret "secret" $secrets -}} +{{- end -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/incubator/splunk/4.0.0/values.yaml b/incubator/splunk/4.0.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/splunk/item.yaml b/incubator/splunk/item.yaml index f125121376..ed72567864 100644 --- a/incubator/splunk/item.yaml +++ b/incubator/splunk/item.yaml @@ -1,5 +1,4 @@ icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/splunk.png categories: - Tools-Utilities -- Network-Management - +screenshots: []