diff --git a/enterprise/blocky/12.2.0/CHANGELOG.md b/enterprise/blocky/12.2.0/CHANGELOG.md
new file mode 100644
index 0000000000..9be0cc95b1
--- /dev/null
+++ b/enterprise/blocky/12.2.0/CHANGELOG.md
@@ -0,0 +1,99 @@
+---
+title: Changelog
+---
+
+**Important:**
+*for the complete changelog, please refer to the website*
+
+
+
+## [blocky-12.2.0](https://github.com/truecharts/charts/compare/blocky-12.1.8...blocky-12.2.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image spx01/blocky to v0.23[@24855b6](https://github.com/24855b6) by renovate ([#17023](https://github.com/truecharts/charts/issues/17023))
+
+
+## [blocky-12.1.8](https://github.com/truecharts/charts/compare/blocky-12.1.7...blocky-12.1.8) (2024-01-02)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16820](https://github.com/truecharts/charts/issues/16820))
+
+
+## [blocky-12.1.7](https://github.com/truecharts/charts/compare/blocky-12.1.6...blocky-12.1.7) (2024-01-02)
+
+### Chore
+
+
+
+- force bump to ensure up-to-date catalogs
+
+
+## [blocky-12.1.6](https://github.com/truecharts/charts/compare/blocky-12.1.5...blocky-12.1.6) (2024-01-02)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16743](https://github.com/truecharts/charts/issues/16743))
+
+
+## [blocky-12.1.5](https://github.com/truecharts/charts/compare/blocky-12.1.4...blocky-12.1.5) (2024-01-01)
+
+### Chore
+
+
+
+- increase common version for oci fixes
+
+
+## [blocky-12.1.4](https://github.com/truecharts/charts/compare/blocky-12.1.3...blocky-12.1.4) (2024-01-01)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16734](https://github.com/truecharts/charts/issues/16734))
+
+- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738))
+
+
+## [blocky-12.1.3](https://github.com/truecharts/charts/compare/blocky-12.1.0...blocky-12.1.3) (2024-01-01)
+
+### Chore
+
+
+
+- bump all charts for OCI test push
+
+- move everything to consume OCI-hosted common-chart dependency
+
+- update container image common to v17.2.19[@4ebb688](https://github.com/4ebb688) by renovate ([#16733](https://github.com/truecharts/charts/issues/16733))
+
+- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732))
+
+- standardize ./img references ([#16704](https://github.com/truecharts/charts/issues/16704))
+
+- lints some docs, uses front-matter instead of # h1, and fix list items in changelog ([#16589](https://github.com/truecharts/charts/issues/16589))
+
+
+## [blocky-12.1.2](https://github.com/truecharts/charts/compare/blocky-12.1.0...blocky-12.1.2) (2024-01-01)
+
+### Chore
+
+
+
+- bump all charts for OCI test push
+
+- move everything to consume OCI-hosted common-chart dependency
+
+- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732))
+
+- standardize ./img references ([#16704](https://github.com/truecharts/charts/issues/16704))
+
+- lints some docs, uses front-matter instead of # h1, and fix list items in changelog ([#16589](https://github.com/truecharts/charts/issues/16589))
diff --git a/enterprise/blocky/12.2.0/Chart.yaml b/enterprise/blocky/12.2.0/Chart.yaml
new file mode 100644
index 0000000000..eac9877a0a
--- /dev/null
+++ b/enterprise/blocky/12.2.0/Chart.yaml
@@ -0,0 +1,46 @@
+kubeVersion: ">=1.24.0-0"
+apiVersion: v2
+name: blocky
+version: 12.2.0
+appVersion: "0.23"
+description: Blocky is a DNS proxy, DNS enhancer and ad-blocker for the local network written in Go
+home: https://truecharts.org/charts/enterprise/blocky
+icon: https://truecharts.org/img/hotlink-ok/chart-icons/blocky.png
+deprecated: false
+sources:
+ - https://hub.docker.com/r/spx01/blocky
+ - https://github.com/0xERR0R/blocky
+ - https://github.com/Mozart409/blocky-frontend
+ - https://0xerr0r.github.io/blocky/
+ - https://github.com/truecharts/charts/tree/master/charts/enterprise/blocky
+maintainers:
+ - name: TrueCharts
+ email: info@truecharts.org
+ url: https://truecharts.org
+keywords:
+ - dns
+ - blocky
+dependencies:
+ - name: common
+ version: 17.2.21
+ repository: oci://tccr.io/truecharts
+ condition: ""
+ alias: ""
+ tags: []
+ import-values: []
+ - name: redis
+ version: 11.1.6
+ repository: https://deps.truecharts.org
+ condition: redis.enabled
+ alias: ""
+ tags: []
+ import-values: []
+annotations:
+ max_scale_version: 23.10.2
+ min_scale_version: 23.10.0
+ truecharts.org/SCALE-support: "true"
+ truecharts.org/category: network
+ truecharts.org/max_helm_version: "3.13"
+ truecharts.org/min_helm_version: "3.12"
+ truecharts.org/train: enterprise
+type: application
diff --git a/enterprise/blocky/12.2.0/LICENSE b/enterprise/blocky/12.2.0/LICENSE
new file mode 100644
index 0000000000..33a8cbb23f
--- /dev/null
+++ b/enterprise/blocky/12.2.0/LICENSE
@@ -0,0 +1,106 @@
+Business Source License 1.1
+
+Parameters
+
+Licensor: The TrueCharts Project, it's owner and it's contributors
+Licensed Work: The TrueCharts "Blocky" Helm Chart
+Additional Use Grant: You may use the licensed work in production, as long
+ as it is directly sourced from a TrueCharts provided
+ official repository, catalog or source. You may also make private
+ modification to the directly sourced licenced work,
+ when used in production.
+
+ The following cases are, due to their nature, also
+ defined as 'production use' and explicitly prohibited:
+ - Bundling, including or displaying the licensed work
+ with(in) another work intended for production use,
+ with the apparent intend of facilitating and/or
+ promoting production use by third parties in
+ violation of this license.
+
+Change Date: 2050-01-01
+
+Change License: 3-clause BSD license
+
+For information about alternative licensing arrangements for the Software,
+please contact: legal@truecharts.org
+
+Notice
+
+The Business Source License (this document, or the “License”) is not an Open
+Source license. However, the Licensed Work will eventually be made available
+under an Open Source License, as stated in this License.
+
+License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
+“Business Source License” is a trademark of MariaDB Corporation Ab.
+
+-----------------------------------------------------------------------------
+
+Business Source License 1.1
+
+Terms
+
+The Licensor hereby grants you the right to copy, modify, create derivative
+works, redistribute, and make non-production use of the Licensed Work. The
+Licensor may make an Additional Use Grant, above, permitting limited
+production use.
+
+Effective on the Change Date, or the fourth anniversary of the first publicly
+available distribution of a specific version of the Licensed Work under this
+License, whichever comes first, the Licensor hereby grants you rights under
+the terms of the Change License, and the rights granted in the paragraph
+above terminate.
+
+If your use of the Licensed Work does not comply with the requirements
+currently in effect as described in this License, you must purchase a
+commercial license from the Licensor, its affiliated entities, or authorized
+resellers, or you must refrain from using the Licensed Work.
+
+All copies of the original and modified Licensed Work, and derivative works
+of the Licensed Work, are subject to this License. This License applies
+separately for each version of the Licensed Work and the Change Date may vary
+for each version of the Licensed Work released by Licensor.
+
+You must conspicuously display this License on each original or modified copy
+of the Licensed Work. If you receive the Licensed Work in original or
+modified form from a third party, the terms and conditions set forth in this
+License apply to your use of that work.
+
+Any use of the Licensed Work in violation of this License will automatically
+terminate your rights under this License for the current and all other
+versions of the Licensed Work.
+
+This License does not grant you any right in any trademark or logo of
+Licensor or its affiliates (provided that you may use a trademark or logo of
+Licensor as expressly required by this License).
+
+TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
+AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
+EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
+TITLE.
+
+MariaDB hereby grants you permission to use this License’s text to license
+your works, and to refer to it using the trademark “Business Source License”,
+as long as you comply with the Covenants of Licensor below.
+
+Covenants of Licensor
+
+In consideration of the right to use this License’s text and the “Business
+Source License” name and trademark, Licensor covenants to MariaDB, and to all
+other recipients of the licensed work to be provided by Licensor:
+
+1. To specify as the Change License the GPL Version 2.0 or any later version,
+ or a license that is compatible with GPL Version 2.0 or a later version,
+ where “compatible” means that software provided under the Change License can
+ be included in a program with software provided under GPL Version 2.0 or a
+ later version. Licensor may specify additional Change Licenses without
+ limitation.
+
+2. To either: (a) specify an additional grant of rights to use that does not
+ impose any additional restriction on the right granted in this License, as
+ the Additional Use Grant; or (b) insert the text “None”.
+
+3. To specify a Change Date.
+
+4. Not to modify this License in any other way.
diff --git a/enterprise/blocky/12.2.0/README.md b/enterprise/blocky/12.2.0/README.md
new file mode 100644
index 0000000000..cbcb72e490
--- /dev/null
+++ b/enterprise/blocky/12.2.0/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/enterprise/blocky)
+
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
+
+## Support
+
+- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
+- See the [Website](https://truecharts.org)
+- Check our [Discord](https://discord.gg/tVsPTHWTtr)
+- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
+
+---
+
+## Sponsor TrueCharts
+
+TrueCharts can only exist due to the incredible effort of our staff.
+Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
+
+_All Rights Reserved - The TrueCharts Project_
diff --git a/enterprise/blocky/12.2.0/app-changelog.md b/enterprise/blocky/12.2.0/app-changelog.md
new file mode 100644
index 0000000000..24ed76cf93
--- /dev/null
+++ b/enterprise/blocky/12.2.0/app-changelog.md
@@ -0,0 +1,9 @@
+
+
+## [blocky-12.2.0](https://github.com/truecharts/charts/compare/blocky-12.1.8...blocky-12.2.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image spx01/blocky to v0.23[@24855b6](https://github.com/24855b6) by renovate ([#17023](https://github.com/truecharts/charts/issues/17023))
\ No newline at end of file
diff --git a/enterprise/blocky/12.2.0/app-readme.md b/enterprise/blocky/12.2.0/app-readme.md
new file mode 100644
index 0000000000..8e6562892e
--- /dev/null
+++ b/enterprise/blocky/12.2.0/app-readme.md
@@ -0,0 +1,8 @@
+Blocky is a DNS proxy, DNS enhancer and ad-blocker for the local network written in Go
+
+This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/blocky](https://truecharts.org/charts/enterprise/blocky)
+
+---
+
+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/alist/8.1.6/charts/common-17.2.21.tgz b/enterprise/blocky/12.2.0/charts/common-17.2.21.tgz
similarity index 100%
rename from stable/alist/8.1.6/charts/common-17.2.21.tgz
rename to enterprise/blocky/12.2.0/charts/common-17.2.21.tgz
diff --git a/stable/ghostfolio/3.3.0/charts/redis-11.1.6.tgz b/enterprise/blocky/12.2.0/charts/redis-11.1.6.tgz
similarity index 100%
rename from stable/ghostfolio/3.3.0/charts/redis-11.1.6.tgz
rename to enterprise/blocky/12.2.0/charts/redis-11.1.6.tgz
diff --git a/enterprise/blocky/12.2.0/ix_values.yaml b/enterprise/blocky/12.2.0/ix_values.yaml
new file mode 100644
index 0000000000..ab99e82e84
--- /dev/null
+++ b/enterprise/blocky/12.2.0/ix_values.yaml
@@ -0,0 +1,345 @@
+image:
+ repository: spx01/blocky
+ tag: v0.23@sha256:24855b63986c790093554a1f62b58379a06bc10a90ee073906e7c39bf692adcc
+ pullPolicy: IfNotPresent
+k8sgatewayImage:
+ repository: quay.io/oriedge/k8s_gateway
+ pullPolicy: IfNotPresent
+ tag: v0.4.0@sha256:7bdbd447c0244b8f89de9cd6f4826ed0ac66c9406fac3a4ac80081020c251c6b
+manifestManager:
+ enabled: true
+workload:
+ main:
+ replicas: 2
+ strategy: RollingUpdate
+ podSpec:
+ containers:
+ main:
+ probes:
+ liveness:
+ enabled: false
+ type: exec
+ command:
+ - /app/blocky
+ - healthcheck
+ readiness:
+ enabled: false
+ type: exec
+ command:
+ - /app/blocky
+ - healthcheck
+ startup:
+ enabled: false
+ type: exec
+ command:
+ - /app/blocky
+ - healthcheck
+# -- Blocky Config File content
+blockyConfig: {}
+# upstream:
+# default:
+# - 1.1.1.1
+
+# -- some general blocky settings
+blocky:
+ # -- Enable prometheus annotations
+ enablePrometheus: true
+service:
+ main:
+ enabled: true
+ ports:
+ main:
+ enabled: true
+ port: 4000
+ protocol: http
+ targetPort: 4000
+ dnstcp:
+ enabled: true
+ ports:
+ dnstcp:
+ enabled: true
+ port: 53
+ targetPort: 53
+ dnsudp:
+ enabled: true
+ ports:
+ dnsudp:
+ enabled: true
+ port: 53
+ protocol: udp
+ targetPort: 53
+ dot:
+ enabled: true
+ ports:
+ dot:
+ enabled: true
+ port: 853
+ protocol: tcp
+ targetPort: 853
+ https:
+ enabled: true
+ ports:
+ https:
+ enabled: true
+ port: 4443
+ protocol: https
+ targetPort: 4443
+ k8sgateway:
+ enabled: true
+ ports:
+ k8sgateway:
+ enabled: true
+ port: 5353
+ protocol: udp
+ targetPort: 5353
+## TODO Add support for SCALE certificates and certificates secrets here
+certFile: ""
+keyFile: ""
+logLevel: info
+logFormat: text
+logTimestamp: true
+logPrivacy: false
+dohUserAgent: ""
+minTlsServeVersion: 1.2
+# -- set the default DNS upstream servers
+# Primarily designed for inclusion in the TrueNAS SCALE GUI
+defaultUpstreams:
+ - 1.1.1.1
+ - 1.0.0.1
+ - 8.8.8.8
+ - 8.8.4.4
+ - 9.9.9.9
+ - 149.112.112.112
+ - 208.67.222.222
+ - 208.67.220.220
+ - 8.26.56.26
+ - 8.20.247.20
+ - 185.228.168.9
+ - 185.228.169.9
+ - 76.76.19.19
+ - 76.223.122.150
+ - 76.76.2.0
+ - 76.76.10.0
+# -- set additional upstreams
+# Primarily designed for inclusion in the TrueNAS SCALE GUI
+upstreams:
+# - name: group2
+# dnsservers:
+# - 1.1.1.1
+
+# -- set bootstrap dns (not needed)
+# Ensures bootstrap encryption and ensure it doesn't use k8s dns
+bootstrapDns:
+ # -- Upstream
+ upstream: ""
+ # -- IP's linked to upstream DoT/DoH DNS name
+ ips: []
+# -- set additional bootstrap dns (not needed, only used if bootstrapDns is set)
+additionalBootstrapDns: []
+# - upstream: ""
+# ips: []
+
+# -- Return empty answer for these queries
+filtering:
+ # -- Ensures filtering by query type
+ queryTypes: []
+# -- Set manual custom DNS resolution
+customDNS:
+ customTTL: 1h
+ filterUnmappedTypes: true
+ rewrite: []
+ # - in: something.com
+ # out: somethingelse.com
+ mapping: []
+ # - domain: something.com
+ # dnsserver: 192.168.178.1
+# -- Setup client-name lookup
+clientLookup:
+ # -- upstream used for client-name lookup
+ upstream: ""
+ singleNameOrder: []
+ clients:
+ # - domain: laptop
+ # ips: []
+# -- Setup caching
+caching:
+ minTime: 5m
+ maxTime: 30m
+ maxItemsCount: 0
+ prefetching: false
+ prefetchExpires: 2h
+ prefetchThreshold: 5
+ prefetchMaxItemsCount: 0
+ cacheTimeNegative: 30m
+# -- set conditional settings
+# Primarily designed for inclusion in the TrueNAS SCALE GUI
+conditional:
+ rewrite: []
+ # - in: something.com
+ # out: somethingelse.com
+ mapping: []
+ # - domain: something.com
+ # dnsserver: 192.168.178.1
+# -- set blocking settings using Lists
+# Primarily designed for inclusion in the TrueNAS SCALE GUI
+blocking:
+ # -- Sets the blocktype
+ blockType: nxDomain
+ # -- Sets the block ttl
+ blockTTL: 6h
+ # -- Sets the block refreshPeriod
+ refreshPeriod: 4h
+ # -- Sets the block download timeout
+ downloadTimeout: 60s
+ # -- Sets the block download attempt count
+ downloadAttempts: 3
+ # -- Sets the block download cooldown
+ downloadCooldown: 2s
+ # -- Set the start strategy (blocking | failOnError | fast)
+ startStrategy: blocking
+ # -- Sets how many list-groups can be processed at the same time
+ processingConcurrency: 4
+ # -- Add blocky whitelists
+ whitelist: []
+ # - name: ads
+ # lists:
+ # - https://someurl.com/list.txt
+ # - /somefile.txt
+
+ # -- Blocky blacklists
+ blacklist: []
+ # - name: ads
+ # lists:
+ # - https://someurl.com/list.txt
+ # - /somefile.txt
+
+ # -- Blocky clientGroupsBlock
+ clientGroupsBlock: []
+ # - name: default
+ # groups:
+ # - ads
+# -- configure using hostsfile for lookups
+# Allows for using the hosts configured in kubernetes and such
+hostsFile:
+ enabled: false
+ filePath: /etc/hosts
+ hostsTTL: 60m
+ refreshPeriod: 30m
+## TODO: add this with postgresql support as well
+# queryLog:
+# type: csv
+# target: /logs
+# logRetentionDays: 0
+# creationAttempts: 3
+# CreationCooldown: 2
+podOptions:
+ automountServiceAccountToken: true
+portal:
+ open:
+ enabled: false
+serviceAccount:
+ main:
+ # -- Specifies whether a service account should be created
+ enabled: true
+ primary: true
+# -- Create a ClusterRole and ClusterRoleBinding
+# @default -- See below
+rbac:
+ main:
+ # -- Enables or disables the ClusterRole and ClusterRoleBinding
+ enabled: true
+ primary: true
+ clusterWide: true
+ # -- Set Rules on the ClusterRole
+ rules:
+ - apiGroups:
+ - ""
+ resources:
+ - services
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - list
+ - watch
+k8sgateway:
+ enabled: true
+ # -- TTL for non-apex responses (in seconds)
+ ttl: 300
+ # -- Limit what kind of resources to watch, e.g. watchedResources: ["Ingress"]
+ watchedResources: []
+ # -- Service name of a secondary DNS server (should be `serviceName.namespace`)
+ secondary: ""
+ # -- Override the default `serviceName.namespace` domain apex
+ apex: ""
+ # -- list of processed domains
+ domains: []
+ # -- Delegated domain
+ # - domain: "example.com"
+ # # -- Optional configuration option for DNS01 challenge that will redirect all acme
+ # # challenge requests to external cloud domain (e.g. managed by cert-manager)
+ # # See: https://cert-manager.io/docs/configuration/acme/dns01/
+ # dnsChallenge:
+ # enabled: false
+ # domain: dns01.clouddns.com
+
+ forward:
+ enabled: false
+ primary: tls://1.1.1.1
+ secondary: tls://1.0.0.1
+ options:
+ - name: tls_servername
+ value: cloudflare-dns.com
+metrics:
+ main:
+ # -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
+ # @default -- See values.yaml
+ enabled: false
+ type: "servicemonitor"
+ endpoints:
+ - port: main
+ path: /metrics
+ # -- Enable and configure Prometheus Rules for the chart under this key.
+ # @default -- See values.yaml
+ prometheusRule:
+ enabled: false
+ labels: {}
+ # -- Configure additionial rules for the chart under this key.
+ # @default -- See prometheusrules.yaml
+ rules: []
+ # - alert: UnifiPollerAbsent
+ # annotations:
+ # description: Unifi Poller has disappeared from Prometheus service discovery.
+ # summary: Unifi Poller is down.
+ # expr: |
+ # absent(up{job=~".*unifi-poller.*"} == 1)
+ # for: 5m
+ # labels:
+ # severity: critical
+redis:
+ enabled: true
+# CANNOT be defined in above yaml section
+queryLog:
+ # optional one of: mysql, postgresql, csv, csv-client. If empty, log to console
+ type: ""
+ # directory (should be mounted as volume in docker) for csv, db connection string for mysql, ignored for included postgresql
+ # target: /var/log/something
+ # postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
+ # if > 0, deletes log files which are older than ... days
+ logRetentionDays: 0
+ # optional: Max attempts to create specific query log writer, default: 3
+ creationAttempts: 3
+ # optional: Time between the creation attempts, default: 2s
+ creationCooldown: 2s
+cnpg:
+ main:
+ enabled: false
+ user: blocky
+ database: blocky
+updated: true
diff --git a/enterprise/blocky/12.2.0/questions.yaml b/enterprise/blocky/12.2.0/questions.yaml
new file mode 100644
index 0000000000..67b66b4ddc
--- /dev/null
+++ b/enterprise/blocky/12.2.0/questions.yaml
@@ -0,0 +1,3901 @@
+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: webUI
+ group: App Configuration
+ label: WebUI Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable Web UI
+ description: Enables Web UI
+ schema:
+ type: boolean
+ default: true
+ - variable: apiURL
+ label: API URL
+ description: API URL for webUI, including port. Only used when not using ingress
+ schema:
+ type: string
+ default: "http://127.0.0.1:4000"
+ - variable: overrideDefaults
+ group: App Configuration
+ label: Override Default Upstreams
+ description: Overrides the predefined DNS server upstream list
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: defaultUpstreams
+ label: Default Upstreams
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: upstreamEntry
+ label: Upstream Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: upstreams
+ group: App Configuration
+ label: Upstreams Groups
+ description: Refer to
+
https://0xerr0r.github.io/blocky/configuration/#upstream-configuration
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: upstreamsGroupEntry
+ label: Upstreams Group Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Group Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: upstreams
+ label: Upstreams
+ schema:
+ type: list
+ required: true
+ default: []
+ items:
+ - variable: upstreamEntry
+ label: upstream Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: bootstrapDns
+ group: App Configuration
+ label: Bootstrap DNS
+ description: Used to resolve upstream DoH and DoT servers that are specified as hostnames.
+
Refer to https://0xerr0r.github.io/blocky/configuration/#bootstrap-dns-configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: upstream
+ label: Upstream
+ schema:
+ type: string
+ default: ""
+ - variable: ips
+ label: IPs
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ipEntry
+ label: IP Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: additionalBootstrapDns
+ group: App Configuration
+ label: Additional Bootstrap DNS
+ schema:
+ type: list
+ show_if: [[ "bootstrapDns", "!=", {"upstream": "", "ips": []} ]]
+ default: []
+ items:
+ - variable: additionalBootstrapDnsEntry
+ label: Additional Bootstrap DNS Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: upstream
+ label: Upstream
+ schema:
+ type: string
+ default: ""
+ - variable: ips
+ label: IPs
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ipEntry
+ label: IP Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: filtering
+ group: App Configuration
+ label: Filtering
+ description: Define one or more DNS query types; all queries with these types will be dropped
+
Refer to https://0xerr0r.github.io/blocky/configuration/#filtering
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: queryTypes
+ label: Query Types
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: queryTypeEntry
+ label: Query Type Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: customDNS
+ group: App Configuration
+ label: Custom DNS
+ description: Define your own domain name to IP mappings.
+
Refer to https://0xerr0r.github.io/blocky/configuration/#custom-dns
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: customTTL
+ label: Custom TTL
+ schema:
+ type: string
+ default: 1h
+ - variable: filterUnmappedTypes
+ label: Filter Unmapped Types
+ schema:
+ type: boolean
+ default: true
+ - variable: rewrite
+ label: Rewrite
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: rewriteEntry
+ label: Rewrite Entry
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: in
+ label: In
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: out
+ label: Out
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: mapping
+ label: Mapping
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: mappingEntry
+ label: Mapping Entry
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: domain
+ label: Domain
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: dnsserver
+ label: DNS Server
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: clientLookup
+ group: App Configuration
+ label: Client Lookup
+ description: Blocky can try to resolve a user-friendly client name from the IP address or server URL (DoT and DoH)
+
Refer to https://0xerr0r.github.io/blocky/configuration/#client-name-lookup
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: upstream
+ label: Upstream
+ schema:
+ type: string
+ default: ""
+ - variable: singleNameOrder
+ label: Single Name Order
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: singleNameEntry
+ label: Single Name Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: clients
+ label: Clients
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: clientEntry
+ label: Client Entry
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: domain
+ label: Domain
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: ips
+ label: IPs
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ipEntry
+ label: IP Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: caching
+ group: App Configuration
+ label: Caching
+ description: Refer to
+
https://0xerr0r.github.io/blocky/configuration/#caching
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: minTime
+ label: Min Time
+ schema:
+ type: string
+ default: 5m
+ - variable: maxTime
+ label: Max Time
+ schema:
+ type: string
+ default: 30m
+ - variable: maxItemsCount
+ label: Max Items Count
+ schema:
+ type: int
+ default: 0
+ - variable: prefetching
+ label: Prefetching
+ schema:
+ type: boolean
+ default: false
+ - variable: prefetchExpires
+ label: Prefetch Expires
+ schema:
+ type: string
+ default: 2h
+ - variable: prefetchThreshold
+ label: Prefetch Threshold
+ schema:
+ type: int
+ default: 5
+ - variable: prefetchMaxItemsCount
+ label: Prefetch Max Items Count
+ schema:
+ type: int
+ default: 0
+ - variable: cacheTimeNegative
+ label: Cache Time Negative
+ schema:
+ type: string
+ default: 30m
+ - variable: conditional
+ group: App Configuration
+ label: Conditional
+ description: Define which DNS resolver(s) should be used for queries for the particular domain
+
Refer to https://0xerr0r.github.io/blocky/configuration/#conditional-dns-resolution
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: rewrite
+ label: Rewrite
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: rewriteEntry
+ label: Rewrite Entry
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: in
+ label: In
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: out
+ label: Out
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: mapping
+ label: Mapping
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: mappingEntry
+ label: Mapping Entry
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: domain
+ label: Domain
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: dnsserver
+ label: DNS Server
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: blocking
+ group: App Configuration
+ label: Blocking
+ description: Each black or whitelist can be either a path to the local file or a URL to download. All Urls must be grouped to a group name.
+
Refer to https://0xerr0r.github.io/blocky/configuration/#blocking-and-whitelisting
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: blockType
+ label: Block Type
+ description: Set the response should be sent to the client, if a requested query is blocked
+ schema:
+ type: string
+ default: nxDomain
+ - variable: blockTTL
+ label: Block TTL
+ description: Set the TTL for answers to blocked domains
+ schema:
+ type: string
+ default: 6h
+ - variable: refreshPeriod
+ label: Refresh Period
+ description: Set how often blocky should refresh list cache
+ schema:
+ type: string
+ default: 4h
+ - variable: downloadTimeout
+ label: Download Timeout
+ description: Download attempt timeout
+ schema:
+ type: string
+ default: 60s
+ - variable: downloadAttempts
+ label: Download Attempts
+ description: How many download attempts should be performed
+ schema:
+ type: int
+ default: 3
+ - variable: downloadCooldown
+ label: Download Cooldown
+ description: Time between the download attempts
+ schema:
+ type: string
+ default: 2s
+ - variable: startStrategy
+ label: Start Strategy
+ description: |
+ blocking: all blocking lists will be loaded before DNS resolution starts.
+ failOnError: like blocking but blocky will shut down if any download fails.
+ fast: DNS resolution starts immediately without blocking which will be enabled after list load is completed
+ schema:
+ type: string
+ default: blocking
+ enum:
+ - value: blocking
+ description: Blocking
+ - value: failOnError
+ description: Fail On Error
+ - value: fast
+ description: Fast
+ - variable: processingConcurrency
+ label: Processing Concurrency
+ description: Sets how many list-groups can be processed at the same time
+ schema:
+ type: int
+ default: 4
+ - variable: whitelist
+ label: Whitelist
+ description: Define whitelists, either URL or file
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: whitelistEntry
+ label: Whitelist Group Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Group Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: lists
+ label: Lists
+ schema:
+ type: list
+ required: true
+ default: []
+ items:
+ - variable: listEntry
+ label: List Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: blacklist
+ label: Blacklist
+ description: Define blacklists, either URL or file
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: blacklistEntry
+ label: Blacklist Group Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Group Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: lists
+ label: Lists
+ schema:
+ type: list
+ required: true
+ default: []
+ items:
+ - variable: listEntry
+ label: List Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: clientGroupsBlock
+ label: Client Groups Block
+ description: Define, which blocking group(s) should be used for which client in your network.
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: clientGroupBlockEntry
+ label: Client Group Block Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Client Group Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: groups
+ label: Groups
+ schema:
+ type: list
+ required: true
+ default: []
+ items:
+ - variable: groupEntry
+ label: Group Entry
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: hostsFile
+ group: App Configuration
+ label: Hosts File
+ description: You can enable resolving of entries, located in local hosts file.
+
Refer to https://0xerr0r.github.io/blocky/configuration/#hosts-file
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: filePath
+ label: File Path
+ schema:
+ type: string
+ default: /etc/hosts
+ - variable: hostsTTL
+ label: Hosts TTL
+ schema:
+ type: string
+ default: 60m
+ - variable: refreshPeriod
+ label: Refresh Period
+ schema:
+ type: string
+ default: 30m
+ - variable: queryLog
+ group: App Configuration
+ label: Query Logging configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type
+ schema:
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Console
+ - value: postgresql
+ description: postgresql
+ - value: csv
+ description: csv
+ - value: csv-client
+ description: csv-client
+ - variable: target
+ label: Target
+ schema:
+ type: string
+ show_if: [["type", "!=", "postgresql"]]
+ default: "/var/log/something"
+ - variable: logRetentionDays
+ label: Log Retention Days
+ schema:
+ type: int
+ default: 0
+ - variable: creationAttempts
+ label: Creation Attempts
+ schema:
+ type: int
+ default: 3
+ - variable: creationCooldown
+ label: Creation Cooldown
+ schema:
+ type: string
+ default: 2s
+ - variable: k8sgateway
+ group: App Configuration
+ label: k8s-Gateway Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable k8s-Gateway
+ description: Enables k8s-Gateway
+ schema:
+ type: boolean
+ default: true
+ show_subquestions_if: true
+ subquestions:
+ - variable: domains
+ label: Domains
+ description: Please refer to CoreDNS docs for options
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: domainEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: domain
+ label: Domain name
+ schema:
+ type: string
+ required: true
+ default: example.com
+ - variable: dnsChallenge
+ label: Forward dnsChallenge
+ description: Optional configuration option for DNS01 challenge that will redirect all acme
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: domain
+ label: Forward to Domain
+ schema:
+ type: string
+ required: true
+ default: dns01.clouddns.com
+ - variable: advancedOptions
+ label: Advanced Options
+ schema:
+ type: boolean
+ default: false
+ show_if: [["enabled", "=", true]]
+ show_subquestions_if: true
+ subquestions:
+ - variable: ttl
+ label: ttl
+ description: TTL for non-apex responses (in seconds)
+ schema:
+ type: int
+ default: 300
+ - variable: watchedResources
+ label: Watched Resources
+ description: imit what kind of resources to watch, e.g. Ingress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: watchedResource
+ label: Watched Resource
+ schema:
+ type: string
+ default: ""
+ - variable: secondary
+ label: Secondary DNS Server Service
+ description: Service name of a secondary DNS server (should be serviceName.namespace)
+ schema:
+ type: string
+ default: ""
+ - variable: apex
+ label: Apex
+ description: Override the default `serviceName.namespace` domain apex
+ schema:
+ type: string
+ 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: 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: 4000
+ required: true
+ - variable: dnstcp
+ label: DNS TCP Service
+ description: The DNS TCP service
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available 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: dnstcp
+ label: DNS TCP 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: 53
+ required: true
+ - variable: dnsudp
+ label: DNS UDP Service
+ description: The DNS UDP service
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available 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: dnsudp
+ label: DNS UDP 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: 53
+ required: true
+ - variable: dot
+ label: DoT Service
+ description: "DNS-over-TLS service"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: ClusterIP
+ 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: dot
+ label: DoT 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: 853
+ 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: 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: scaleCert
+ label: 'Use TrueNAS SCALE Certificate (Deprecated)'
+ schema:
+ show_if: [["certificateIssuer", "=", ""]]
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: ingressList
+ label: Add Manual Custom Ingresses
+ group: Ingress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ingressListEntry
+ label: Custom Ingress
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable Ingress
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ default: ""
+ - variable: ingressClassName
+ label: IngressClass Name
+ schema:
+ type: string
+ default: ""
+ - variable: hosts
+ label: Hosts
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: hostEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: host
+ label: HostName
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: paths
+ label: Paths
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: pathEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: path
+ label: Path
+ schema:
+ type: string
+ required: true
+ default: "/"
+ - variable: pathType
+ label: Path Type
+ schema:
+ type: string
+ required: true
+ default: Prefix
+ - variable: 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: scaleCert
+ label: Use TrueNAS SCALE Certificate (Deprecated)
+ schema:
+ show_if: [["certificateIssuer", "=", ""]]
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: clusterCertificate
+ label: 'Cluster Certificate (Advanced)'
+ description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.'
+ schema:
+ type: string
+ show_if: [["certificateIssuer", "=", ""]]
+ default: ""
+ - variable: secretName
+ label: Use Custom Secret (Advanced)
+ schema:
+ type: string
+ show_if: [["certificateIssuer", "=", ""]]
+ default: ""
+ - variable: integrations
+ label: Integrations
+ description: Connect ingress with other charts
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: traefik
+ label: Traefik
+ description: Connect ingress with Traefik
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: true
+ - variable: allowCors
+ label: "Allow Cross Origin Requests"
+ schema:
+ type: boolean
+ default: false
+ show_if: [["enabled", "=", true]]
+ - variable: entrypoints
+ label: Entrypoints
+ schema:
+ type: list
+ default: ["websecure"]
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: entrypoint
+ label: Entrypoint
+ schema:
+ type: string
+ - variable: middlewares
+ label: Middlewares
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: middleware
+ label: Middleware
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: namespace
+ label: namespace
+ schema:
+ type: string
+ default: ""
+ - variable: certManager
+ label: certManager
+ description: Connect ingress with certManager
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: true
+ - variable: certificateIssuer
+ label: certificateIssuer
+ description: defaults to chartname
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: homepage
+ label: Homepage
+ description: Connect ingress with Homepage
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: false
+ - variable: name
+ label: Name
+ description: defaults to chartname
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: description
+ label: Description
+ description: defaults to chart description
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: group
+ label: Group
+ schema:
+ type: string
+ required: true
+ default: "default"
+ show_if: [["enabled", "=", true]]
+ - variable: securityContext
+ group: Security and Permissions
+ label: Security Context
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: container
+ label: Container
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: runAsUser
+ label: "runAsUser"
+ description: "The UserID of the user running the application"
+ schema:
+ type: int
+ default: 568
+ - variable: runAsGroup
+ label: "runAsGroup"
+ description: "The groupID of the user running the application"
+ schema:
+ type: int
+ default: 568
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: PUID
+ label: Process User ID - PUID
+ description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps
+ schema:
+ type: int
+ show_if: [["runAsUser", "=", 0]]
+ default: 568
+ - variable: UMASK
+ label: UMASK
+ description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps
+ schema:
+ type: string
+ default: "0022"
+ - variable: advanced
+ label: Show Advanced Settings
+ description: Advanced settings are not covered by TrueCharts Support
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: privileged
+ label: "Privileged mode"
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnlyRootFilesystem
+ label: "ReadOnly Root Filesystem"
+ schema:
+ type: boolean
+ default: true
+ - variable: pod
+ label: Pod
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: fsGroupChangePolicy
+ label: "When should we take ownership?"
+ schema:
+ type: string
+ default: OnRootMismatch
+ enum:
+ - value: OnRootMismatch
+ description: OnRootMismatch
+ - value: Always
+ description: Always
+ - variable: supplementalGroups
+ label: Supplemental Groups
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: supplementalGroupsEntry
+ label: Supplemental Group
+ schema:
+ type: int
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: fsGroup
+ label: "fsGroup"
+ description: "The group that should own ALL storage."
+ schema:
+ type: int
+ default: 568
+ - variable: resources
+ group: Resources and Devices
+ label: "Resource Limits"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: limits
+ label: Advanced Limit Resource Consumption
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cpu
+ label: CPU
+ description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 4000m
+ valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
+ - variable: memory
+ label: RAM
+ description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 8Gi
+ valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
+ - variable: requests
+ label: "Minimum Resources Required (request)"
+ schema:
+ additional_attrs: true
+ type: dict
+ hidden: true
+ attrs:
+ - variable: cpu
+ label: CPU
+ description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 10m
+ hidden: true
+ valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
+ - variable: memory
+ label: "RAM"
+ description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 50Mi
+ hidden: true
+ valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
+ - variable: deviceList
+ label: Mount USB Devices
+ group: Resources and Devices
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: deviceListEntry
+ label: Device
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Storage
+ schema:
+ type: boolean
+ default: true
+ - variable: type
+ label: (Advanced) Type of Storage
+ description: Sets the persistence type
+ schema:
+ type: string
+ default: device
+ hidden: true
+ - variable: readOnly
+ label: readOnly
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: Host Device Path
+ description: Path to the device on the host system
+ schema:
+ type: path
+ - variable: mountPath
+ label: Container Device Path
+ description: Path inside the container the device is mounted
+ schema:
+ type: string
+ default: "/dev/ttyACM0"
+ - variable: scaleGPU
+ label: GPU Configuration
+ group: Resources and Devices
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: scaleGPUEntry
+ label: GPU
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ # Specify GPU configuration
+ - variable: gpu
+ label: Select GPU
+ schema:
+ additional_attrs: true
+ type: dict
+ $ref:
+ - "definitions/gpuConfiguration"
+ attrs: []
+ - variable: workaround
+ label: "Workaround"
+ schema:
+ type: string
+ default: workaround
+ hidden: true
+ - variable: cnpg
+ group: Postgresql
+ label: "CloudNative-PG (CNPG)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: "Main Postgresql Database"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: hibernate
+ label: Hibernate
+ description: "enable to safely hibernate and shutdown the postgresql cluster"
+ schema:
+ type: boolean
+ default: false
+ - variable: mode
+ label: Mode
+ description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.'
+ schema:
+ type: string
+ default: "standalone"
+ enum:
+ - value: standalone
+ description: standalone
+ - value: replica
+ description: replica
+ - value: recovery
+ description: recovery
+ - variable: cluster
+ label: "Cluster Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: instances
+ label: Instances
+ schema:
+ type: int
+ default: 1
+ - variable: singleNode
+ label: singleNode
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: storage
+ label: "Storage"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: size
+ label: Size
+ schema:
+ type: string
+ default: "256Gi"
+ - variable: walStorage
+ label: "WAL Storage"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: size
+ label: Size
+ schema:
+ type: string
+ default: "256Gi"
+ - variable: monitoring
+ label: "Monitoring Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enablePodMonitor
+ label: "enablePodMonitor"
+ schema:
+ type: boolean
+ default: true
+ - variable: disableDefaultQueries
+ label: "disableDefaultQueries"
+ schema:
+ type: boolean
+ default: false
+ - variable: pooler
+ label: "Pooler Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: instances
+ label: Instances
+ schema:
+ type: int
+ default: 1
+ - variable: createRO
+ label: "Create ReadOnly Instance"
+ schema:
+ type: boolean
+ default: false
+ - variable: recovery
+ label: "Recovery Settings (Experimental)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "enabled"
+ schema:
+ type: boolean
+ default: false
+ - variable: endpointURL
+ label: "endpointURL"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: method
+ label: "method"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "object_store"
+ - variable: backupName
+ label: "backupName"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: provider
+ label: "provider"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "s3"
+ enum:
+ - value: s3
+ description: S3
+ - value: azure
+ description: Azure
+ - value: google
+ description: Google
+ - variable: s3
+ label: "s3"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "s3"]]
+ attrs:
+ - variable: region
+ label: "region"
+ schema:
+ type: string
+ default: ""
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: accessKey
+ label: "accessKey"
+ schema:
+ type: string
+ default: ""
+ - variable: secretKey
+ label: "secretKey"
+ schema:
+ type: string
+ default: ""
+ - variable: azure
+ label: "azure (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "azure"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: connectionString
+ label: "connectionString"
+ schema:
+ type: string
+ default: ""
+ - variable: storageAccount
+ label: "storageAccount"
+ schema:
+ type: string
+ default: ""
+ - variable: storageKey
+ label: "storageKey"
+ schema:
+ type: string
+ default: ""
+ - variable: storageSasToken
+ label: "storageSasToken"
+ schema:
+ type: string
+ default: ""
+ - variable: containerName
+ label: "containerName"
+ schema:
+ type: string
+ default: ""
+ - variable: serviceName
+ label: "serviceName"
+ schema:
+ type: string
+ default: "blob"
+ - variable: inheritFromAzureAD
+ label: "inheritFromAzureAD"
+ schema:
+ type: boolean
+ default: false
+ - variable: google
+ label: "google (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "google"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: gkeEnvironment
+ label: "gkeEnvironment"
+ schema:
+ type: string
+ default: ""
+ - variable: applicationCredentials
+ label: "applicationCredentials"
+ schema:
+ type: string
+ default: ""
+ - variable: backups
+ label: "Backup Settings (Experimental)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "enabled"
+ schema:
+ type: boolean
+ default: false
+ - variable: endpointURL
+ label: "endpointURL"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: destinationPath
+ label: "destinationPath"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: retentionPolicy
+ label: "retentionPolicy"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "30d"
+ - variable: provider
+ label: "provider"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "s3"
+ enum:
+ - value: s3
+ description: S3
+ - value: azure
+ description: Azure
+ - value: google
+ description: Google
+ - variable: s3
+ label: "s3"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "s3"]]
+ attrs:
+ - variable: region
+ label: "region"
+ schema:
+ type: string
+ default: ""
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: accessKey
+ label: "accessKey"
+ schema:
+ type: string
+ default: ""
+ - variable: secretKey
+ label: "secretKey"
+ schema:
+ type: string
+ default: ""
+ - variable: azure
+ label: "azure (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "azure"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: connectionString
+ label: "connectionString"
+ schema:
+ type: string
+ default: ""
+ - variable: storageAccount
+ label: "storageAccount"
+ schema:
+ type: string
+ default: ""
+ - variable: storageKey
+ label: "storageKey"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: storageSasToken
+ label: "storageSasToken"
+ schema:
+ type: string
+ default: ""
+ - variable: containerName
+ label: "containerName"
+ schema:
+ type: string
+ default: ""
+ - variable: serviceName
+ label: "serviceName"
+ schema:
+ type: string
+ default: "blob"
+ - variable: inheritFromAzureAD
+ label: "inheritFromAzureAD"
+ schema:
+ type: boolean
+ default: false
+ - variable: google
+ label: "google (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "google"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: gkeEnvironment
+ label: "gkeEnvironment"
+ schema:
+ type: string
+ default: ""
+ - variable: applicationCredentials
+ label: "applicationCredentials"
+ schema:
+ type: string
+ default: ""
+ - variable: scheduledBackups
+ label: ScheduledBackups
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: backupschedule
+ label: BackupSchedule
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: "daily-backup"
+ required: true
+ - variable: schedule
+ label: schedule
+ schema:
+ type: string
+ required: true
+ default: "0 0 0 * * *"
+ - variable: backupOwnerReference
+ label: backupOwnerReference
+ schema:
+ type: string
+ required: true
+ default: "self"
+ - variable: immediate
+ label: immediate
+ schema:
+ type: boolean
+ default: false
+ - variable: suspend
+ label: suspend
+ schema:
+ type: boolean
+ default: false
+ - variable: manualBackups
+ label: manualBackups
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: backup
+ label: Backup
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: metrics
+ group: Metrics
+ label: Prometheus Metrics
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: Main Metrics
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ description: Enable Prometheus Metrics
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: prometheusRule
+ label: PrometheusRule
+ description: Enable and configure Prometheus Rules for the App.
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ description: Enable Prometheus Metrics
+ schema:
+ type: boolean
+ default: false
+ # TODO: Rule List section
+# - variable: horizontalPodAutoscaler
+# group: Advanced
+# label: (Advanced) Horizontal Pod Autoscaler
+# schema:
+# type: list
+# default: []
+# items:
+# - variable: hpaEntry
+# label: HPA Entry
+# schema:
+# additional_attrs: true
+# type: dict
+# attrs:
+# - variable: name
+# label: Name
+# schema:
+# type: string
+# required: true
+# default: ""
+# - variable: enabled
+# label: Enabled
+# schema:
+# type: boolean
+# default: false
+# show_subquestions_if: true
+# subquestions:
+# - variable: target
+# label: Target
+# description: Deployment name, Defaults to Main Deployment
+# schema:
+# type: string
+# default: ""
+# - variable: minReplicas
+# label: Minimum Replicas
+# schema:
+# type: int
+# default: 1
+# - variable: maxReplicas
+# label: Maximum Replicas
+# schema:
+# type: int
+# default: 5
+# - variable: targetCPUUtilizationPercentage
+# label: Target CPU Utilization Percentage
+# schema:
+# type: int
+# default: 80
+# - variable: targetMemoryUtilizationPercentage
+# label: Target Memory Utilization Percentage
+# schema:
+# type: int
+# default: 80
+ - variable: networkPolicy
+ group: Advanced
+ label: (Advanced) Network Policy
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: netPolicyEntry
+ label: Network Policy Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: policyType
+ label: Policy Type
+ schema:
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Default
+ - value: ingress
+ description: Ingress
+ - value: egress
+ description: Egress
+ - value: ingress-egress
+ description: Ingress and Egress
+ - variable: egress
+ label: Egress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: egressEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: to
+ label: To
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: toEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: ipBlock
+ label: IP Block
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cidr
+ label: CIDR
+ schema:
+ type: string
+ default: ""
+ - variable: except
+ label: Except
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: exceptint
+ label: ""
+ schema:
+ type: string
+ - variable: namespaceSelector
+ label: Namespace Selector
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: podSelector
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: ports
+ label: Ports
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ - variable: endPort
+ label: End Port
+ schema:
+ type: int
+ - variable: protocol
+ label: Protocol
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: TCP
+ description: TCP
+ - value: UDP
+ description: UDP
+ - value: SCTP
+ description: SCTP
+ - variable: ingress
+ label: Ingress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ingressEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: from
+ label: From
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: fromEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: ipBlock
+ label: IP Block
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cidr
+ label: CIDR
+ schema:
+ type: string
+ default: ""
+ - variable: except
+ label: Except
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: exceptint
+ label: ""
+ schema:
+ type: string
+ - variable: namespaceSelector
+ label: Namespace Selector
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: podSelector
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: ports
+ label: Ports
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ - variable: endPort
+ label: End Port
+ schema:
+ type: int
+ - variable: protocol
+ label: Protocol
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: TCP
+ description: TCP
+ - value: UDP
+ description: UDP
+ - value: SCTP
+ description: SCTP
+ - variable: addons
+ group: Addons
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: codeserver
+ label: Codeserver
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: service
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: NodePort
+ description: Deprecated CHANGE THIS
+ - value: ClusterIP
+ description: ClusterIP
+ - value: LoadBalancer
+ description: LoadBalancer
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: ports
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: codeserver
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ default: 36107
+ - variable: ingress
+ label: "Ingress"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable Ingress
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: hosts
+ label: Hosts
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: hostEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: host
+ label: HostName
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: paths
+ label: Paths
+ schema:
+ type: list
+ default: [{path: "/", pathType: "Prefix"}]
+ items:
+ - variable: pathEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: path
+ label: Path
+ schema:
+ type: string
+ required: true
+ default: "/"
+ - variable: pathType
+ label: Path Type
+ schema:
+ type: string
+ required: true
+ default: Prefix
+ - variable: 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/alist/8.1.6/templates/NOTES.txt b/enterprise/blocky/12.2.0/templates/NOTES.txt
similarity index 100%
rename from stable/alist/8.1.6/templates/NOTES.txt
rename to enterprise/blocky/12.2.0/templates/NOTES.txt
diff --git a/enterprise/blocky/12.2.0/templates/_blockyConfig.tpl b/enterprise/blocky/12.2.0/templates/_blockyConfig.tpl
new file mode 100644
index 0000000000..66f8f78e96
--- /dev/null
+++ b/enterprise/blocky/12.2.0/templates/_blockyConfig.tpl
@@ -0,0 +1,231 @@
+{{/* Define the config */}}
+{{- define "blocky.configmap" -}}
+{{- $config := mustMerge ( include "blocky.config" . | fromYaml ) ( .Values.blockyConfig ) }}
+enabled: true
+data:
+ config.yml: |
+{{ $config | toYaml | indent 4 }}
+{{- end -}}
+
+{{- define "blocky.config" -}}
+redis:
+ address: {{ printf "%v-%v" .Release.Name "redis" }}:6379
+ password: {{ .Values.redis.creds.redisPassword | trimAll "\"" }}
+ database: 0
+ required: true
+ connectionAttempts: 10
+ connectionCooldown: 3s
+prometheus:
+ enable: true
+ path: /metrics
+queryLog:
+ # optional one of: postgresql, csv, csv-client. If empty, log to console
+ type: {{ .Values.queryLog.type }}
+ # directory (should be mounted as volume in docker) for csv, db connection string for mysql/postgresql
+ #postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
+ {{- if eq .Values.queryLog.type "postgresql" }}
+ target: {{ .Values.cnpg.main.creds.std }}
+ {{- else }}
+ target: {{ .Values.queryLog.target }}
+ {{- end }}
+ # if > 0, deletes log files which are older than ... days
+ logRetentionDays: {{ .Values.queryLog.logRetentionDays | default 0 }}
+ # optional: Max attempts to create specific query log writer
+ creationAttempts: {{ .Values.queryLog.creationAttempts | default 3 }}
+ # optional: Time between the creation attempts
+ creationCooldown: {{ .Values.queryLog.creationAttempts | default "2s" }}
+
+upstream:
+ default:
+{{- .Values.defaultUpstreams | toYaml | nindent 8 }}
+{{- range $id, $value := .Values.upstreams }}
+ {{ $value.name }}:
+{{- $value.dnsservers | toYaml | nindent 8 }}
+{{- end }}
+
+ports:
+ {{- if .Values.service.dnsudp.enabled }}
+ dns: {{ .Values.service.dnsudp.ports.dnsudp.targetPort }}
+ {{- end }}
+ {{- if .Values.service.dot.enabled }}
+ tls: {{ .Values.service.dot.ports.dot.targetPort }}
+ {{- end }}
+ {{- if .Values.service.main.enabled }}
+ http: {{ .Values.service.main.ports.main.targetPort }}
+ {{- end }}
+ {{- if .Values.service.https.enabled }}
+ https: {{ .Values.service.https.ports.https.targetPort }}
+ {{- end }}
+
+{{- if .Values.certFile }}
+certFile: {{ .Values.certFile }}
+{{- end }}
+
+{{- if .Values.keyFile }}
+keyFile: {{ .Values.keyFile }}
+{{- end }}
+
+log:
+ {{- if .Values.logLevel }}
+ level: {{ .Values.logLevel }}
+ {{- end }}
+ {{- if .Values.logTimestamp }}
+ timestamp: {{ .Values.logTimestamp }}
+ {{- end }}
+ {{- if .Values.logPrivacy }}
+ privacy: {{ .Values.logPrivacy }}
+ {{- end }}
+
+{{- if .Values.dohUserAgent }}
+dohUserAgent: {{ .Values.dohUserAgent }}
+{{- end }}
+
+{{- if .Values.minTlsServeVersion }}
+minTlsServeVersion: {{ .Values.minTlsServeVersion }}
+{{- end }}
+
+caching:
+{{ toYaml .Values.caching | indent 2 }}
+
+{{- if .Values.hostsFile.enabled }}
+{{ $hostsfile := omit .Values.hostsFile "enabled" }}
+hostsFile:
+{{ toYaml $hostsfile | indent 2 }}
+{{- end }}
+
+{{- if or .Values.bootstrapDns.upstream .Values.bootstrapDns.ips }}
+bootstrapDns:
+ {{- if .Values.bootstrapDns.upstream }}
+ - upstream: {{ .Values.bootstrapDns.upstream }}
+ {{- end }}
+ {{- if .Values.bootstrapDns.ips }}
+ ips:
+ {{- range $id, $value := .Values.bootstrapDns.ips }}
+ - {{ $value }}
+ {{- end }}
+ {{- end }}
+ {{/* Add additional Bootstrap DNS */}}
+ {{- range .Values.additionalBootstrapDns }}
+ {{- with .upstream }}
+ - upstream: {{ . }}
+ {{- end }}
+ {{- if .ips }}
+ ips:
+ {{- range $id, $value := .ips }}
+ - {{ $value }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+{{- end }}
+
+{{- if or .Values.filtering.filtering }}
+filtering:
+{{- if .Values.filtering.ips }}
+ queryTypes:
+{{- range $id, $value := .Values.filtering.ips }}
+ - {{ $value }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{- if or .Values.customDNS.filterUnmappedTypes .Values.customDNS.customTTL .Values.customDNS.rewrite .Values.customDNS.mapping }}
+customDNS:
+{{- if .Values.customDNS.upstream }}
+ upstream: {{ .Values.customDNS.upstream }}
+{{- end }}
+{{- if .Values.customDNS.customTTL }}
+ customTTL: {{ .Values.customDNS.customTTL }}
+{{- end }}
+{{- if .Values.customDNS.rewrite }}
+ rewrite:
+{{- range $id, $value := .Values.customDNS.rewrite }}
+ {{ $value.in }}: {{ $value.out }}
+{{- end }}
+{{- end }}
+
+{{- if .Values.customDNS.mapping }}
+ mapping:
+{{- range $id, $value := .Values.customDNS.mapping }}
+ {{ $value.domain }}: {{ $value.dnsserver }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{- if or .Values.clientLookup.upstream .Values.clientLookup.ips }}
+clientLookup:
+{{- if .Values.clientLookup.upstream }}
+ upstream: {{ .Values.clientLookup.upstream }}
+{{- end }}
+{{- if .Values.clientLookup.ips }}
+ singleNameOrder:
+{{- range $id, $value := .Values.clientLookup.ips }}
+ - {{ $value }}
+{{- end }}
+{{- end }}
+{{- if .Values.clientLookup.clients }}
+ clients:
+{{- range $id, $value := .Values.clientLookup.clients }}
+ {{ $value.domain }}:
+ {{- range $id, $value := .ips }}
+ - {{ $value }}
+ {{- end }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{- if or .Values.conditional.rewrite .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
+conditional:
+{{- if .Values.conditional.rewrite }}
+ rewrite:
+{{- range $id, $value := .Values.conditional.rewrite }}
+ {{ $value.in }}: {{ $value.out }}
+{{- end }}
+{{- end }}
+
+{{- if or .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
+ mapping:
+{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains }}
+{{- range $id, $value := .Values.k8sgateway.domains }}
+ {{ .domain }}: 127.0.0.1:{{ $.Values.service.k8sgateway.ports.k8sgateway.targetPort }}
+{{- end }}
+{{- end }}
+{{- range $id, $value := .Values.conditional.mapping }}
+ {{ $value.domain }}: {{ $value.dnsserver }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+blocking:
+ blockType: {{ .Values.blocking.blockType }}
+ blockTTL: {{ .Values.blocking.blockTTL }}
+ refreshPeriod: {{ .Values.blocking.refreshPeriod }}
+ downloadTimeout: {{ .Values.blocking.downloadTimeout }}
+ downloadAttempts: {{ .Values.blocking.downloadAttempts }}
+ downloadCooldown: {{ .Values.blocking.downloadCooldown }}
+ startStrategy: {{ .Values.blocking.startStrategy }}
+ processingConcurrency: {{ .Values.blocking.processingConcurrency }}
+{{- if .Values.blocking.whitelist }}
+ whiteLists:
+{{- range $id, $value := .Values.blocking.whitelist }}
+ {{ $value.name }}:
+{{- $value.lists | toYaml | nindent 10 }}
+{{- end }}
+{{- end }}
+
+{{- if .Values.blocking.blacklist }}
+ blackLists:
+{{- range $id, $value := .Values.blocking.blacklist }}
+ {{ $value.name }}:
+{{- $value.lists | toYaml | nindent 10 }}
+{{- end }}
+{{- end }}
+
+{{- if .Values.blocking.clientGroupsBlock }}
+ clientGroupsBlock:
+{{- range $id, $value := .Values.blocking.clientGroupsBlock }}
+ {{ $value.name }}:
+{{- $value.groups | toYaml | nindent 10 }}
+{{- end }}
+{{- end }}
+
+{{- end -}}
diff --git a/enterprise/blocky/12.2.0/templates/_k8sgateway.tpl b/enterprise/blocky/12.2.0/templates/_k8sgateway.tpl
new file mode 100644
index 0000000000..463923f85d
--- /dev/null
+++ b/enterprise/blocky/12.2.0/templates/_k8sgateway.tpl
@@ -0,0 +1,90 @@
+{{- define "k8sgateway.container" -}}
+enabled: true
+imageSelector: k8sgatewayImage
+securityContext:
+ runAsUser: 0
+ runAsGroup: 0
+ readOnlyRootFilesystem: true
+args: ["-conf", "/etc/coredns/Corefile"]
+probes:
+ readiness:
+ enabled: true
+ path: /ready
+ port: 8181
+ liveness:
+ enabled: true
+ path: /health
+ port: 8080
+ startup:
+ enabled: true
+ path: /ready
+ port: 8181
+{{- end -}}
+
+{{/*
+Create the matchable regex from domain
+*/}}
+{{- define "k8sgateway.configmap.regex" -}}
+{{- if .dnsChallenge.domain }}
+{{- .dnsChallenge.domain | replace "." "[.]" -}}
+{{- else -}}
+ {{ "unset" }}
+{{- end }}
+{{- end -}}
+
+{{/* Define the configmap */}}
+{{- define "k8sgateway.configmap" -}}
+{{- $values := .Values.k8sgateway }}
+{{- $fqdn := ( include "tc.v1.common.lib.chart.names.fqdn" . ) }}
+enabled: true
+data:
+ Corefile: |
+ .:{{ .Values.service.k8sgateway.ports.k8sgateway.targetPort }} {
+ errors
+ log
+ health {
+ lameduck 5s
+ }
+ ready
+ {{- range .Values.k8sgateway.domains }}
+ {{- if .dnsChallenge.enabled }}
+ {{- if not .dnsChallenge.domain -}}
+ {{- fail "DNS01 challenge domain is mandatory" -}}
+ {{- end }}
+
+ template IN ANY {{ required "Delegated domain ('domain') is mandatory" .domain }} {
+ match "_acme-challenge[.](.*)[.]{{ include "k8sgateway.configmap.regex" . }}"
+ {{- $name := "{{ \"{{ .Name }}\" }}" }}
+ {{- $index := "{{ \"{{ index .Match 1 }}\" }}" }}
+ answer "{{ $name }} 5 IN CNAME {{ $index }}.{{ .dnsChallenge.domain }}"
+ fallthrough
+ }
+ {{- end }}
+ {{- end }}
+ k8s_gateway {{ range .Values.k8sgateway.domains }}"{{ required "Delegated domain ('domain') is mandatory " .domain }}"{{ end }} {
+ apex {{ $values.apex | default $fqdn }}
+ ttl {{ $values.ttl }}
+ {{- if $values.secondary }}
+ secondary {{ $values.secondary }}
+ {{- end }}
+ {{- if $values.watchedResources }}
+ resources {{ join " " $values.watchedResources }}
+ {{- end }}
+ fallthrough
+ }
+
+ prometheus 0.0.0.0:9153
+ {{- if .Values.k8sgateway.forward.enabled }}
+ forward . {{ .Values.k8sgateway.forward.primary }} {{ .Values.k8sgateway.forward.secondary }} {
+ {{- range .Values.k8sgateway.forward.options }}
+ {{ .name }} {{ .value }}
+ {{- end }}
+ }
+ {{- else }}
+ forward . 1.1.1.1
+ {{- end }}
+ loop
+ reload
+ loadbalance
+ }
+{{- end -}}
diff --git a/enterprise/blocky/12.2.0/templates/common.yaml b/enterprise/blocky/12.2.0/templates/common.yaml
new file mode 100644
index 0000000000..310ef64af8
--- /dev/null
+++ b/enterprise/blocky/12.2.0/templates/common.yaml
@@ -0,0 +1,106 @@
+{{/* Make sure all variables are set properly */}}
+{{- if eq .Values.queryLog.type "postgresql" -}}
+ {{- $_ := set .Values.cnpg.main "enabled" true -}}
+{{- end }}
+{{- include "tc.v1.common.loader.init" . }}
+
+{{/* Render configmap for blocky */}}
+{{- $configmapFile := include "blocky.configmap" . | fromYaml -}}
+{{- if $configmapFile -}}
+ {{- $_ := set .Values.configmap "config" $configmapFile -}}
+{{- end -}}
+
+{{- $gatewayconfig := include "k8sgateway.configmap" . | fromYaml -}}
+{{- if $gatewayconfig -}}
+ {{- $_ := set .Values.configmap "corefile" $gatewayconfig -}}
+{{- end -}}
+
+{{/* Always mount the configmap, with the basic config, plus the 'blockyConfig' */}}
+{{- define "blocky.configmap.mount" -}}
+enabled: true
+type: configmap
+mountPath: /app/config.yml
+objectName: config
+readOnly: true
+subPath: config.yml
+{{- end -}}
+
+{{/* Append the general configMap volume to the volumes */}}
+{{- define "k8sgateway.configvolume" -}}
+enabled: true
+type: configmap
+objectName: corefile
+items:
+ - key: Corefile
+ path: Corefile
+targetSelector:
+ main:
+ k8sgateway:
+ mountPath: "/etc/coredns"
+ readOnly: true
+
+{{- end -}}
+
+{{- $_ := set .Values.persistence "tc-config" (include "blocky.configmap.mount" . | fromYaml) -}}
+
+{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains -}}
+{{- $_ := set .Values.persistence "config-volume" (include "k8sgateway.configvolume" . | fromYaml) -}}
+{{- $_ := set .Values.workload.main.podSpec.containers "k8sgateway" (include "k8sgateway.container" . | fromYaml) -}}
+{{- end -}}
+
+{{/* Define path for api */}}
+{{- define "blocky.api" -}}
+{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . -}}
+path: "/api"
+# -- Ignored if not kubeVersion >= 1.14-0
+pathType: Prefix
+service:
+ # -- Overrides the service name reference for this path
+ name: {{ printf "%s-main" $fullname }}
+ port: {{ .Values.service.main.ports.main.port }}
+{{- end -}}
+
+{{/* inject websocket path to all main ingress hosts*/}}
+{{- define "blocky.apiinjector" -}}
+{{- $path := list (include "blocky.api" . | fromYaml) -}}
+{{- if .Values.ingress.main.enabled }}
+{{- range .Values.ingress.main.hosts }}
+{{- $newpaths := list }}
+{{- $newpaths := concat .paths $path }}
+{{- $_ := set . "paths" ( deepCopy $newpaths ) -}}
+{{- end }}
+{{- end }}
+{{- end -}}
+
+{{/* inject api paths in ingress */}}
+{{- include "blocky.apiinjector" . }}
+
+{{/* Define path for DoH */}}
+{{- define "blocky.doh" -}}
+{{- $fullname := include "tc.v1.common.lib.chart.names.fullname" . -}}
+path: "/dns-query"
+# -- Ignored if not kubeVersion >= 1.14-0
+pathType: Prefix
+service:
+ # -- Overrides the service name reference for this path
+ name: {{ printf "%s-main" $fullname }}
+ port: {{ .Values.service.main.ports.main.port }}
+{{- end -}}
+
+{{/* inject websocket path to all main ingress hosts*/}}
+{{- define "blocky.dohinjector" -}}
+{{- $path := list (include "blocky.doh" . | fromYaml) -}}
+{{- if .Values.ingress.main.enabled }}
+{{- range .Values.ingress.main.hosts }}
+{{- $newpaths := list }}
+{{- $newpaths := concat .paths $path }}
+{{- $_ := set . "paths" ( deepCopy $newpaths ) -}}
+{{- end }}
+{{- end }}
+{{- end -}}
+
+{{/* inject api paths in ingress */}}
+{{- include "blocky.dohinjector" . }}
+
+{{/* Render the templates */}}
+{{ include "tc.v1.common.loader.apply" . }}
diff --git a/stable/alist/8.1.6/values.yaml b/enterprise/blocky/12.2.0/values.yaml
similarity index 100%
rename from stable/alist/8.1.6/values.yaml
rename to enterprise/blocky/12.2.0/values.yaml
diff --git a/stable/alist/8.1.6/app-changelog.md b/stable/alist/8.1.6/app-changelog.md
deleted file mode 100644
index 89ae0bd6a7..0000000000
--- a/stable/alist/8.1.6/app-changelog.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-## [alist-8.1.6](https://github.com/truecharts/charts/compare/alist-8.1.5...alist-8.1.6) (2024-01-02)
-
-### Chore
-
-
-
-- force bump to ensure up-to-date catalogs
\ No newline at end of file
diff --git a/stable/alist/8.1.6/CHANGELOG.md b/stable/alist/8.2.0/CHANGELOG.md
similarity index 89%
rename from stable/alist/8.1.6/CHANGELOG.md
rename to stable/alist/8.2.0/CHANGELOG.md
index 6db0682f95..bef4047a97 100644
--- a/stable/alist/8.1.6/CHANGELOG.md
+++ b/stable/alist/8.2.0/CHANGELOG.md
@@ -7,6 +7,15 @@ title: Changelog
+## [alist-8.2.0](https://github.com/truecharts/charts/compare/alist-8.1.6...alist-8.2.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image xhofe/alist to v3.30.0[@084ba82](https://github.com/084ba82) by renovate ([#17024](https://github.com/truecharts/charts/issues/17024))
+
+
## [alist-8.1.6](https://github.com/truecharts/charts/compare/alist-8.1.5...alist-8.1.6) (2024-01-02)
### Chore
@@ -88,12 +97,3 @@ title: Changelog
- update helm chart common to 17.1.0 by renovate ([#16532](https://github.com/truecharts/charts/issues/16532))
-## [alist-7.0.11](https://github.com/truecharts/charts/compare/alist-7.0.10...alist-7.0.11) (2023-12-24)
-
-### Chore
-
-- update helm general non-major by renovate ([#16384](https://github.com/truecharts/charts/issues/16384))
-
-## [alist-7.0.10](https://github.com/truecharts/charts/compare/alist-7.0.9...alist-7.0.10) (2023-12-24)
-
-### Chore
diff --git a/stable/alist/8.1.6/Chart.yaml b/stable/alist/8.2.0/Chart.yaml
similarity index 96%
rename from stable/alist/8.1.6/Chart.yaml
rename to stable/alist/8.2.0/Chart.yaml
index 201cc3bc61..6d88b293c3 100644
--- a/stable/alist/8.1.6/Chart.yaml
+++ b/stable/alist/8.2.0/Chart.yaml
@@ -1,16 +1,16 @@
kubeVersion: ">=1.24.0-0"
apiVersion: v2
name: alist
-version: 8.1.6
-appVersion: 3.29.1
+version: 8.2.0
+appVersion: 3.30.0
description: Alist program that supports multiple storage, powered by Gin and React
home: https://truecharts.org/charts/stable/alist
icon: https://truecharts.org/img/hotlink-ok/chart-icons/alist.png
deprecated: false
sources:
+ - https://github.com/Xhofe/alist
- https://github.com/truecharts/charts/tree/master/charts/stable/alist
- https://hub.docker.com/r/xhofe/alist
- - https://github.com/Xhofe/alist
maintainers:
- name: TrueCharts
email: info@truecharts.org
diff --git a/stable/alist/8.1.6/README.md b/stable/alist/8.2.0/README.md
similarity index 100%
rename from stable/alist/8.1.6/README.md
rename to stable/alist/8.2.0/README.md
diff --git a/stable/alist/8.2.0/app-changelog.md b/stable/alist/8.2.0/app-changelog.md
new file mode 100644
index 0000000000..5c336e877e
--- /dev/null
+++ b/stable/alist/8.2.0/app-changelog.md
@@ -0,0 +1,9 @@
+
+
+## [alist-8.2.0](https://github.com/truecharts/charts/compare/alist-8.1.6...alist-8.2.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image xhofe/alist to v3.30.0[@084ba82](https://github.com/084ba82) by renovate ([#17024](https://github.com/truecharts/charts/issues/17024))
\ No newline at end of file
diff --git a/stable/alist/8.1.6/app-readme.md b/stable/alist/8.2.0/app-readme.md
similarity index 100%
rename from stable/alist/8.1.6/app-readme.md
rename to stable/alist/8.2.0/app-readme.md
diff --git a/stable/ghostfolio/3.3.0/charts/common-17.2.21.tgz b/stable/alist/8.2.0/charts/common-17.2.21.tgz
similarity index 100%
rename from stable/ghostfolio/3.3.0/charts/common-17.2.21.tgz
rename to stable/alist/8.2.0/charts/common-17.2.21.tgz
diff --git a/stable/alist/8.1.6/ix_values.yaml b/stable/alist/8.2.0/ix_values.yaml
similarity index 88%
rename from stable/alist/8.1.6/ix_values.yaml
rename to stable/alist/8.2.0/ix_values.yaml
index 411088777d..d138a8be10 100644
--- a/stable/alist/8.1.6/ix_values.yaml
+++ b/stable/alist/8.2.0/ix_values.yaml
@@ -1,7 +1,7 @@
image:
repository: xhofe/alist
pullPolicy: IfNotPresent
- tag: v3.29.1@sha256:33f0cc7823ff0fc0e7f590c91c6b1e8945025ff611ed317724c91fb8444a2a07
+ tag: v3.30.0@sha256:084ba82603563ac6e178d1d2bb90e6b3417efeca90a59aa75f7d1c60db7a5b26
securityContext:
container:
readOnlyRootFilesystem: false
diff --git a/stable/alist/8.1.6/questions.yaml b/stable/alist/8.2.0/questions.yaml
similarity index 99%
rename from stable/alist/8.1.6/questions.yaml
rename to stable/alist/8.2.0/questions.yaml
index 65bc9af373..b05d402e21 100644
--- a/stable/alist/8.1.6/questions.yaml
+++ b/stable/alist/8.2.0/questions.yaml
@@ -238,30 +238,42 @@ questions:
type: dict
additional_attrs: true
attrs:
- - variable: registry
- label: "Registry"
+ - variable: enabled
+ label: Enabled
schema:
- type: string
- required: true
- default: "https://index.docker.io/v1/"
- - variable: username
- label: "Username"
+ type: boolean
+ default: true
+ - variable: data
+ label: Data
schema:
- type: string
- required: true
- default: ""
- - variable: password
- label: "Password"
- schema:
- type: string
- required: true
- default: ""
- - variable: email
- label: "Email"
- schema:
- type: string
- required: true
- default: ""
+ 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)
diff --git a/stable/ghostfolio/3.3.0/templates/NOTES.txt b/stable/alist/8.2.0/templates/NOTES.txt
similarity index 100%
rename from stable/ghostfolio/3.3.0/templates/NOTES.txt
rename to stable/alist/8.2.0/templates/NOTES.txt
diff --git a/stable/alist/8.1.6/templates/common.yaml b/stable/alist/8.2.0/templates/common.yaml
similarity index 100%
rename from stable/alist/8.1.6/templates/common.yaml
rename to stable/alist/8.2.0/templates/common.yaml
diff --git a/stable/ghostfolio/3.3.0/values.yaml b/stable/alist/8.2.0/values.yaml
similarity index 100%
rename from stable/ghostfolio/3.3.0/values.yaml
rename to stable/alist/8.2.0/values.yaml
diff --git a/stable/ghostfolio/3.3.0/app-changelog.md b/stable/ghostfolio/3.3.0/app-changelog.md
deleted file mode 100644
index c7e267eead..0000000000
--- a/stable/ghostfolio/3.3.0/app-changelog.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-## [ghostfolio-3.3.0](https://github.com/truecharts/charts/compare/ghostfolio-3.2.8...ghostfolio-3.3.0) (2024-01-03)
-
-### Chore
-
-
-
-- update container image ghostfolio/ghostfolio to v2.34.0[@a939a35](https://github.com/a939a35) by renovate ([#16833](https://github.com/truecharts/charts/issues/16833))
\ No newline at end of file
diff --git a/stable/ghostfolio/3.3.0/CHANGELOG.md b/stable/ghostfolio/3.4.0/CHANGELOG.md
similarity index 84%
rename from stable/ghostfolio/3.3.0/CHANGELOG.md
rename to stable/ghostfolio/3.4.0/CHANGELOG.md
index e193aa131f..843468220b 100644
--- a/stable/ghostfolio/3.3.0/CHANGELOG.md
+++ b/stable/ghostfolio/3.4.0/CHANGELOG.md
@@ -7,6 +7,15 @@ title: Changelog
+## [ghostfolio-3.4.0](https://github.com/truecharts/charts/compare/ghostfolio-3.3.0...ghostfolio-3.4.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image ghostfolio/ghostfolio to v2.36.0[@a25ab06](https://github.com/a25ab06) by renovate ([#17019](https://github.com/truecharts/charts/issues/17019))
+
+
## [ghostfolio-3.3.0](https://github.com/truecharts/charts/compare/ghostfolio-3.2.8...ghostfolio-3.3.0) (2024-01-03)
### Chore
@@ -88,12 +97,3 @@ title: Changelog
- bump all charts for OCI test push
-- move everything to consume OCI-hosted common-chart dependency
-
-- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732))
-
-- standardize ./img references ([#16704](https://github.com/truecharts/charts/issues/16704))
-## [ghostfolio-3.2.0](https://github.com/truecharts/charts/compare/ghostfolio-3.1.0...ghostfolio-3.2.0) (2023-12-31)
-
-### Chore
-
diff --git a/stable/ghostfolio/3.3.0/Chart.yaml b/stable/ghostfolio/3.4.0/Chart.yaml
similarity index 97%
rename from stable/ghostfolio/3.3.0/Chart.yaml
rename to stable/ghostfolio/3.4.0/Chart.yaml
index 36c774685b..bebcb980ed 100644
--- a/stable/ghostfolio/3.3.0/Chart.yaml
+++ b/stable/ghostfolio/3.4.0/Chart.yaml
@@ -1,17 +1,17 @@
kubeVersion: ">=1.24.0-0"
apiVersion: v2
name: ghostfolio
-version: 3.3.0
-appVersion: 2.34.0
+version: 3.4.0
+appVersion: 2.36.0
description: Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions.
home: https://truecharts.org/charts/stable/ghostfolio
icon: https://truecharts.org/img/hotlink-ok/chart-icons/ghostfolio.png
deprecated: false
sources:
- - https://github.com/ghostfolio/ghostfolio
+ - https://ghostfol.io/
- https://github.com/truecharts/charts/tree/master/charts/stable/ghostfolio
- https://hub.docker.com/r/ghostfolio/ghostfolio
- - https://ghostfol.io/
+ - https://github.com/ghostfolio/ghostfolio
maintainers:
- name: TrueCharts
email: info@truecharts.org
diff --git a/stable/ghostfolio/3.3.0/README.md b/stable/ghostfolio/3.4.0/README.md
similarity index 100%
rename from stable/ghostfolio/3.3.0/README.md
rename to stable/ghostfolio/3.4.0/README.md
diff --git a/stable/ghostfolio/3.4.0/app-changelog.md b/stable/ghostfolio/3.4.0/app-changelog.md
new file mode 100644
index 0000000000..e9d5320c1b
--- /dev/null
+++ b/stable/ghostfolio/3.4.0/app-changelog.md
@@ -0,0 +1,9 @@
+
+
+## [ghostfolio-3.4.0](https://github.com/truecharts/charts/compare/ghostfolio-3.3.0...ghostfolio-3.4.0) (2024-01-08)
+
+### Chore
+
+
+
+- update container image ghostfolio/ghostfolio to v2.36.0[@a25ab06](https://github.com/a25ab06) by renovate ([#17019](https://github.com/truecharts/charts/issues/17019))
\ No newline at end of file
diff --git a/stable/ghostfolio/3.3.0/app-readme.md b/stable/ghostfolio/3.4.0/app-readme.md
similarity index 100%
rename from stable/ghostfolio/3.3.0/app-readme.md
rename to stable/ghostfolio/3.4.0/app-readme.md
diff --git a/stable/ghostfolio/3.4.0/charts/common-17.2.21.tgz b/stable/ghostfolio/3.4.0/charts/common-17.2.21.tgz
new file mode 100644
index 0000000000..247e7e80d5
Binary files /dev/null and b/stable/ghostfolio/3.4.0/charts/common-17.2.21.tgz differ
diff --git a/stable/ghostfolio/3.4.0/charts/redis-11.1.6.tgz b/stable/ghostfolio/3.4.0/charts/redis-11.1.6.tgz
new file mode 100644
index 0000000000..f65cde0826
Binary files /dev/null and b/stable/ghostfolio/3.4.0/charts/redis-11.1.6.tgz differ
diff --git a/stable/ghostfolio/3.3.0/ix_values.yaml b/stable/ghostfolio/3.4.0/ix_values.yaml
similarity index 94%
rename from stable/ghostfolio/3.3.0/ix_values.yaml
rename to stable/ghostfolio/3.4.0/ix_values.yaml
index 8739ef2225..61de1c5d0a 100644
--- a/stable/ghostfolio/3.3.0/ix_values.yaml
+++ b/stable/ghostfolio/3.4.0/ix_values.yaml
@@ -1,7 +1,7 @@
image:
repository: ghostfolio/ghostfolio
pullPolicy: IfNotPresent
- tag: 2.34.0@sha256:a939a3573246a0650fa6b2489349d9746ebd86b7bac1f0bd944a8f695668cf45
+ tag: 2.36.0@sha256:a25ab067116fc23d53985570fff4f9c2ad8cc5f03b6e508d15f3948212d88b7b
securityContext:
container:
runAsNonRoot: false
diff --git a/stable/ghostfolio/3.3.0/questions.yaml b/stable/ghostfolio/3.4.0/questions.yaml
similarity index 99%
rename from stable/ghostfolio/3.3.0/questions.yaml
rename to stable/ghostfolio/3.4.0/questions.yaml
index f7d15163a4..50bfea6010 100644
--- a/stable/ghostfolio/3.3.0/questions.yaml
+++ b/stable/ghostfolio/3.4.0/questions.yaml
@@ -1529,7 +1529,7 @@ questions:
label: Instances
schema:
type: int
- default: 2
+ default: 1
- variable: singleNode
label: singleNode
schema:
@@ -1584,7 +1584,7 @@ questions:
label: Instances
schema:
type: int
- default: 2
+ default: 1
- variable: createRO
label: "Create ReadOnly Instance"
schema:
diff --git a/stable/ghostfolio/3.4.0/templates/NOTES.txt b/stable/ghostfolio/3.4.0/templates/NOTES.txt
new file mode 100644
index 0000000000..efcb74cb77
--- /dev/null
+++ b/stable/ghostfolio/3.4.0/templates/NOTES.txt
@@ -0,0 +1 @@
+{{- include "tc.v1.common.lib.chart.notes" $ -}}
diff --git a/stable/ghostfolio/3.3.0/templates/_secrets.tpl b/stable/ghostfolio/3.4.0/templates/_secrets.tpl
similarity index 100%
rename from stable/ghostfolio/3.3.0/templates/_secrets.tpl
rename to stable/ghostfolio/3.4.0/templates/_secrets.tpl
diff --git a/stable/ghostfolio/3.3.0/templates/common.yaml b/stable/ghostfolio/3.4.0/templates/common.yaml
similarity index 100%
rename from stable/ghostfolio/3.3.0/templates/common.yaml
rename to stable/ghostfolio/3.4.0/templates/common.yaml
diff --git a/stable/ghostfolio/3.4.0/values.yaml b/stable/ghostfolio/3.4.0/values.yaml
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/stable/shlink/12.1.10/CHANGELOG.md b/stable/shlink/12.1.10/CHANGELOG.md
new file mode 100644
index 0000000000..21882c55a2
--- /dev/null
+++ b/stable/shlink/12.1.10/CHANGELOG.md
@@ -0,0 +1,99 @@
+---
+title: Changelog
+---
+
+**Important:**
+*for the complete changelog, please refer to the website*
+
+
+
+## [shlink-12.1.10](https://github.com/truecharts/charts/compare/shlink-12.1.9...shlink-12.1.10) (2024-01-08)
+
+### Chore
+
+
+
+- update container image shlinkio/shlink to v3.7.3[@c70cf1b](https://github.com/c70cf1b) by renovate ([#17010](https://github.com/truecharts/charts/issues/17010))
+
+
+## [shlink-12.1.9](https://github.com/truecharts/charts/compare/shlink-12.1.8...shlink-12.1.9) (2024-01-02)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16820](https://github.com/truecharts/charts/issues/16820))
+
+
+## [shlink-12.1.8](https://github.com/truecharts/charts/compare/shlink-12.1.7...shlink-12.1.8) (2024-01-02)
+
+### Chore
+
+
+
+- force bump to ensure up-to-date catalogs
+
+
+## [shlink-12.1.7](https://github.com/truecharts/charts/compare/shlink-12.1.6...shlink-12.1.7) (2024-01-02)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16743](https://github.com/truecharts/charts/issues/16743))
+
+
+## [shlink-12.1.6](https://github.com/truecharts/charts/compare/shlink-12.1.5...shlink-12.1.6) (2024-01-01)
+
+### Chore
+
+
+
+- increase common version for oci fixes
+
+
+## [shlink-12.1.5](https://github.com/truecharts/charts/compare/shlink-12.1.4...shlink-12.1.5) (2024-01-01)
+
+### Chore
+
+
+
+- update helm general non-major by renovate ([#16734](https://github.com/truecharts/charts/issues/16734))
+
+- remove non-existent template refs ([#16738](https://github.com/truecharts/charts/issues/16738))
+
+
+## [shlink-12.1.4](https://github.com/truecharts/charts/compare/shlink-12.1.1...shlink-12.1.4) (2024-01-01)
+
+### Chore
+
+
+
+- bump all charts for OCI test push
+
+- move everything to consume OCI-hosted common-chart dependency
+
+- update container image common to v17.2.19[@4ebb688](https://github.com/4ebb688) by renovate ([#16733](https://github.com/truecharts/charts/issues/16733))
+
+- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732))
+
+- standardize ./img references ([#16704](https://github.com/truecharts/charts/issues/16704))
+
+
+## [shlink-12.1.3](https://github.com/truecharts/charts/compare/shlink-12.1.1...shlink-12.1.3) (2024-01-01)
+
+### Chore
+
+
+
+- bump all charts for OCI test push
+
+- move everything to consume OCI-hosted common-chart dependency
+
+- update container image common to v17.2.18[@085ba3c](https://github.com/085ba3c) by renovate ([#16732](https://github.com/truecharts/charts/issues/16732))
+
+- standardize ./img references ([#16704](https://github.com/truecharts/charts/issues/16704))
+## [shlink-12.1.1](https://github.com/truecharts/charts/compare/shlink-12.1.0...shlink-12.1.1) (2023-12-31)
+
+### Chore
+
diff --git a/stable/shlink/12.1.10/Chart.yaml b/stable/shlink/12.1.10/Chart.yaml
new file mode 100644
index 0000000000..03d8de2988
--- /dev/null
+++ b/stable/shlink/12.1.10/Chart.yaml
@@ -0,0 +1,44 @@
+kubeVersion: ">=1.24.0-0"
+apiVersion: v2
+name: shlink
+version: 12.1.10
+appVersion: 3.7.3
+description: A PHP-based self-hosted URL shortener that can be used to serve shortened URLs under your own custom domain.
+home: https://truecharts.org/charts/stable/shlink
+icon: https://truecharts.org/img/hotlink-ok/chart-icons/shlink.png
+deprecated: false
+sources:
+ - https://github.com/shlinkio/shlink
+ - https://github.com/truecharts/charts/tree/master/charts/stable/shlink
+ - https://hub.docker.com/r/shlinkio/shlink
+maintainers:
+ - name: TrueCharts
+ email: info@truecharts.org
+ url: https://truecharts.org
+keywords:
+ - url
+ - shortener
+dependencies:
+ - name: common
+ version: 17.2.21
+ repository: oci://tccr.io/truecharts
+ condition: ""
+ alias: ""
+ tags: []
+ import-values: []
+ - name: redis
+ version: 11.1.6
+ repository: https://deps.truecharts.org
+ condition: redis.enabled
+ alias: ""
+ tags: []
+ import-values: []
+annotations:
+ max_scale_version: 23.10.2
+ min_scale_version: 23.10.0
+ truecharts.org/SCALE-support: "true"
+ truecharts.org/category: utilities
+ truecharts.org/max_helm_version: "3.13"
+ truecharts.org/min_helm_version: "3.12"
+ truecharts.org/train: stable
+type: application
diff --git a/stable/shlink/12.1.10/README.md b/stable/shlink/12.1.10/README.md
new file mode 100644
index 0000000000..a18f3ec2e5
--- /dev/null
+++ b/stable/shlink/12.1.10/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/shlink)
+
+**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/shlink/12.1.10/app-changelog.md b/stable/shlink/12.1.10/app-changelog.md
new file mode 100644
index 0000000000..b93b973ec5
--- /dev/null
+++ b/stable/shlink/12.1.10/app-changelog.md
@@ -0,0 +1,9 @@
+
+
+## [shlink-12.1.10](https://github.com/truecharts/charts/compare/shlink-12.1.9...shlink-12.1.10) (2024-01-08)
+
+### Chore
+
+
+
+- update container image shlinkio/shlink to v3.7.3[@c70cf1b](https://github.com/c70cf1b) by renovate ([#17010](https://github.com/truecharts/charts/issues/17010))
\ No newline at end of file
diff --git a/stable/shlink/12.1.10/app-readme.md b/stable/shlink/12.1.10/app-readme.md
new file mode 100644
index 0000000000..9d58e01696
--- /dev/null
+++ b/stable/shlink/12.1.10/app-readme.md
@@ -0,0 +1,8 @@
+A PHP-based self-hosted URL shortener that can be used to serve shortened URLs under your own custom domain.
+
+This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/shlink](https://truecharts.org/charts/stable/shlink)
+
+---
+
+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/shlink/12.1.10/charts/common-17.2.21.tgz b/stable/shlink/12.1.10/charts/common-17.2.21.tgz
new file mode 100644
index 0000000000..247e7e80d5
Binary files /dev/null and b/stable/shlink/12.1.10/charts/common-17.2.21.tgz differ
diff --git a/stable/shlink/12.1.10/charts/redis-11.1.6.tgz b/stable/shlink/12.1.10/charts/redis-11.1.6.tgz
new file mode 100644
index 0000000000..f65cde0826
Binary files /dev/null and b/stable/shlink/12.1.10/charts/redis-11.1.6.tgz differ
diff --git a/stable/shlink/12.1.10/ix_values.yaml b/stable/shlink/12.1.10/ix_values.yaml
new file mode 100644
index 0000000000..7afb8aeb5a
--- /dev/null
+++ b/stable/shlink/12.1.10/ix_values.yaml
@@ -0,0 +1,61 @@
+image:
+ repository: shlinkio/shlink
+ pullPolicy: IfNotPresent
+ tag: 3.7.3@sha256:c70cf1b37087581cfcb7963d74d6c13fbee8555a7b10aa4af0493e70ade41202
+service:
+ main:
+ ports:
+ main:
+ port: 10153
+cnpg:
+ main:
+ enabled: true
+ user: shlink
+ database: shlink
+redis:
+ enabled: true
+ redisUsername: "default"
+portal:
+ open:
+ enabled: false
+securityContext:
+ container:
+ runAsNonRoot: false
+ readOnlyRootFilesystem: false
+ runAsUser: 0
+ runAsGroup: 0
+workload:
+ main:
+ podSpec:
+ containers:
+ main:
+ probes:
+ liveness:
+ path: "/rest/health"
+ readiness:
+ path: "/rest/health"
+ startup:
+ path: "/rest/health"
+ env:
+ DEFAULT_DOMAIN: ""
+ GEOLITE_LICENSE_KEY: ""
+ ANONYMIZE_REMOTE_ADDR: true
+ ENABLE_PERIODIC_VISIT_LOCATE: true
+ IS_HTTPS_ENABLED: true
+ PORT: "{{ .Values.service.main.ports.main.port }}"
+ DB_DRIVER: "postgres"
+ DB_USER: "{{ .Values.cnpg.main.user }}"
+ DB_NAME: "{{ .Values.cnpg.main.database }}"
+ DB_PASSWORD:
+ secretKeyRef:
+ name: cnpg-main-user
+ key: password
+ DB_HOST:
+ secretKeyRef:
+ name: cnpg-main-urls
+ key: host
+ REDIS_SERVERS:
+ secretKeyRef:
+ expandObjectName: false
+ name: '{{ printf "%s-%s" .Release.Name "rediscreds" }}'
+ key: url
diff --git a/stable/shlink/12.1.10/questions.yaml b/stable/shlink/12.1.10/questions.yaml
new file mode 100644
index 0000000000..626fe65b2b
--- /dev/null
+++ b/stable/shlink/12.1.10/questions.yaml
@@ -0,0 +1,3037 @@
+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: {}
+questions:
+ - variable: global
+ group: General Settings
+ label: "Global Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: stopAll
+ label: Stop All
+ description: "Stops All Running pods and hibernates cnpg"
+ schema:
+ type: boolean
+ default: false
+ - variable: workload
+ group: "Workload Settings"
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type (Advanced)
+ schema:
+ type: string
+ default: Deployment
+ enum:
+ - value: Deployment
+ description: Deployment
+ - value: DaemonSet
+ description: DaemonSet
+ - variable: replicas
+ label: Replicas (Advanced)
+ description: Set the number of Replicas
+ schema:
+ type: int
+ show_if: [["type", "!=", "DaemonSet"]]
+ default: 1
+ - variable: podSpec
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: containers
+ label: Containers
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: Main Container
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: env
+ group: "App Configuration"
+ label: "Image Environment"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: DEFAULT_DOMAIN
+ label: "Default Domain"
+ description: "The default short domain used for this shlink instance. For example doma.in."
+ schema:
+ type: string
+ default: ""
+ - variable: GEOLITE_LICENSE_KEY
+ label: "GeoLite2 License Key"
+ description: "The license key used to download new GeoLite2 database files."
+ schema:
+ type: string
+ default: ""
+ - variable: ANONYMIZE_REMOTE_ADDR
+ label: "Anonymize Remote Address"
+ description: "Tells if IP addresses from visitors should be obfuscated before storing them in the database"
+ schema:
+ type: boolean
+ default: true
+ - variable: ENABLE_PERIODIC_VISIT_LOCATE
+ label: "Enable Periodic visit:locate"
+ description: "it schedules the visit:locate command to be run every hour inside the container using crontab"
+ schema:
+ type: boolean
+ default: true
+ - variable: IS_HTTPS_ENABLED
+ label: "Served over HTTPS"
+ description: "Tells if Shlink is served with https or not"
+ schema:
+ type: boolean
+ default: true
+ - 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: 10153
+ 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: 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: scaleCert
+ label: 'Use TrueNAS SCALE Certificate (Deprecated)'
+ schema:
+ show_if: [["certificateIssuer", "=", ""]]
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: ingressList
+ label: Add Manual Custom Ingresses
+ group: Ingress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ingressListEntry
+ label: Custom Ingress
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable Ingress
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ default: ""
+ - variable: ingressClassName
+ label: IngressClass Name
+ schema:
+ type: string
+ default: ""
+ - variable: hosts
+ label: Hosts
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: hostEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: host
+ label: HostName
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: paths
+ label: Paths
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: pathEntry
+ label: Host
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: path
+ label: Path
+ schema:
+ type: string
+ required: true
+ default: "/"
+ - variable: pathType
+ label: Path Type
+ schema:
+ type: string
+ required: true
+ default: Prefix
+ - variable: 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: scaleCert
+ label: Use TrueNAS SCALE Certificate (Deprecated)
+ schema:
+ show_if: [["certificateIssuer", "=", ""]]
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: clusterCertificate
+ label: 'Cluster Certificate (Advanced)'
+ description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.'
+ schema:
+ type: string
+ show_if: [["certificateIssuer", "=", ""]]
+ default: ""
+ - variable: secretName
+ label: Use Custom Secret (Advanced)
+ schema:
+ type: string
+ show_if: [["certificateIssuer", "=", ""]]
+ default: ""
+ - variable: integrations
+ label: Integrations
+ description: Connect ingress with other charts
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: traefik
+ label: Traefik
+ description: Connect ingress with Traefik
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: true
+ - variable: allowCors
+ label: "Allow Cross Origin Requests"
+ schema:
+ type: boolean
+ default: false
+ show_if: [["enabled", "=", true]]
+ - variable: entrypoints
+ label: Entrypoints
+ schema:
+ type: list
+ default: ["websecure"]
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: entrypoint
+ label: Entrypoint
+ schema:
+ type: string
+ - variable: middlewares
+ label: Middlewares
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: middleware
+ label: Middleware
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: namespace
+ label: namespace
+ schema:
+ type: string
+ default: ""
+ - variable: certManager
+ label: certManager
+ description: Connect ingress with certManager
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: true
+ - variable: certificateIssuer
+ label: certificateIssuer
+ description: defaults to chartname
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: homepage
+ label: Homepage
+ description: Connect ingress with Homepage
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: false
+ - variable: name
+ label: Name
+ description: defaults to chartname
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: description
+ label: Description
+ description: defaults to chart description
+ schema:
+ type: string
+ default: ""
+ show_if: [["enabled", "=", true]]
+ - variable: group
+ label: Group
+ schema:
+ type: string
+ required: true
+ default: "default"
+ show_if: [["enabled", "=", true]]
+ - variable: securityContext
+ group: Security and Permissions
+ label: Security Context
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: container
+ label: Container
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: runAsUser
+ label: "runAsUser"
+ description: "The UserID of the user running the application"
+ schema:
+ type: int
+ default: 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: cnpg
+ group: Postgresql
+ label: "CloudNative-PG (CNPG)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: "Main Postgresql Database"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: hibernate
+ label: Hibernate
+ description: "enable to safely hibernate and shutdown the postgresql cluster"
+ schema:
+ type: boolean
+ default: false
+ - variable: mode
+ label: Mode
+ description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.'
+ schema:
+ type: string
+ default: "standalone"
+ enum:
+ - value: standalone
+ description: standalone
+ - value: replica
+ description: replica
+ - value: recovery
+ description: recovery
+ - variable: cluster
+ label: "Cluster Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: instances
+ label: Instances
+ schema:
+ type: int
+ default: 1
+ - variable: singleNode
+ label: singleNode
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: storage
+ label: "Storage"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: size
+ label: Size
+ schema:
+ type: string
+ default: "256Gi"
+ - variable: walStorage
+ label: "WAL Storage"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: size
+ label: Size
+ schema:
+ type: string
+ default: "256Gi"
+ - variable: monitoring
+ label: "Monitoring Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enablePodMonitor
+ label: "enablePodMonitor"
+ schema:
+ type: boolean
+ default: true
+ - variable: disableDefaultQueries
+ label: "disableDefaultQueries"
+ schema:
+ type: boolean
+ default: false
+ - variable: pooler
+ label: "Pooler Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: instances
+ label: Instances
+ schema:
+ type: int
+ default: 1
+ - variable: createRO
+ label: "Create ReadOnly Instance"
+ schema:
+ type: boolean
+ default: false
+ - variable: recovery
+ label: "Recovery Settings (Experimental)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "enabled"
+ schema:
+ type: boolean
+ default: false
+ - variable: endpointURL
+ label: "endpointURL"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: method
+ label: "method"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "object_store"
+ - variable: backupName
+ label: "backupName"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: provider
+ label: "provider"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "s3"
+ enum:
+ - value: s3
+ description: S3
+ - value: azure
+ description: Azure
+ - value: google
+ description: Google
+ - variable: s3
+ label: "s3"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "s3"]]
+ attrs:
+ - variable: region
+ label: "region"
+ schema:
+ type: string
+ default: ""
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: accessKey
+ label: "accessKey"
+ schema:
+ type: string
+ default: ""
+ - variable: secretKey
+ label: "secretKey"
+ schema:
+ type: string
+ default: ""
+ - variable: azure
+ label: "azure (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "azure"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: connectionString
+ label: "connectionString"
+ schema:
+ type: string
+ default: ""
+ - variable: storageAccount
+ label: "storageAccount"
+ schema:
+ type: string
+ default: ""
+ - variable: storageKey
+ label: "storageKey"
+ schema:
+ type: string
+ default: ""
+ - variable: storageSasToken
+ label: "storageSasToken"
+ schema:
+ type: string
+ default: ""
+ - variable: containerName
+ label: "containerName"
+ schema:
+ type: string
+ default: ""
+ - variable: serviceName
+ label: "serviceName"
+ schema:
+ type: string
+ default: "blob"
+ - variable: inheritFromAzureAD
+ label: "inheritFromAzureAD"
+ schema:
+ type: boolean
+ default: false
+ - variable: google
+ label: "google (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "google"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: gkeEnvironment
+ label: "gkeEnvironment"
+ schema:
+ type: string
+ default: ""
+ - variable: applicationCredentials
+ label: "applicationCredentials"
+ schema:
+ type: string
+ default: ""
+ - variable: backups
+ label: "Backup Settings (Experimental)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "enabled"
+ schema:
+ type: boolean
+ default: false
+ - variable: endpointURL
+ label: "endpointURL"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: destinationPath
+ label: "destinationPath"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: retentionPolicy
+ label: "retentionPolicy"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "30d"
+ - variable: provider
+ label: "provider"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: "s3"
+ enum:
+ - value: s3
+ description: S3
+ - value: azure
+ description: Azure
+ - value: google
+ description: Google
+ - variable: s3
+ label: "s3"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "s3"]]
+ attrs:
+ - variable: region
+ label: "region"
+ schema:
+ type: string
+ default: ""
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: accessKey
+ label: "accessKey"
+ schema:
+ type: string
+ default: ""
+ - variable: secretKey
+ label: "secretKey"
+ schema:
+ type: string
+ default: ""
+ - variable: azure
+ label: "azure (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "azure"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: connectionString
+ label: "connectionString"
+ schema:
+ type: string
+ default: ""
+ - variable: storageAccount
+ label: "storageAccount"
+ schema:
+ type: string
+ default: ""
+ - variable: storageKey
+ label: "storageKey"
+ schema:
+ type: string
+ show_if: [["enabled", "=", true]]
+ default: ""
+ - variable: storageSasToken
+ label: "storageSasToken"
+ schema:
+ type: string
+ default: ""
+ - variable: containerName
+ label: "containerName"
+ schema:
+ type: string
+ default: ""
+ - variable: serviceName
+ label: "serviceName"
+ schema:
+ type: string
+ default: "blob"
+ - variable: inheritFromAzureAD
+ label: "inheritFromAzureAD"
+ schema:
+ type: boolean
+ default: false
+ - variable: google
+ label: "google (EXTREMELY EXPERIMENTAL)"
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["provider", "=", "google"]]
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ default: "/"
+ - variable: bucket
+ label: "bucket"
+ schema:
+ type: string
+ default: ""
+ - variable: gkeEnvironment
+ label: "gkeEnvironment"
+ schema:
+ type: string
+ default: ""
+ - variable: applicationCredentials
+ label: "applicationCredentials"
+ schema:
+ type: string
+ default: ""
+ - variable: scheduledBackups
+ label: ScheduledBackups
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: backupschedule
+ label: BackupSchedule
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: "daily-backup"
+ required: true
+ - variable: schedule
+ label: schedule
+ schema:
+ type: string
+ required: true
+ default: "0 0 0 * * *"
+ - variable: backupOwnerReference
+ label: backupOwnerReference
+ schema:
+ type: string
+ required: true
+ default: "self"
+ - variable: immediate
+ label: immediate
+ schema:
+ type: boolean
+ default: false
+ - variable: suspend
+ label: suspend
+ schema:
+ type: boolean
+ default: false
+ - variable: manualBackups
+ label: manualBackups
+ schema:
+ type: list
+ default: []
+ show_if: [["enabled", "=", true]]
+ items:
+ - variable: backup
+ label: Backup
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: name
+ schema:
+ type: string
+ default: ""
+ required: 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: 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/shlink/12.1.10/templates/NOTES.txt b/stable/shlink/12.1.10/templates/NOTES.txt
new file mode 100644
index 0000000000..efcb74cb77
--- /dev/null
+++ b/stable/shlink/12.1.10/templates/NOTES.txt
@@ -0,0 +1 @@
+{{- include "tc.v1.common.lib.chart.notes" $ -}}
diff --git a/stable/shlink/12.1.10/templates/common.yaml b/stable/shlink/12.1.10/templates/common.yaml
new file mode 100644
index 0000000000..b51394e00a
--- /dev/null
+++ b/stable/shlink/12.1.10/templates/common.yaml
@@ -0,0 +1 @@
+{{ include "tc.v1.common.loader.all" . }}
diff --git a/stable/shlink/12.1.10/values.yaml b/stable/shlink/12.1.10/values.yaml
new file mode 100644
index 0000000000..e69de29bb2