Files
catalog/enterprise/traefik/app_versions.json
2024-02-22 15:59:59 +00:00

22882 lines
1.9 MiB

{
"25.4.0": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/enterprise/traefik/25.4.0",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration"
],
"human_version": "2.11.0_25.4.0",
"version": "25.4.0",
"chart_metadata": {
"annotations": {
"max_scale_version": "24.04.0",
"min_scale_version": "23.10.0",
"truecharts.org/SCALE-support": "true",
"truecharts.org/category": "network",
"truecharts.org/max_helm_version": "3.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "enterprise"
},
"apiVersion": "v2",
"appVersion": "2.11.0",
"dependencies": [
{
"name": "common",
"version": "17.5.0",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Traefik is a flexible reverse proxy and Ingress Provider.",
"home": "https://truecharts.org/charts/enterprise/traefik",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png",
"keywords": [
"traefik",
"ingress"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "traefik",
"sources": [
"https://github.com/traefik/traefik",
"https://github.com/traefik/traefik-helm-chart",
"https://traefik.io/",
"https://github.com/truecharts/charts/tree/master/charts/enterprise/traefik",
"https://github.com/truecharts/containers/tree/master/apps/traefik"
],
"type": "application",
"version": "25.4.0"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
],
"path": "$kubernetes-resource_configmap_tcportal-open_path"
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' 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": "expertIngressClass",
"label": "Expert Mode",
"group": "App Configuration",
"description": "Expert Mode contains settings like: </br>\n- IngressClass </br>\n",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "ingressClass",
"label": "ingressClass",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"description": "When enabled, ingressClass will match the entered name of this app",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "isDefaultClass",
"label": "isDefaultClass",
"schema": {
"type": "boolean",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": false
}
}
]
}
}
]
}
},
{
"variable": "logs",
"label": "Logs",
"group": "App Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "level",
"label": "Log Level",
"schema": {
"type": "string",
"default": "ERROR",
"enum": [
{
"value": "INFO",
"description": "Info"
},
{
"value": "WARN",
"description": "Warnings"
},
{
"value": "ERROR",
"description": "Errors"
},
{
"value": "FATAL",
"description": "Fatal Errors"
},
{
"value": "PANIC",
"description": "Panics"
},
{
"value": "DEBUG",
"description": "Debug"
}
]
}
},
{
"variable": "format",
"label": "General Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
},
{
"variable": "access",
"label": "Access Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "enabledFilters",
"label": "Enable Filters",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "filters",
"label": "Filters",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "statuscodes",
"label": "Status codes",
"schema": {
"type": "string",
"default": "200,300-302"
}
},
{
"variable": "retryattempts",
"label": "retryattempts",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "minduration",
"label": "minduration",
"schema": {
"type": "string",
"default": "10ms"
}
}
]
}
}
]
}
},
{
"variable": "fields",
"label": "Fields",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "keep",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
},
{
"variable": "headers",
"label": "Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "drop",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
}
]
}
},
{
"variable": "format",
"label": "Access Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "middlewares",
"label": "",
"group": "Middlewares",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "basicAuth",
"label": "basicAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "users",
"label": "Users",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "usersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "forwardAuth",
"label": "forwardAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "address",
"label": "Address",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "trustForwardHeader",
"label": "trustForwardHeader",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "tls",
"label": "TLS",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "insecureSkipVerify",
"label": "insecureSkipVerify (expert)",
"description": "This disables all TLS certificate validation on communications with the authentication endpoint. This could be a security risk and should only be used if you know what you are doing.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "authResponseHeadersRegex",
"label": "authResponseHeadersRegex",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "authResponseHeaders",
"label": "authResponseHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authResponseHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authRequestHeaders",
"label": "authRequestHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authRequestHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "buffering",
"label": "Buffering",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "bufferingEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "maxRequestBodyBytes",
"label": "Max Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memRequestBodyBytes",
"label": "Mem Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "maxResponseBodyBytes",
"label": "Max Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memResponseBodyBytes",
"label": "Mem Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "retryExpression",
"label": "Retry Expression",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "customRequestHeaders",
"label": "Custom Request Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customRequestHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to requests, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customResponseHeaders",
"label": "Custom Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "rewriteResponseHeaders",
"label": "Rewrite Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rewriteResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers To Rewrite",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of a header to modified in responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "regex",
"label": "Regex",
"description": "The value of the header to match. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement Regex",
"description": "The new value of the header. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customFrameOptionsValue",
"label": "Custom Frame Options Value",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customFrameOptionsValueEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "X-Frame-Options Header Value",
"description": "The value of the header.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "chain",
"label": "Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "chainEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "middlewares",
"label": "Middlewares to Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "redirectScheme",
"label": "redirectScheme",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectSchemeEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "scheme",
"label": "Scheme",
"schema": {
"type": "string",
"required": true,
"default": "https",
"enum": [
{
"value": "https",
"description": "https"
},
{
"value": "http",
"description": "http"
}
]
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "rateLimit",
"label": "rateLimit",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rateLimitEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "average",
"label": "Average",
"schema": {
"type": "int",
"required": true,
"default": 300
}
},
{
"variable": "burst",
"label": "Burst",
"schema": {
"type": "int",
"required": true,
"default": 200
}
}
]
}
}
]
}
},
{
"variable": "redirectRegex",
"label": "redirectRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "stripPrefixRegex",
"label": "stripPrefixRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "stripPrefixRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "regexEntry",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ipWhiteList",
"label": "ipWhiteList",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipWhiteListEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "sourceRange",
"label": "Source Range",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "sourceRangeEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "ipStrategy",
"label": "IP Strategy",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "depth",
"label": "Depth",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "excludedIPs",
"label": "Excluded IPs",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "themePark",
"label": "theme.park",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "themeParkEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/packruler/traefik-themepark\">traefik-themepark</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "appName",
"label": "App Name",
"description": "Lower case, name of the app to be themed. <br />Go to <a href=\"https://docs.theme-park.dev/themes/\">https://docs.theme-park.dev/themes/</a> to see supported apps.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "themeName",
"label": "Theme Name",
"description": "Lower case, name of the theme to be applied. <br />Go to <a href=\"https://docs.theme-park.dev/theme-options/\">https://docs.theme-park.dev/theme-options/</a> to see supported themes.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "baseUrl",
"label": "Base URL",
"description": "Replace `https://theme-park.dev` URL for self-hosting reference.",
"schema": {
"type": "string",
"required": true,
"default": "https://theme-park.dev"
}
},
{
"variable": "addons",
"label": "Addons",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addonEntry",
"label": "Addon",
"description": "Currently only supports 'darker' and '4k-logo' for *arr apps. <br />Go to <a href=\"https://docs.theme-park.dev/themes/addons/\">https://docs.theme-park.dev/themes/addons/</a> for Addon information. <br />Go to <a href=\"https://github.com/packruler/traefik-themepark\">https://github.com/packruler/traefik-themepark</a> for more context on plugin",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "realIP",
"label": "Real IP",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "realIPEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "excludedNetworks",
"label": "Excluded Networks",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedNetEntry",
"label": "Excluded Network Entry",
"description": "Network to exclude setting it to X-Real-Ip",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "geoBlock",
"label": "GeoBlock",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "geoBlockEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/PascalMinder/geoblock\">geoblock</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "allowLocalRequests",
"label": "Allow Local Requests",
"description": "If set to true, will not block request from Private IP Ranges",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "logLocalRequests",
"label": "Log Local Requests",
"description": "If set to true, will log every connection from any IP in the private IP range",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logAllowedRequests",
"label": "Log Allowed Requests",
"description": "If set to true, will show a log message with the IP and the country of origin if a request is allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logApiRequests",
"label": "Log API Requests",
"description": "If set to true, will show a log message for every API hit.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "api",
"label": "API",
"description": "Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL.",
"schema": {
"type": "string",
"required": true,
"default": "https://get.geojs.io/v1/ip/country/{ip}"
}
},
{
"variable": "apiTimeoutMs",
"label": "API Timeout in ms",
"description": "Timeout for the call to the api uri.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
},
{
"variable": "cacheSize",
"label": "Cache Size",
"description": "Defines the max size of the LRU (least recently used) cache.",
"schema": {
"type": "int",
"required": true,
"default": 25
}
},
{
"variable": "forceMonthlyUpdate",
"label": "Force Monthly Update",
"description": "Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowUnknownCountries",
"label": "Allow Unknown Countries",
"description": "Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unknownCountryApiResponse",
"label": "Unknown Countries API Response",
"description": "The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested.",
"schema": {
"type": "string",
"required": true,
"default": "nil"
}
},
{
"variable": "blackListMode",
"label": "Blacklist Mode",
"description": "When set to true the filter logic is inverted, i.e. requests originating from countries listed in the countries list are blocked.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "countries",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"label": "Countries",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "countryEntry",
"label": "Country",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[a-zA-Z]{2}$",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addPrefix",
"label": "Add Prefix",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addPrefixEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "prefix",
"label": "Prefix",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "modsecurity",
"label": "modsecurity",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "modsecurityEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/acouvreur/traefik-modsecurity-plugin\">traefik-modsecurity-plugin</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "modSecurityUrl",
"label": "ModSecurity Url",
"description": "It's the URL for the owasp/modsecurity container.",
"schema": {
"type": "string",
"required": true,
"default": "https://someurl"
}
},
{
"variable": "timeoutMillis",
"label": "timeout Millis",
"description": "timeout in milliseconds for the http client to talk with modsecurity container. (",
"schema": {
"type": "int",
"required": true,
"default": 2
}
},
{
"variable": "maxBodySize",
"label": "maxBody Size",
"description": "it's the maximum limit for requests body size. Requests exceeding this value will be rejected using HTTP 413 Request Entity Too Large. Zero means \"use default value\".",
"schema": {
"type": "int",
"required": true,
"default": 0
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service Entrypoint",
"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 Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 9000,
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tcp",
"label": "TCP Service",
"description": "The tcp Entrypoint 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": "web",
"label": "web Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 80,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string",
"default": "websecure"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "websecure",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 443,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional TCP Entrypoints",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom Entrypoints",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Entrypoints Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Entrypoints Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
}
]
}
},
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"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
}
},
{
"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"
}
}
]
}
},
{
"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": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "metrics",
"group": "Metrics",
"label": "Prometheus Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "prometheusRule",
"label": "PrometheusRule",
"description": "Enable and configure Prometheus Rules for the App.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"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 <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
},
{
"variable": "warning",
"group": "Documentation",
"label": "WARNING: If installed, be sure to move the TrueNAS GUI to another port (not 80 or 443).",
"description": "See: <br /><a href=\"https://truecharts.org/charts/enterprise/traefik/how-to\">https://truecharts.org/charts/enterprise/traefik/how-to</a> for more info.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "warningconfim",
"label": "I am aware that I will brick my system, if I did not follow the instructions.",
"schema": {
"type": "boolean",
"default": true,
"required": true
}
}
]
}
}
]
},
"app_readme": "<p>Traefik is a flexible reverse proxy and Ingress Provider.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/enterprise/traefik\">https://truecharts.org/charts/enterprise/traefik</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/enterprise/traefik\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<p><em>for the complete changelog, please refer to the website</em></p>\n<p><strong>Important:</strong></p>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.16...traefik-25.1.17\">traefik-25.1.17</a> (2024-02-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/ec52218\">@ec52218</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/18109\">#18109</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.15...traefik-25.1.16\">traefik-25.1.16</a> (2024-02-03)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.30<a href=\"https://github.com/19ad5ec\">@19ad5ec</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17804\">#17804</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.14...traefik-25.1.15\">traefik-25.1.15</a> (2024-01-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.29<a href=\"https://github.com/d7c41a3\">@d7c41a3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17545\">#17545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.13...traefik-25.1.14\">traefik-25.1.14</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.28<a href=\"https://github.com/918b4c5\">@918b4c5</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17478\">#17478</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.12...traefik-25.1.13\">traefik-25.1.13</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/1a1f160\">@1a1f160</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17471\">#17471</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.11...traefik-25.1.12\">traefik-25.1.12</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.26<a href=\"https://github.com/24c98f7\">@24c98f7</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17409\">#17409</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.10...traefik-25.1.11\">traefik-25.1.11</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update metadata in chart.yaml (<a href=\"https://github.com/truecharts/charts/issues/17457\">#17457</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.9...traefik-25.1.10\">traefik-25.1.10</a> (2024-01-09)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.22<a href=\"https://github.com/e7c9056\">@e7c9056</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/16986\">#16986</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.8...traefik-25.1.9\">traefik-25.1.9</a> (2024-01-02)</h2>\n<h3>Chore</h3>"
},
"25.3.0": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/enterprise/traefik/25.3.0",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration"
],
"human_version": "2.11.0_25.3.0",
"version": "25.3.0",
"chart_metadata": {
"annotations": {
"max_scale_version": "24.04.0",
"min_scale_version": "23.10.0",
"truecharts.org/SCALE-support": "true",
"truecharts.org/category": "network",
"truecharts.org/max_helm_version": "3.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "enterprise"
},
"apiVersion": "v2",
"appVersion": "2.11.0",
"dependencies": [
{
"name": "common",
"version": "17.4.2",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Traefik is a flexible reverse proxy and Ingress Provider.",
"home": "https://truecharts.org/charts/enterprise/traefik",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png",
"keywords": [
"traefik",
"ingress"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "traefik",
"sources": [
"https://github.com/traefik/traefik",
"https://github.com/traefik/traefik-helm-chart",
"https://traefik.io/",
"https://github.com/truecharts/charts/tree/master/charts/enterprise/traefik",
"https://github.com/truecharts/containers/tree/master/apps/traefik"
],
"type": "application",
"version": "25.3.0"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
],
"path": "$kubernetes-resource_configmap_tcportal-open_path"
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' 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": "expertIngressClass",
"label": "Expert Mode",
"group": "App Configuration",
"description": "Expert Mode contains settings like: </br>\n- IngressClass </br>\n",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "ingressClass",
"label": "ingressClass",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"description": "When enabled, ingressClass will match the entered name of this app",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "isDefaultClass",
"label": "isDefaultClass",
"schema": {
"type": "boolean",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": false
}
}
]
}
}
]
}
},
{
"variable": "logs",
"label": "Logs",
"group": "App Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "level",
"label": "Log Level",
"schema": {
"type": "string",
"default": "ERROR",
"enum": [
{
"value": "INFO",
"description": "Info"
},
{
"value": "WARN",
"description": "Warnings"
},
{
"value": "ERROR",
"description": "Errors"
},
{
"value": "FATAL",
"description": "Fatal Errors"
},
{
"value": "PANIC",
"description": "Panics"
},
{
"value": "DEBUG",
"description": "Debug"
}
]
}
},
{
"variable": "format",
"label": "General Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
},
{
"variable": "access",
"label": "Access Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "enabledFilters",
"label": "Enable Filters",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "filters",
"label": "Filters",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "statuscodes",
"label": "Status codes",
"schema": {
"type": "string",
"default": "200,300-302"
}
},
{
"variable": "retryattempts",
"label": "retryattempts",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "minduration",
"label": "minduration",
"schema": {
"type": "string",
"default": "10ms"
}
}
]
}
}
]
}
},
{
"variable": "fields",
"label": "Fields",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "keep",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
},
{
"variable": "headers",
"label": "Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "drop",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
}
]
}
},
{
"variable": "format",
"label": "Access Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "middlewares",
"label": "",
"group": "Middlewares",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "basicAuth",
"label": "basicAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "users",
"label": "Users",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "usersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "forwardAuth",
"label": "forwardAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "address",
"label": "Address",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "trustForwardHeader",
"label": "trustForwardHeader",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "tls",
"label": "TLS",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "insecureSkipVerify",
"label": "insecureSkipVerify (expert)",
"description": "This disables all TLS certificate validation on communications with the authentication endpoint. This could be a security risk and should only be used if you know what you are doing.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "authResponseHeadersRegex",
"label": "authResponseHeadersRegex",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "authResponseHeaders",
"label": "authResponseHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authResponseHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authRequestHeaders",
"label": "authRequestHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authRequestHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "buffering",
"label": "Buffering",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "bufferingEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "maxRequestBodyBytes",
"label": "Max Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memRequestBodyBytes",
"label": "Mem Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "maxResponseBodyBytes",
"label": "Max Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memResponseBodyBytes",
"label": "Mem Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "retryExpression",
"label": "Retry Expression",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "customRequestHeaders",
"label": "Custom Request Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customRequestHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to requests, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customResponseHeaders",
"label": "Custom Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "rewriteResponseHeaders",
"label": "Rewrite Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rewriteResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers To Rewrite",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of a header to modified in responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "regex",
"label": "Regex",
"description": "The value of the header to match. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement Regex",
"description": "The new value of the header. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customFrameOptionsValue",
"label": "Custom Frame Options Value",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customFrameOptionsValueEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "X-Frame-Options Header Value",
"description": "The value of the header.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "chain",
"label": "Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "chainEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "middlewares",
"label": "Middlewares to Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "redirectScheme",
"label": "redirectScheme",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectSchemeEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "scheme",
"label": "Scheme",
"schema": {
"type": "string",
"required": true,
"default": "https",
"enum": [
{
"value": "https",
"description": "https"
},
{
"value": "http",
"description": "http"
}
]
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "rateLimit",
"label": "rateLimit",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rateLimitEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "average",
"label": "Average",
"schema": {
"type": "int",
"required": true,
"default": 300
}
},
{
"variable": "burst",
"label": "Burst",
"schema": {
"type": "int",
"required": true,
"default": 200
}
}
]
}
}
]
}
},
{
"variable": "redirectRegex",
"label": "redirectRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "stripPrefixRegex",
"label": "stripPrefixRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "stripPrefixRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "regexEntry",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ipWhiteList",
"label": "ipWhiteList",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipWhiteListEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "sourceRange",
"label": "Source Range",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "sourceRangeEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "ipStrategy",
"label": "IP Strategy",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "depth",
"label": "Depth",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "excludedIPs",
"label": "Excluded IPs",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "themePark",
"label": "theme.park",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "themeParkEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/packruler/traefik-themepark\">traefik-themepark</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "appName",
"label": "App Name",
"description": "Lower case, name of the app to be themed. <br />Go to <a href=\"https://docs.theme-park.dev/themes/\">https://docs.theme-park.dev/themes/</a> to see supported apps.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "themeName",
"label": "Theme Name",
"description": "Lower case, name of the theme to be applied. <br />Go to <a href=\"https://docs.theme-park.dev/theme-options/\">https://docs.theme-park.dev/theme-options/</a> to see supported themes.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "baseUrl",
"label": "Base URL",
"description": "Replace `https://theme-park.dev` URL for self-hosting reference.",
"schema": {
"type": "string",
"required": true,
"default": "https://theme-park.dev"
}
},
{
"variable": "addons",
"label": "Addons",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addonEntry",
"label": "Addon",
"description": "Currently only supports 'darker' and '4k-logo' for *arr apps. <br />Go to <a href=\"https://docs.theme-park.dev/themes/addons/\">https://docs.theme-park.dev/themes/addons/</a> for Addon information. <br />Go to <a href=\"https://github.com/packruler/traefik-themepark\">https://github.com/packruler/traefik-themepark</a> for more context on plugin",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "realIP",
"label": "Real IP",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "realIPEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "excludedNetworks",
"label": "Excluded Networks",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedNetEntry",
"label": "Excluded Network Entry",
"description": "Network to exclude setting it to X-Real-Ip",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "geoBlock",
"label": "GeoBlock",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "geoBlockEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/PascalMinder/geoblock\">geoblock</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "allowLocalRequests",
"label": "Allow Local Requests",
"description": "If set to true, will not block request from Private IP Ranges",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "logLocalRequests",
"label": "Log Local Requests",
"description": "If set to true, will log every connection from any IP in the private IP range",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logAllowedRequests",
"label": "Log Allowed Requests",
"description": "If set to true, will show a log message with the IP and the country of origin if a request is allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logApiRequests",
"label": "Log API Requests",
"description": "If set to true, will show a log message for every API hit.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "api",
"label": "API",
"description": "Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL.",
"schema": {
"type": "string",
"required": true,
"default": "https://get.geojs.io/v1/ip/country/{ip}"
}
},
{
"variable": "apiTimeoutMs",
"label": "API Timeout in ms",
"description": "Timeout for the call to the api uri.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
},
{
"variable": "cacheSize",
"label": "Cache Size",
"description": "Defines the max size of the LRU (least recently used) cache.",
"schema": {
"type": "int",
"required": true,
"default": 25
}
},
{
"variable": "forceMonthlyUpdate",
"label": "Force Monthly Update",
"description": "Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowUnknownCountries",
"label": "Allow Unknown Countries",
"description": "Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unknownCountryApiResponse",
"label": "Unknown Countries API Response",
"description": "The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested.",
"schema": {
"type": "string",
"required": true,
"default": "nil"
}
},
{
"variable": "blackListMode",
"label": "Blacklist Mode",
"description": "When set to true the filter logic is inverted, i.e. requests originating from countries listed in the countries list are blocked.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "countries",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"label": "Countries",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "countryEntry",
"label": "Country",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[a-zA-Z]{2}$",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addPrefix",
"label": "Add Prefix",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addPrefixEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "prefix",
"label": "Prefix",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "modsecurity",
"label": "modsecurity",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "modsecurityEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/acouvreur/traefik-modsecurity-plugin\">traefik-modsecurity-plugin</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "modSecurityUrl",
"label": "ModSecurity Url",
"description": "It's the URL for the owasp/modsecurity container.",
"schema": {
"type": "string",
"required": true,
"default": "https://someurl"
}
},
{
"variable": "timeoutMillis",
"label": "timeout Millis",
"description": "timeout in milliseconds for the http client to talk with modsecurity container. (",
"schema": {
"type": "int",
"required": true,
"default": 2
}
},
{
"variable": "maxBodySize",
"label": "maxBody Size",
"description": "it's the maximum limit for requests body size. Requests exceeding this value will be rejected using HTTP 413 Request Entity Too Large. Zero means \"use default value\".",
"schema": {
"type": "int",
"required": true,
"default": 0
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service Entrypoint",
"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 Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 9000,
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tcp",
"label": "TCP Service",
"description": "The tcp Entrypoint 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": "web",
"label": "web Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 80,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string",
"default": "websecure"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "websecure",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 443,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional TCP Entrypoints",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom Entrypoints",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Entrypoints Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Entrypoints Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
}
]
}
},
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"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
}
},
{
"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"
}
}
]
}
},
{
"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": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "metrics",
"group": "Metrics",
"label": "Prometheus Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "prometheusRule",
"label": "PrometheusRule",
"description": "Enable and configure Prometheus Rules for the App.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"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 <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
},
{
"variable": "warning",
"group": "Documentation",
"label": "WARNING: If installed, be sure to move the TrueNAS GUI to another port (not 80 or 443).",
"description": "See: <br /><a href=\"https://truecharts.org/charts/enterprise/traefik/how-to\">https://truecharts.org/charts/enterprise/traefik/how-to</a> for more info.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "warningconfim",
"label": "I am aware that I will brick my system, if I did not follow the instructions.",
"schema": {
"type": "boolean",
"default": true,
"required": true
}
}
]
}
}
]
},
"app_readme": "<p>Traefik is a flexible reverse proxy and Ingress Provider.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/enterprise/traefik\">https://truecharts.org/charts/enterprise/traefik</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/enterprise/traefik\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<p><em>for the complete changelog, please refer to the website</em></p>\n<p><strong>Important:</strong></p>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.16...traefik-25.1.17\">traefik-25.1.17</a> (2024-02-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/ec52218\">@ec52218</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/18109\">#18109</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.15...traefik-25.1.16\">traefik-25.1.16</a> (2024-02-03)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.30<a href=\"https://github.com/19ad5ec\">@19ad5ec</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17804\">#17804</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.14...traefik-25.1.15\">traefik-25.1.15</a> (2024-01-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.29<a href=\"https://github.com/d7c41a3\">@d7c41a3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17545\">#17545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.13...traefik-25.1.14\">traefik-25.1.14</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.28<a href=\"https://github.com/918b4c5\">@918b4c5</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17478\">#17478</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.12...traefik-25.1.13\">traefik-25.1.13</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/1a1f160\">@1a1f160</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17471\">#17471</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.11...traefik-25.1.12\">traefik-25.1.12</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.26<a href=\"https://github.com/24c98f7\">@24c98f7</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17409\">#17409</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.10...traefik-25.1.11\">traefik-25.1.11</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update metadata in chart.yaml (<a href=\"https://github.com/truecharts/charts/issues/17457\">#17457</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.9...traefik-25.1.10\">traefik-25.1.10</a> (2024-01-09)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.22<a href=\"https://github.com/e7c9056\">@e7c9056</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/16986\">#16986</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.8...traefik-25.1.9\">traefik-25.1.9</a> (2024-01-02)</h2>\n<h3>Chore</h3>"
},
"25.2.1": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/enterprise/traefik/25.2.1",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration"
],
"human_version": "2.10.7_25.2.1",
"version": "25.2.1",
"chart_metadata": {
"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.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "enterprise"
},
"apiVersion": "v2",
"appVersion": "2.10.7",
"dependencies": [
{
"name": "common",
"version": "17.4.2",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Traefik is a flexible reverse proxy and Ingress Provider.",
"home": "https://truecharts.org/charts/enterprise/traefik",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png",
"keywords": [
"traefik",
"ingress"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "traefik",
"sources": [
"https://github.com/traefik/traefik",
"https://github.com/traefik/traefik-helm-chart",
"https://traefik.io/",
"https://github.com/truecharts/charts/tree/master/charts/enterprise/traefik",
"https://github.com/truecharts/containers/tree/master/apps/traefik"
],
"type": "application",
"version": "25.2.1"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
],
"path": "$kubernetes-resource_configmap_tcportal-open_path"
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' 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": "expertIngressClass",
"label": "Expert Mode",
"group": "App Configuration",
"description": "Expert Mode contains settings like: </br>\n- IngressClass </br>\n",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "ingressClass",
"label": "ingressClass",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"description": "When enabled, ingressClass will match the entered name of this app",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "isDefaultClass",
"label": "isDefaultClass",
"schema": {
"type": "boolean",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": false
}
}
]
}
}
]
}
},
{
"variable": "logs",
"label": "Logs",
"group": "App Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "level",
"label": "Log Level",
"schema": {
"type": "string",
"default": "ERROR",
"enum": [
{
"value": "INFO",
"description": "Info"
},
{
"value": "WARN",
"description": "Warnings"
},
{
"value": "ERROR",
"description": "Errors"
},
{
"value": "FATAL",
"description": "Fatal Errors"
},
{
"value": "PANIC",
"description": "Panics"
},
{
"value": "DEBUG",
"description": "Debug"
}
]
}
},
{
"variable": "format",
"label": "General Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
},
{
"variable": "access",
"label": "Access Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "enabledFilters",
"label": "Enable Filters",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "filters",
"label": "Filters",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "statuscodes",
"label": "Status codes",
"schema": {
"type": "string",
"default": "200,300-302"
}
},
{
"variable": "retryattempts",
"label": "retryattempts",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "minduration",
"label": "minduration",
"schema": {
"type": "string",
"default": "10ms"
}
}
]
}
}
]
}
},
{
"variable": "fields",
"label": "Fields",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "keep",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
},
{
"variable": "headers",
"label": "Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "drop",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
}
]
}
},
{
"variable": "format",
"label": "Access Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "middlewares",
"label": "",
"group": "Middlewares",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "basicAuth",
"label": "basicAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "users",
"label": "Users",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "usersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "forwardAuth",
"label": "forwardAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "address",
"label": "Address",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "trustForwardHeader",
"label": "trustForwardHeader",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "tls",
"label": "TLS",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "insecureSkipVerify",
"label": "insecureSkipVerify (expert)",
"description": "This disables all TLS certificate validation on communications with the authentication endpoint. This could be a security risk and should only be used if you know what you are doing.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "authResponseHeadersRegex",
"label": "authResponseHeadersRegex",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "authResponseHeaders",
"label": "authResponseHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authResponseHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authRequestHeaders",
"label": "authRequestHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authRequestHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "buffering",
"label": "Buffering",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "bufferingEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "maxRequestBodyBytes",
"label": "Max Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memRequestBodyBytes",
"label": "Mem Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "maxResponseBodyBytes",
"label": "Max Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memResponseBodyBytes",
"label": "Mem Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "retryExpression",
"label": "Retry Expression",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "customRequestHeaders",
"label": "Custom Request Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customRequestHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to requests, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customResponseHeaders",
"label": "Custom Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "rewriteResponseHeaders",
"label": "Rewrite Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rewriteResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers To Rewrite",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of a header to modified in responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "regex",
"label": "Regex",
"description": "The value of the header to match. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement Regex",
"description": "The new value of the header. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customFrameOptionsValue",
"label": "Custom Frame Options Value",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customFrameOptionsValueEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "X-Frame-Options Header Value",
"description": "The value of the header.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "chain",
"label": "Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "chainEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "middlewares",
"label": "Middlewares to Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "redirectScheme",
"label": "redirectScheme",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectSchemeEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "scheme",
"label": "Scheme",
"schema": {
"type": "string",
"required": true,
"default": "https",
"enum": [
{
"value": "https",
"description": "https"
},
{
"value": "http",
"description": "http"
}
]
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "rateLimit",
"label": "rateLimit",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rateLimitEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "average",
"label": "Average",
"schema": {
"type": "int",
"required": true,
"default": 300
}
},
{
"variable": "burst",
"label": "Burst",
"schema": {
"type": "int",
"required": true,
"default": 200
}
}
]
}
}
]
}
},
{
"variable": "redirectRegex",
"label": "redirectRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "stripPrefixRegex",
"label": "stripPrefixRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "stripPrefixRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "regexEntry",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ipWhiteList",
"label": "ipWhiteList",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipWhiteListEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "sourceRange",
"label": "Source Range",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "sourceRangeEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "ipStrategy",
"label": "IP Strategy",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "depth",
"label": "Depth",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "excludedIPs",
"label": "Excluded IPs",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "themePark",
"label": "theme.park",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "themeParkEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/packruler/traefik-themepark\">traefik-themepark</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "appName",
"label": "App Name",
"description": "Lower case, name of the app to be themed. <br />Go to <a href=\"https://docs.theme-park.dev/themes/\">https://docs.theme-park.dev/themes/</a> to see supported apps.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "themeName",
"label": "Theme Name",
"description": "Lower case, name of the theme to be applied. <br />Go to <a href=\"https://docs.theme-park.dev/theme-options/\">https://docs.theme-park.dev/theme-options/</a> to see supported themes.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "baseUrl",
"label": "Base URL",
"description": "Replace `https://theme-park.dev` URL for self-hosting reference.",
"schema": {
"type": "string",
"required": true,
"default": "https://theme-park.dev"
}
},
{
"variable": "addons",
"label": "Addons",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addonEntry",
"label": "Addon",
"description": "Currently only supports 'darker' and '4k-logo' for *arr apps. <br />Go to <a href=\"https://docs.theme-park.dev/themes/addons/\">https://docs.theme-park.dev/themes/addons/</a> for Addon information. <br />Go to <a href=\"https://github.com/packruler/traefik-themepark\">https://github.com/packruler/traefik-themepark</a> for more context on plugin",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "realIP",
"label": "Real IP",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "realIPEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "excludedNetworks",
"label": "Excluded Networks",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedNetEntry",
"label": "Excluded Network Entry",
"description": "Network to exclude setting it to X-Real-Ip",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "geoBlock",
"label": "GeoBlock",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "geoBlockEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/PascalMinder/geoblock\">geoblock</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "allowLocalRequests",
"label": "Allow Local Requests",
"description": "If set to true, will not block request from Private IP Ranges",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "logLocalRequests",
"label": "Log Local Requests",
"description": "If set to true, will log every connection from any IP in the private IP range",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logAllowedRequests",
"label": "Log Allowed Requests",
"description": "If set to true, will show a log message with the IP and the country of origin if a request is allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logApiRequests",
"label": "Log API Requests",
"description": "If set to true, will show a log message for every API hit.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "api",
"label": "API",
"description": "Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL.",
"schema": {
"type": "string",
"required": true,
"default": "https://get.geojs.io/v1/ip/country/{ip}"
}
},
{
"variable": "apiTimeoutMs",
"label": "API Timeout in ms",
"description": "Timeout for the call to the api uri.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
},
{
"variable": "cacheSize",
"label": "Cache Size",
"description": "Defines the max size of the LRU (least recently used) cache.",
"schema": {
"type": "int",
"required": true,
"default": 25
}
},
{
"variable": "forceMonthlyUpdate",
"label": "Force Monthly Update",
"description": "Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowUnknownCountries",
"label": "Allow Unknown Countries",
"description": "Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unknownCountryApiResponse",
"label": "Unknown Countries API Response",
"description": "The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested.",
"schema": {
"type": "string",
"required": true,
"default": "nil"
}
},
{
"variable": "blackListMode",
"label": "Blacklist Mode",
"description": "When set to true the filter logic is inverted, i.e. requests originating from countries listed in the countries list are blocked.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "countries",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"label": "Countries",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "countryEntry",
"label": "Country",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[a-zA-Z]{2}$",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addPrefix",
"label": "Add Prefix",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addPrefixEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "prefix",
"label": "Prefix",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "modsecurity",
"label": "modsecurity",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "modsecurityEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/acouvreur/traefik-modsecurity-plugin\">traefik-modsecurity-plugin</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "modSecurityUrl",
"label": "ModSecurity Url",
"description": "It's the URL for the owasp/modsecurity container.",
"schema": {
"type": "string",
"required": true,
"default": "https://someurl"
}
},
{
"variable": "timeoutMillis",
"label": "timeout Millis",
"description": "timeout in milliseconds for the http client to talk with modsecurity container. (",
"schema": {
"type": "int",
"required": true,
"default": 2
}
},
{
"variable": "maxBodySize",
"label": "maxBody Size",
"description": "it's the maximum limit for requests body size. Requests exceeding this value will be rejected using HTTP 413 Request Entity Too Large. Zero means \"use default value\".",
"schema": {
"type": "int",
"required": true,
"default": 0
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service Entrypoint",
"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 Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 9000,
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tcp",
"label": "TCP Service",
"description": "The tcp Entrypoint 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": "web",
"label": "web Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 80,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string",
"default": "websecure"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "websecure",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 443,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional TCP Entrypoints",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom Entrypoints",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Entrypoints Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Entrypoints Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
}
]
}
},
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"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
}
},
{
"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"
}
}
]
}
},
{
"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": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "metrics",
"group": "Metrics",
"label": "Prometheus Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "prometheusRule",
"label": "PrometheusRule",
"description": "Enable and configure Prometheus Rules for the App.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"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 <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
},
{
"variable": "warning",
"group": "Documentation",
"label": "WARNING: If installed, be sure to move the TrueNAS GUI to another port (not 80 or 443).",
"description": "See: <br /><a href=\"https://truecharts.org/charts/enterprise/traefik/how-to\">https://truecharts.org/charts/enterprise/traefik/how-to</a> for more info.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "warningconfim",
"label": "I am aware that I will brick my system, if I did not follow the instructions.",
"schema": {
"type": "boolean",
"default": true,
"required": true
}
}
]
}
}
]
},
"app_readme": "<p>Traefik is a flexible reverse proxy and Ingress Provider.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/enterprise/traefik\">https://truecharts.org/charts/enterprise/traefik</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/enterprise/traefik\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<p><em>for the complete changelog, please refer to the website</em></p>\n<p><strong>Important:</strong></p>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.16...traefik-25.1.17\">traefik-25.1.17</a> (2024-02-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/ec52218\">@ec52218</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/18109\">#18109</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.15...traefik-25.1.16\">traefik-25.1.16</a> (2024-02-03)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.30<a href=\"https://github.com/19ad5ec\">@19ad5ec</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17804\">#17804</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.14...traefik-25.1.15\">traefik-25.1.15</a> (2024-01-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.29<a href=\"https://github.com/d7c41a3\">@d7c41a3</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17545\">#17545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.13...traefik-25.1.14\">traefik-25.1.14</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.28<a href=\"https://github.com/918b4c5\">@918b4c5</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17478\">#17478</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.12...traefik-25.1.13\">traefik-25.1.13</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image tccr.io/tccr/traefik to v2.10.7<a href=\"https://github.com/1a1f160\">@1a1f160</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17471\">#17471</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.11...traefik-25.1.12\">traefik-25.1.12</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.26<a href=\"https://github.com/24c98f7\">@24c98f7</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/17409\">#17409</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.10...traefik-25.1.11\">traefik-25.1.11</a> (2024-01-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update metadata in chart.yaml (<a href=\"https://github.com/truecharts/charts/issues/17457\">#17457</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.9...traefik-25.1.10\">traefik-25.1.10</a> (2024-01-09)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update container image common to v17.2.22<a href=\"https://github.com/e7c9056\">@e7c9056</a> by renovate (<a href=\"https://github.com/truecharts/charts/issues/16986\">#16986</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-25.1.8...traefik-25.1.9\">traefik-25.1.9</a> (2024-01-02)</h2>\n<h3>Chore</h3>"
},
"25.2.0": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/home/runner/work/catalog/catalog/enterprise/traefik/25.2.0",
"last_update": "2024-02-22 14:02:27",
"required_features": [
"definitions/certificate",
"definitions/timezone",
"definitions/gpuConfiguration"
],
"human_version": "2.10.7_25.2.0",
"version": "25.2.0",
"chart_metadata": {
"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.14",
"truecharts.org/min_helm_version": "3.12",
"truecharts.org/train": "enterprise"
},
"apiVersion": "v2",
"appVersion": "2.10.7",
"dependencies": [
{
"name": "common",
"version": "17.4.2",
"repository": "oci://tccr.io/truecharts",
"condition": "",
"alias": "",
"tags": [],
"import-values": []
}
],
"deprecated": false,
"description": "Traefik is a flexible reverse proxy and Ingress Provider.",
"home": "https://truecharts.org/charts/enterprise/traefik",
"icon": "https://truecharts.org/img/hotlink-ok/chart-icons/traefik.png",
"keywords": [
"traefik",
"ingress"
],
"kubeVersion": ">=1.24.0-0",
"maintainers": [
{
"name": "TrueCharts",
"email": "info@truecharts.org",
"url": "https://truecharts.org"
}
],
"name": "traefik",
"sources": [
"https://github.com/traefik/traefik",
"https://github.com/traefik/traefik-helm-chart",
"https://traefik.io/",
"https://github.com/truecharts/charts/tree/master/charts/enterprise/traefik",
"https://github.com/truecharts/containers/tree/master/apps/traefik"
],
"type": "application",
"version": "25.2.0"
},
"app_metadata": null,
"schema": {
"groups": [
{
"name": "Container Image",
"description": "Image to be used for container"
},
{
"name": "General Settings",
"description": "General Deployment Settings"
},
{
"name": "Workload Settings",
"description": "Workload Settings"
},
{
"name": "App Configuration",
"description": "App Specific Config Options"
},
{
"name": "Networking and Services",
"description": "Configure Network and Services for Container"
},
{
"name": "Storage and Persistence",
"description": "Persist and Share Data that is Separate from the Container"
},
{
"name": "Ingress",
"description": "Ingress Configuration"
},
{
"name": "Security and Permissions",
"description": "Configure Security Context and Permissions"
},
{
"name": "Resources and Devices",
"description": "Specify Resources/Devices to be Allocated to Workload"
},
{
"name": "Middlewares",
"description": "Traefik Middlewares"
},
{
"name": "Metrics",
"description": "Metrics"
},
{
"name": "Addons",
"description": "Addon Configuration"
},
{
"name": "Backup Configuration",
"description": "Configure Velero Backup Schedule"
},
{
"name": "Advanced",
"description": "Advanced Configuration"
},
{
"name": "Postgresql",
"description": "Postgresql"
},
{
"name": "Documentation",
"description": "Documentation"
}
],
"portals": {
"open": {
"protocols": [
"$kubernetes-resource_configmap_tcportal-open_protocol"
],
"host": [
"$kubernetes-resource_configmap_tcportal-open_host"
],
"ports": [
"$kubernetes-resource_configmap_tcportal-open_port"
],
"path": "$kubernetes-resource_configmap_tcportal-open_path"
}
},
"questions": [
{
"variable": "global",
"group": "General Settings",
"label": "Global Settings",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "stopAll",
"label": "Stop All",
"description": "Stops All Running pods and hibernates cnpg",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "workload",
"group": "Workload Settings",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type (Advanced)",
"schema": {
"type": "string",
"default": "Deployment",
"enum": [
{
"value": "Deployment",
"description": "Deployment"
},
{
"value": "DaemonSet",
"description": "DaemonSet"
}
]
}
},
{
"variable": "replicas",
"label": "Replicas (Advanced)",
"description": "Set the number of Replicas",
"schema": {
"type": "int",
"show_if": [
[
"type",
"!=",
"DaemonSet"
]
],
"default": 1
}
},
{
"variable": "podSpec",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "containers",
"label": "Containers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "envList",
"label": "Extra Environment Variables",
"description": "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting...",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "envItem",
"label": "Environment Variable",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string"
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
},
{
"variable": "extraArgs",
"label": "Extra Args",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "arg",
"label": "Arg",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "command",
"label": "Command",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "param",
"label": "Param",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "TZ",
"label": "Timezone",
"group": "General Settings",
"schema": {
"type": "string",
"default": "America/Los_Angeles",
"$ref": [
"definitions/timezone"
],
"enum": [
{
"value": "Asia/Damascus",
"description": "'Asia/Damascus' timezone"
},
{
"value": "Asia/Saigon",
"description": "'Asia/Saigon' 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": "expertIngressClass",
"label": "Expert Mode",
"group": "App Configuration",
"description": "Expert Mode contains settings like: </br>\n- IngressClass </br>\n",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "ingressClass",
"label": "ingressClass",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"description": "When enabled, ingressClass will match the entered name of this app",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "isDefaultClass",
"label": "isDefaultClass",
"schema": {
"type": "boolean",
"show_if": [
[
"enabled",
"=",
true
]
],
"default": false
}
}
]
}
}
]
}
},
{
"variable": "logs",
"label": "Logs",
"group": "App Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "level",
"label": "Log Level",
"schema": {
"type": "string",
"default": "ERROR",
"enum": [
{
"value": "INFO",
"description": "Info"
},
{
"value": "WARN",
"description": "Warnings"
},
{
"value": "ERROR",
"description": "Errors"
},
{
"value": "FATAL",
"description": "Fatal Errors"
},
{
"value": "PANIC",
"description": "Panics"
},
{
"value": "DEBUG",
"description": "Debug"
}
]
}
},
{
"variable": "format",
"label": "General Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
},
{
"variable": "access",
"label": "Access Logs",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "enabledFilters",
"label": "Enable Filters",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "filters",
"label": "Filters",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "statuscodes",
"label": "Status codes",
"schema": {
"type": "string",
"default": "200,300-302"
}
},
{
"variable": "retryattempts",
"label": "retryattempts",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "minduration",
"label": "minduration",
"schema": {
"type": "string",
"default": "10ms"
}
}
]
}
}
]
}
},
{
"variable": "fields",
"label": "Fields",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "general",
"label": "General",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "keep",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
},
{
"variable": "headers",
"label": "Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "defaultmode",
"label": "Default Mode",
"schema": {
"type": "string",
"default": "drop",
"enum": [
{
"value": "keep",
"description": "Keep"
},
{
"value": "drop",
"description": "Drop"
}
]
}
}
]
}
}
]
}
},
{
"variable": "format",
"label": "Access Log format",
"schema": {
"type": "string",
"default": "common",
"enum": [
{
"value": "common",
"description": "Common Log Format"
},
{
"value": "json",
"description": "JSON"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "middlewares",
"label": "",
"group": "Middlewares",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "basicAuth",
"label": "basicAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "users",
"label": "Users",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "usersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "username",
"label": "Username",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "password",
"label": "Password",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "forwardAuth",
"label": "forwardAuth",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "basicAuthEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "address",
"label": "Address",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "trustForwardHeader",
"label": "trustForwardHeader",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "tls",
"label": "TLS",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "insecureSkipVerify",
"label": "insecureSkipVerify (expert)",
"description": "This disables all TLS certificate validation on communications with the authentication endpoint. This could be a security risk and should only be used if you know what you are doing.",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
},
{
"variable": "authResponseHeadersRegex",
"label": "authResponseHeadersRegex",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "authResponseHeaders",
"label": "authResponseHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authResponseHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "authRequestHeaders",
"label": "authRequestHeaders",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "authRequestHeadersEntry",
"label": "",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "buffering",
"label": "Buffering",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "bufferingEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "maxRequestBodyBytes",
"label": "Max Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memRequestBodyBytes",
"label": "Mem Request Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "maxResponseBodyBytes",
"label": "Max Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "memResponseBodyBytes",
"label": "Mem Response Body Bytes",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"valid_chars": "^[0-9]*$",
"default": ""
}
},
{
"variable": "retryExpression",
"label": "Retry Expression",
"description": "Leave empty and it won't be set",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "customRequestHeaders",
"label": "Custom Request Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customRequestHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to requests, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customResponseHeaders",
"label": "Custom Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers to Add",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of custom header to be added to responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "value",
"label": "Header Value",
"description": "The value of the header. If the value is empty, the header will be removed.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "rewriteResponseHeaders",
"label": "Rewrite Response Headers",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rewriteResponseHeadersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "headers",
"label": "Headers To Rewrite",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "headersEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Header Name",
"description": "Name of a header to modified in responses, eg. X-Custom-Header",
"schema": {
"valid_chars": "^[a-zA-Z0-9_\\-]*$",
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "regex",
"label": "Regex",
"description": "The value of the header to match. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement Regex",
"description": "The new value of the header. Accepts regex expression.",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "customFrameOptionsValue",
"label": "Custom Frame Options Value",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "customFrameOptionsValueEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "X-Frame-Options Header Value",
"description": "The value of the header.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "chain",
"label": "Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "chainEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "middlewares",
"label": "Middlewares to Chain",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "redirectScheme",
"label": "redirectScheme",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectSchemeEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "scheme",
"label": "Scheme",
"schema": {
"type": "string",
"required": true,
"default": "https",
"enum": [
{
"value": "https",
"description": "https"
},
{
"value": "http",
"description": "http"
}
]
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "rateLimit",
"label": "rateLimit",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "rateLimitEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "average",
"label": "Average",
"schema": {
"type": "int",
"required": true,
"default": 300
}
},
{
"variable": "burst",
"label": "Burst",
"schema": {
"type": "int",
"required": true,
"default": 200
}
}
]
}
}
]
}
},
{
"variable": "redirectRegex",
"label": "redirectRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "redirectRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "replacement",
"label": "Replacement",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "permanent",
"label": "Permanent",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "stripPrefixRegex",
"label": "stripPrefixRegex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "stripPrefixRegexEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "regex",
"label": "Regex",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "regexEntry",
"label": "Regex",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ipWhiteList",
"label": "ipWhiteList",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ipWhiteListEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "sourceRange",
"label": "Source Range",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "sourceRangeEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "ipStrategy",
"label": "IP Strategy",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "depth",
"label": "Depth",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "excludedIPs",
"label": "Excluded IPs",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "themePark",
"label": "theme.park",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "themeParkEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/packruler/traefik-themepark\">traefik-themepark</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "appName",
"label": "App Name",
"description": "Lower case, name of the app to be themed. <br />Go to <a href=\"https://docs.theme-park.dev/themes/\">https://docs.theme-park.dev/themes/</a> to see supported apps.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "themeName",
"label": "Theme Name",
"description": "Lower case, name of the theme to be applied. <br />Go to <a href=\"https://docs.theme-park.dev/theme-options/\">https://docs.theme-park.dev/theme-options/</a> to see supported themes.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "baseUrl",
"label": "Base URL",
"description": "Replace `https://theme-park.dev` URL for self-hosting reference.",
"schema": {
"type": "string",
"required": true,
"default": "https://theme-park.dev"
}
},
{
"variable": "addons",
"label": "Addons",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addonEntry",
"label": "Addon",
"description": "Currently only supports 'darker' and '4k-logo' for *arr apps. <br />Go to <a href=\"https://docs.theme-park.dev/themes/addons/\">https://docs.theme-park.dev/themes/addons/</a> for Addon information. <br />Go to <a href=\"https://github.com/packruler/traefik-themepark\">https://github.com/packruler/traefik-themepark</a> for more context on plugin",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "realIP",
"label": "Real IP",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "realIPEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "excludedNetworks",
"label": "Excluded Networks",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "excludedNetEntry",
"label": "Excluded Network Entry",
"description": "Network to exclude setting it to X-Real-Ip",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "geoBlock",
"label": "GeoBlock",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "geoBlockEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/PascalMinder/geoblock\">geoblock</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "allowLocalRequests",
"label": "Allow Local Requests",
"description": "If set to true, will not block request from Private IP Ranges",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "logLocalRequests",
"label": "Log Local Requests",
"description": "If set to true, will log every connection from any IP in the private IP range",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logAllowedRequests",
"label": "Log Allowed Requests",
"description": "If set to true, will show a log message with the IP and the country of origin if a request is allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "logApiRequests",
"label": "Log API Requests",
"description": "If set to true, will show a log message for every API hit.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "api",
"label": "API",
"description": "Defines the API URL for the IP to Country resolution. The IP to fetch can be added with {ip} to the URL.",
"schema": {
"type": "string",
"required": true,
"default": "https://get.geojs.io/v1/ip/country/{ip}"
}
},
{
"variable": "apiTimeoutMs",
"label": "API Timeout in ms",
"description": "Timeout for the call to the api uri.",
"schema": {
"type": "int",
"required": true,
"default": 500
}
},
{
"variable": "cacheSize",
"label": "Cache Size",
"description": "Defines the max size of the LRU (least recently used) cache.",
"schema": {
"type": "int",
"required": true,
"default": 25
}
},
{
"variable": "forceMonthlyUpdate",
"label": "Force Monthly Update",
"description": "Even if an IP stays in the cache for a period of a month (about 30 x 24 hours), it must be fetch again after a month.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowUnknownCountries",
"label": "Allow Unknown Countries",
"description": "Some IP addresses have no country associated with them. If this option is set to true, all IPs with no associated country are also allowed.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "unknownCountryApiResponse",
"label": "Unknown Countries API Response",
"description": "The API uri can be customized. This options allows to customize the response string of the API when a IP with no associated country is requested.",
"schema": {
"type": "string",
"required": true,
"default": "nil"
}
},
{
"variable": "blackListMode",
"label": "Blacklist Mode",
"description": "When set to true the filter logic is inverted, i.e. requests originating from countries listed in the countries list are blocked.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "countries",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"label": "Countries",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "countryEntry",
"label": "Country",
"description": "Country codes (2 characters) from which connections to the service should be allowed or blocked, based on the mode.",
"schema": {
"type": "string",
"required": true,
"valid_chars": "^[a-zA-Z]{2}$",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "addPrefix",
"label": "Add Prefix",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "addPrefixEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "prefix",
"label": "Prefix",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "modsecurity",
"label": "modsecurity",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "modsecurityEntry",
"label": "",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"description": "This is a 3rd party plugin and not maintained by TrueCharts, for more information go to <a href=\"https://github.com/acouvreur/traefik-modsecurity-plugin\">traefik-modsecurity-plugin</a>",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "modSecurityUrl",
"label": "ModSecurity Url",
"description": "It's the URL for the owasp/modsecurity container.",
"schema": {
"type": "string",
"required": true,
"default": "https://someurl"
}
},
{
"variable": "timeoutMillis",
"label": "timeout Millis",
"description": "timeout in milliseconds for the http client to talk with modsecurity container. (",
"schema": {
"type": "int",
"required": true,
"default": 2
}
},
{
"variable": "maxBodySize",
"label": "maxBody Size",
"description": "it's the maximum limit for requests body size. Requests exceeding this value will be rejected using HTTP 413 Request Entity Too Large. Zero means \"use default value\".",
"schema": {
"type": "int",
"required": true,
"default": 0
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "service",
"group": "Networking and Services",
"label": "Configure Service Entrypoint",
"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 Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 9000,
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tcp",
"label": "TCP Service",
"description": "The tcp Entrypoint 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": "web",
"label": "web Entrypoint Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 80,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string",
"default": "websecure"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "websecure",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Entrypoints Port",
"schema": {
"type": "int",
"default": 443,
"required": true
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "portsList",
"label": "Additional TCP Entrypoints",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "portsListEntry",
"label": "Custom Entrypoints",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the port",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Entrypoints Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "protocol",
"label": "Entrypoints Type",
"schema": {
"type": "string",
"default": "tcp",
"enum": [
{
"value": "http",
"description": "HTTP"
},
{
"value": "https",
"description": "HTTPS"
},
{
"value": "tcp",
"description": "TCP"
}
]
}
},
{
"variable": "port",
"label": "Port",
"description": "This port exposes the container port on the service",
"schema": {
"type": "int",
"required": true
}
},
{
"variable": "tls",
"label": "websecure Entrypoints Configuration",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "redirectPort",
"label": "Redirect to Port",
"schema": {
"type": "int"
}
},
{
"variable": "redirectTo",
"label": "Redirect to Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "forwardedHeaders",
"label": "Accept Forwarded Headers",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Trust Forwarded Headers from specific IPs.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Always Trust Forwarded Headers",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
},
{
"variable": "proxyProtocol",
"label": "Accept Proxy Protocol connections",
"description": "If Proxy Protocol header parsing is enabled for the entry point, this entry point can accept connections with or without Proxy Protocol headers.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "trustedIPs",
"label": "Trusted IPs",
"description": "Only IPs in trustedIPs will lead to remote client address replacement",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedIPsEntry",
"label": "",
"schema": {
"type": "string",
"required": true,
"default": ""
}
}
]
}
},
{
"variable": "insecureMode",
"label": "Insecure Mode",
"description": "Trust every incoming connection",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingress",
"label": "",
"group": "Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [
{
"path": "/",
"pathType": "Prefix"
}
],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests (advanced)",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace (optional)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name (Optional)",
"description": "Defaults to chart name",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description (Optional)",
"description": "Defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "icon",
"label": "Icon (Optional)",
"description": "Defaults to chart icon",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "widget",
"label": "Widget Settings",
"schema": {
"type": "dict",
"additional_attrs": true,
"show_if": [
[
"enabled",
"=",
true
]
],
"attrs": [
{
"variable": "enabled",
"label": "Enable Widget",
"description": "When disabled all widget annotations are skipped.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "custom",
"label": "Options",
"schema": {
"type": "dict",
"additional_attrs": true,
"attrs": [
{
"variable": "key",
"label": "API-key (key)",
"schema": {
"type": "string",
"default": ""
}
}
]
}
},
{
"variable": "customkv",
"label": "Custom Options",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "advanced",
"label": "Show Advanced Settings",
"description": "Advanced settings are not covered by TrueCharts Support",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "ingressClassName",
"label": "(Advanced/Optional) IngressClass Name",
"schema": {
"type": "string",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": ""
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"show_if": [
[
"advanced",
"=",
true
]
],
"default": [],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your cert-manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Certificate Secret (Advanced)",
"schema": {
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "ingressList",
"label": "Add Manual Custom Ingresses",
"group": "Ingress",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "ingressListEntry",
"label": "Custom Ingress",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable Ingress",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
},
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "ingressClassName",
"label": "IngressClass Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "hosts",
"label": "Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "hostEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "host",
"label": "HostName",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "paths",
"label": "Paths",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "pathEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "path",
"label": "Path",
"schema": {
"type": "string",
"required": true,
"default": "/"
}
},
{
"variable": "pathType",
"label": "Path Type",
"schema": {
"type": "string",
"required": true,
"default": "Prefix"
}
},
{
"variable": "overrideService",
"label": "Linked Service",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Service Name",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "port",
"label": "Service Port",
"schema": {
"type": "int"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "tls",
"label": "TLS-Settings",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"items": [
{
"variable": "tlsEntry",
"label": "Host",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "hosts",
"label": "Certificate Hosts",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "host",
"label": "Host",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "certificateIssuer",
"label": "Use Cert-Manager clusterIssuer",
"description": "add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.",
"schema": {
"type": "string",
"default": ""
}
},
{
"variable": "clusterCertificate",
"label": "Cluster Certificate (Advanced)",
"description": "Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
},
{
"variable": "secretName",
"label": "Use Custom Secret (Advanced)",
"schema": {
"type": "string",
"show_if": [
[
"certificateIssuer",
"=",
""
]
],
"default": ""
}
}
]
}
}
]
}
},
{
"variable": "integrations",
"label": "Integrations",
"description": "Connect ingress with other charts",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "traefik",
"label": "Traefik",
"description": "Connect ingress with Traefik",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "allowCors",
"label": "Allow Cross Origin Requests",
"schema": {
"type": "boolean",
"default": false,
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "entrypoints",
"label": "Entrypoints",
"schema": {
"type": "list",
"default": [
"websecure"
],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "entrypoint",
"label": "Entrypoint",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "middlewares",
"label": "Middlewares",
"schema": {
"type": "list",
"default": [],
"show_if": [
[
"enabled",
"=",
true
]
],
"items": [
{
"variable": "middleware",
"label": "Middleware",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "name",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "namespace",
"label": "namespace",
"schema": {
"type": "string",
"default": ""
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "certManager",
"label": "certManager",
"description": "Connect ingress with certManager",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "certificateIssuer",
"label": "certificateIssuer",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
},
{
"variable": "homepage",
"label": "Homepage",
"description": "Connect ingress with Homepage",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "enabled",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "name",
"label": "Name",
"description": "defaults to chartname",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "description",
"label": "Description",
"description": "defaults to chart description",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"enabled",
"=",
true
]
]
}
},
{
"variable": "group",
"label": "Group",
"schema": {
"type": "string",
"required": true,
"default": "default",
"show_if": [
[
"enabled",
"=",
true
]
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "securityContext",
"group": "Security and Permissions",
"label": "Security Context",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "container",
"label": "Container",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"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
}
},
{
"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"
}
}
]
}
},
{
"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": "intel.com/i915",
"label": "Add Intel i915 GPUs",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "nvidia.com/gpu",
"label": "Add NVIDIA GPUs (Experimental)",
"schema": {
"type": "int",
"default": 0
}
},
{
"variable": "amd.com/gpu",
"label": "Add AMD GPUs",
"schema": {
"type": "int",
"default": 0
}
}
]
}
},
{
"variable": "requests",
"label": "Minimum Resources Required (request)",
"schema": {
"additional_attrs": true,
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "10m",
"hidden": true,
"valid_chars": "^(?!^0(\\.0|m|)$)([0-9]+)(\\.[0-9]|m?)$"
}
},
{
"variable": "memory",
"label": "RAM",
"description": "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation",
"schema": {
"type": "string",
"default": "50Mi",
"hidden": true,
"valid_chars": "^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$"
}
}
]
}
}
]
}
},
{
"variable": "deviceList",
"label": "Mount USB Devices",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "deviceListEntry",
"label": "Device",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enable the Storage",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "type",
"label": "(Advanced) Type of Storage",
"description": "Sets the persistence type",
"schema": {
"type": "string",
"default": "device",
"hidden": true
}
},
{
"variable": "readOnly",
"label": "readOnly",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "hostPath",
"label": "Host Device Path",
"description": "Path to the device on the host system",
"schema": {
"type": "path"
}
},
{
"variable": "mountPath",
"label": "Container Device Path",
"description": "Path inside the container the device is mounted",
"schema": {
"type": "string",
"default": "/dev/ttyACM0"
}
}
]
}
}
]
}
},
{
"variable": "scaleGPU",
"label": "GPU Configuration",
"group": "Resources and Devices",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "scaleGPUEntry",
"label": "GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "gpu",
"label": "Select GPU",
"schema": {
"additional_attrs": true,
"type": "dict",
"$ref": [
"definitions/gpuConfiguration"
],
"attrs": []
}
},
{
"variable": "workaround",
"label": "Workaround",
"schema": {
"type": "string",
"default": "workaround",
"hidden": true
}
}
]
}
}
]
}
},
{
"variable": "metrics",
"group": "Metrics",
"label": "Prometheus Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "main",
"label": "Main Metrics",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false,
"show_subquestions_if": true,
"subquestions": [
{
"variable": "prometheusRule",
"label": "PrometheusRule",
"description": "Enable and configure Prometheus Rules for the App.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "enabled",
"label": "Enabled",
"description": "Enable Prometheus Metrics",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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"
],
"enum": [
{
"value": null,
"description": "No Certificate"
}
],
"default": null,
"null": true
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 <br /><a href=\"https://truecharts.org\">https://truecharts.org</a>",
"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 <br /><a href=\"https://truecharts.org/sponsor\">https://truecharts.org/sponsor</a>",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "confirmDonate",
"label": "I have considered donating",
"schema": {
"type": "boolean",
"default": true,
"hidden": true
}
}
]
}
},
{
"variable": "warning",
"group": "Documentation",
"label": "WARNING: If installed, be sure to move the TrueNAS GUI to another port (not 80 or 443).",
"description": "See: <br /><a href=\"https://truecharts.org/charts/enterprise/traefik/how-to\">https://truecharts.org/charts/enterprise/traefik/how-to</a> for more info.",
"schema": {
"additional_attrs": true,
"type": "dict",
"attrs": [
{
"variable": "warningconfim",
"label": "I am aware that I will brick my system, if I did not follow the instructions.",
"schema": {
"type": "boolean",
"default": true,
"required": true
}
}
]
}
}
]
},
"app_readme": "<p>Traefik is a flexible reverse proxy and Ingress Provider.</p>\n<p>This App is supplied by TrueCharts, for more information visit the manual: <a href=\"https://truecharts.org/charts/enterprise/traefik\">https://truecharts.org/charts/enterprise/traefik</a></p>\n<hr />\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>",
"detailed_readme": "<hr />\n<h2>title: README</h2>\n<h2>General Info</h2>\n<p>TrueCharts can be installed as both <em>normal</em> Helm Charts or as Apps on TrueNAS SCALE.\nHowever only installations using the TrueNAS SCALE Apps system are supported.</p>\n<p>For more information about this App, please check the docs on the TrueCharts <a href=\"https://truecharts.org/charts/enterprise/traefik\">website</a></p>\n<p><strong>This chart is not maintained by the upstream project and any issues with the chart should be raised <a href=\"https://github.com/truecharts/charts/issues/new/choose\">here</a></strong></p>\n<h2>Support</h2>\n<ul>\n<li>Please check our <a href=\"https://truecharts.org/manual/SCALE/guides/scale-intro\">quick-start guides for TrueNAS SCALE</a>.</li>\n<li>See the <a href=\"https://truecharts.org\">Website</a></li>\n<li>Check our <a href=\"https://discord.gg/tVsPTHWTtr\">Discord</a></li>\n<li>Open a <a href=\"https://github.com/truecharts/charts/issues/new/choose\">issue</a></li>\n</ul>\n<hr />\n<h2>Sponsor TrueCharts</h2>\n<p>TrueCharts can only exist due to the incredible effort of our staff.\nPlease consider making a <a href=\"https://truecharts.org/sponsor\">donation</a> or contributing back to the project any way you can!</p>\n<p><em>All Rights Reserved - The TrueCharts Project</em></p>",
"changelog": "<hr />\n<h2>title: Changelog</h2>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.5\">traefik-13.5.5</a> (2022-11-08)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4342\">#4342</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4349\">#4349</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4\">traefik-13.5.4</a> (2022-11-08)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4342\">#4342</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4\">traefik-13.5.4</a> (2022-11-08)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4342\">#4342</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.4\">traefik-13.5.4</a> (2022-11-08)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4342\">#4342</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.3\">traefik-13.5.3</a> (2022-11-07)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.2...traefik-13.5.3\">traefik-13.5.3</a> (2022-11-06)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4329\">#4329</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.1...traefik-13.5.2\">traefik-13.5.2</a> (2022-11-06)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4317\">#4317</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.5.0...traefik-13.5.1\">traefik-13.5.1</a> (2022-11-05)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4308\">#4308</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.16...traefik-13.5.0\">traefik-13.5.0</a> (2022-11-02)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n</ul>\n<h3>Feat</h3>\n<ul>\n<li>add support for insecureForwardAuth (<a href=\"https://github.com/truecharts/charts/issues/4247\">#4247</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.15...traefik-13.4.16\">traefik-13.4.16</a> (2022-11-02)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4261\">#4261</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.14...traefik-13.4.15\">traefik-13.4.15</a> (2022-10-29)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/4230\">#4230</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.13...traefik-13.4.14\">traefik-13.4.14</a> (2022-10-28)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/4218\">#4218</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.12...traefik-13.4.13\">traefik-13.4.13</a> (2022-10-25)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4182\">#4182</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.11...traefik-13.4.12\">traefik-13.4.12</a> (2022-10-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n</ul>\n<h3>Fix</h3>\n<ul>\n<li>fix CRD update and common update (<a href=\"https://github.com/truecharts/charts/issues/4149\">#4149</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.10...traefik-13.4.11\">traefik-13.4.11</a> (2022-10-19)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4122\">#4122</a>)</li>\n</ul>\n<h3>Fix</h3>\n<ul>\n<li>enable crd updating (<a href=\"https://github.com/truecharts/charts/issues/4068\">#4068</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.9...traefik-13.4.10\">traefik-13.4.10</a> (2022-10-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/4071\">#4071</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.8...traefik-13.4.9\">traefik-13.4.9</a> (2022-10-10)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major</li>\n</ul>\n<h3>Docs</h3>\n<ul>\n<li>Add basicAuth examples to docs (<a href=\"https://github.com/truecharts/charts/issues/4056\">#4056</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.7...traefik-13.4.8\">traefik-13.4.8</a> (2022-10-07)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.7...traefik-13.4.8\">traefik-13.4.8</a> (2022-10-07)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.6...traefik-13.4.7\">traefik-13.4.7</a> (2022-10-07)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.5...traefik-13.4.6\">traefik-13.4.6</a> (2022-10-05)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.4...traefik-13.4.5\">traefik-13.4.5</a> (2022-10-04)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>split addons in smaller templates (<a href=\"https://github.com/truecharts/charts/issues/3979\">#3979</a>)</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/4001\">#4001</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.3...traefik-13.4.4\">traefik-13.4.4</a> (2022-10-01)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3975\">#3975</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.2...traefik-13.4.3\">traefik-13.4.3</a> (2022-09-27)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3918\">#3918</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.1...traefik-13.4.2\">traefik-13.4.2</a> (2022-09-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n</ul>\n<h3>Feat</h3>\n<ul>\n<li>make include replace simpler (<a href=\"https://github.com/truecharts/charts/issues/3904\">#3904</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.4.0...traefik-13.4.1\">traefik-13.4.1</a> (2022-09-25)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3898\">#3898</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.11...traefik-13.4.0\">traefik-13.4.0</a> (2022-09-25)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n</ul>\n<h3>Feat</h3>\n<ul>\n<li>add RealIP and addPrefix middleware (<a href=\"https://github.com/truecharts/charts/issues/3884\">#3884</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-14.0.0...traefik-13.3.11\">traefik-13.3.11</a> (2022-09-24)</h2>\n<h3>Chore</h3>\n<ul>\n<li>regex redirect docs (<a href=\"https://github.com/truecharts/charts/issues/3880\">#3880</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.9...traefik-13.3.10\">traefik-13.3.10</a> (2022-09-24)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3860\">#3860</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.9\">traefik-13.3.9</a> (2022-09-22)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>fix prometheus annotations (<a href=\"https://github.com/truecharts/charts/issues/3841\">#3841</a>)</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-21)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-20)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-20)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-19)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-19)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-19)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-17)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>refactor Services SCALE GUI</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-18)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-16)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-16)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-15)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3772\">#3772</a>)</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.7...traefik-13.3.8\">traefik-13.3.8</a> (2022-09-15)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3767\">#3767</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-11)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-11)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-11)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.6...traefik-13.3.7\">traefik-13.3.7</a> (2022-09-11)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3711\">#3711</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.5...traefik-13.3.6\">traefik-13.3.6</a> (2022-09-09)</h2>\n<h3>Chore</h3>\n<ul>\n<li>move docs from website repo (<a href=\"https://github.com/truecharts/charts/issues/3722\">#3722</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.4...traefik-13.3.5\">traefik-13.3.5</a> (2022-09-04)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/charts/issues/3681\">#3681</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.3...traefik-13.3.4\">traefik-13.3.4</a> (2022-09-03)</h2>\n<h3>Fix</h3>\n<ul>\n<li>fix serviceaccount creation on few apps (<a href=\"https://github.com/truecharts/charts/issues/3665\">#3665</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.1...traefik-13.3.3\">traefik-13.3.3</a> (2022-08-30)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3639\">#3639</a>)</li>\n<li>update helm chart common to v10.5.5 (<a href=\"https://github.com/truecharts/charts/issues/3626\">#3626</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.1...traefik-13.3.2\">traefik-13.3.2</a> (2022-08-30)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm chart common to v10.5.5 (<a href=\"https://github.com/truecharts/charts/issues/3626\">#3626</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.3.0...traefik-13.3.1\">traefik-13.3.1</a> (2022-08-29)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major (<a href=\"https://github.com/truecharts/charts/issues/3619\">#3619</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.2.3...traefik-13.3.0\">traefik-13.3.0</a> (2022-08-27)</h2>\n<h3>Feat</h3>\n<ul>\n<li>add support for proxyProtocol (<a href=\"https://github.com/truecharts/charts/issues/3593\">#3593</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.2.2...traefik-13.2.3\">traefik-13.2.3</a> (2022-08-25)</h2>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.2.1...traefik-13.2.2\">traefik-13.2.2</a> (2022-08-23)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/charts/issues/3545\">#3545</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.1.10...traefik-13.2.1\">traefik-13.2.1</a> (2022-08-22)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.1.10...traefik-13.2.0\">traefik-13.2.0</a> (2022-08-21)</h2>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.1.9...traefik-13.1.10\">traefik-13.1.10</a> (2022-08-14)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update docker general non-major docker tags (<a href=\"https://github.com/truecharts/charts/issues/3465\">#3465</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.1.8...traefik-13.1.9\">traefik-13.1.9</a> (2022-08-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>add documentation checkbox/section to all SCALE Apps</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/charts/issues/3456\">#3456</a>)</li>\n</ul>\n<h3>Fix</h3>\n<ul>\n<li>move extraArgs from .Values.controller to .Values (<a href=\"https://github.com/truecharts/charts/issues/3447\">#3447</a>)</li>\n<li>make trustedIPs vars to string (<a href=\"https://github.com/truecharts/charts/issues/3391\">#3391</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/charts/compare/traefik-13.1.7...traefik-13.1.8\">traefik-13.1.8</a> (2022-08-08)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/charts/issues/3376\">#3376</a>)</li>\n<li>replace questions parts with templates (<a href=\"https://github.com/truecharts/charts/issues/3402\">#3402</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.6...traefik-13.1.7\">traefik-13.1.7</a> (2022-07-27)</h2>\n<h3>Feat</h3>\n<ul>\n<li>add theme-park middleware docs (<a href=\"https://github.com/truecharts/apps/issues/3320\">#3320</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.5...traefik-13.1.6\">traefik-13.1.6</a> (2022-07-26)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3302\">#3302</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.4...traefik-13.1.5\">traefik-13.1.5</a> (2022-07-25)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/3295\">#3295</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.4...traefik-13.1.5\">traefik-13.1.5</a> (2022-07-25)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/3295\">#3295</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.3...traefik-13.1.4\">traefik-13.1.4</a> (2022-07-23)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3280\">#3280</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.3...traefik-13.1.4\">traefik-13.1.4</a> (2022-07-23)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3280\">#3280</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.3...traefik-13.1.4\">traefik-13.1.4</a> (2022-07-23)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3280\">#3280</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.2...traefik-13.1.3\">traefik-13.1.3</a> (2022-07-23)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/3276\">#3276</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.1.0...traefik-13.1.2\">traefik-13.1.2</a> (2022-07-22)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Bump all charts to generate config and container references due to huge increase of repository</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3268\">#3268</a>)</li>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/3266\">#3266</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-13.0.0...traefik-13.1.0\">traefik-13.1.0</a> (2022-07-22)</h2>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.24...traefik-13.0.0\">traefik-13.0.0</a> (2022-07-21)</h2>\n<h3>Feat</h3>\n<ul>\n<li>Adds theme.park middleware and remove Traefik pilot (<a href=\"https://github.com/truecharts/apps/issues/3245\">#3245</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.23...traefik-12.0.24\">traefik-12.0.24</a> (2022-07-19)</h2>\n<h3>Chore</h3>\n<ul>\n<li>Update Readme and Description on SCALE</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.22...traefik-12.0.23\">traefik-12.0.23</a> (2022-07-18)</h2>\n<h3>Fix</h3>\n<ul>\n<li>don't set xrobots header on default middleware (<a href=\"https://github.com/truecharts/apps/issues/3211\">#3211</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.20...traefik-12.0.22\">traefik-12.0.22</a> (2022-07-14)</h2>\n<h3>Fix</h3>\n<ul>\n<li>regenerate catalog and update template</li>\n<li>don't set xrobots header by default (<a href=\"https://github.com/truecharts/apps/issues/3183\">#3183</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.18...traefik-12.0.20\">traefik-12.0.20</a> (2022-07-14)</h2>\n<h3>Fix</h3>\n<ul>\n<li>bump to ensure .helmignore is present on all Charts</li>\n<li>disable HTTP probes temporarily (<a href=\"https://github.com/truecharts/apps/issues/3173\">#3173</a>)</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.17...traefik-12.0.18\">traefik-12.0.18</a> (2022-07-13)</h2>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.15...traefik-12.0.17\">traefik-12.0.17</a> (2022-07-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>update icons (<a href=\"https://github.com/truecharts/apps/issues/3156\">#3156</a>)</li>\n<li>bump to cleanup old docs and use correct icon urls</li>\n</ul>\n<h2><a href=\"https://github.com/truecharts/apps/compare/traefik-12.0.14...traefik-12.0.15\">traefik-12.0.15</a> (2022-07-12)</h2>\n<h3>Chore</h3>\n<ul>\n<li>bump to regenerate documentation</li>\n</ul>\n<p><a name=\"traccar-7.0.13\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.12...traccar-7.0.13\">traccar-7.0.13</a> (2022-07-12)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3147\">#3147</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.12\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.11...traccar-7.0.12\">traccar-7.0.12</a> (2022-07-11)</h3>\n<h4>Chore</h4>\n<ul>\n<li>move icons into the apps folder (<a href=\"https://github.com/truecharts/apps/issues/3139\">#3139</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.11\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.10...traccar-7.0.11\">traccar-7.0.11</a> (2022-07-11)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/3128\">#3128</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.10\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.9...traccar-7.0.10\">traccar-7.0.10</a> (2022-07-09)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3113\">#3113</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.9\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.8...traccar-7.0.9\">traccar-7.0.9</a> (2022-07-05)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3075\">#3075</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.8\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.7...traccar-7.0.8\">traccar-7.0.8</a> (2022-07-04)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/3066\">#3066</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.7\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.6...traccar-7.0.7\">traccar-7.0.7</a> (2022-06-25)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2977\">#2977</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.6\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.5...traccar-7.0.6\">traccar-7.0.6</a> (2022-06-22)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2948\">#2948</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.5\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.4...traccar-7.0.5\">traccar-7.0.5</a> (2022-06-21)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2943\">#2943</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.4\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.3...traccar-7.0.4\">traccar-7.0.4</a> (2022-06-17)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Sync questions and values env's (<a href=\"https://github.com/truecharts/apps/issues/2916\">#2916</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.3\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.2...traccar-7.0.3\">traccar-7.0.3</a> (2022-06-14)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2887\">#2887</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.2\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.1...traccar-7.0.2\">traccar-7.0.2</a> (2022-06-14)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2886\">#2886</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.1\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-7.0.0...traccar-7.0.1\">traccar-7.0.1</a> (2022-06-11)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2854\">#2854</a>)</li>\n</ul>\n<p><a name=\"traccar-7.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-6.0.1...traccar-7.0.0\">traccar-7.0.0</a> (2022-06-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2804\">#2804</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>hotpatch to disable HPA and networkPolicy in SCALE interface, due to incompatible format.</li>\n</ul>\n<p><a name=\"traccar-6.0.1\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.24...traccar-6.0.1\">traccar-6.0.1</a> (2022-06-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>sync all apps persistence configuration and always default to PVC</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2838\">#2838</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>remove malfunctioning SCALE migration script</li>\n</ul>\n<h4>Refactor</h4>\n<ul>\n<li>BREAKING CHANGE (<a href=\"https://github.com/truecharts/apps/issues/2836\">#2836</a>)</li>\n</ul>\n<p><a name=\"traccar-6.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.24...traccar-6.0.0\">traccar-6.0.0</a> (2022-06-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>sync all apps persistence configuration and always default to PVC</li>\n</ul>\n<h4>Refactor</h4>\n<ul>\n<li>BREAKING CHANGE (<a href=\"https://github.com/truecharts/apps/issues/2836\">#2836</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.24\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.23...traccar-5.0.24\">traccar-5.0.24</a> (2022-05-31)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2803\">#2803</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.23\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.22...traccar-5.0.23\">traccar-5.0.23</a> (2022-05-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2759\">#2759</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.23\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.22...traccar-5.0.23\">traccar-5.0.23</a> (2022-05-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2759\">#2759</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.22\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.21...traccar-5.0.22\">traccar-5.0.22</a> (2022-05-25)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update container image tccr.io/truecharts/traccar to v5.0 (<a href=\"https://github.com/truecharts/apps/issues/2749\">#2749</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.21\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.20...traccar-5.0.21\">traccar-5.0.21</a> (2022-05-24)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases</li>\n</ul>\n<p><a name=\"traccar-5.0.20\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.19...traccar-5.0.20\">traccar-5.0.20</a> (2022-05-17)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Auto-update chart README [skip ci]</li>\n<li>update helm general non-major helm releases</li>\n</ul>\n<p><a name=\"traccar-5.0.20\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.19...traccar-5.0.20\">traccar-5.0.20</a> (2022-05-17)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases</li>\n</ul>\n<p><a name=\"traccar-5.0.19\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.18...traccar-5.0.19\">traccar-5.0.19</a> (2022-05-17)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases</li>\n</ul>\n<p><a name=\"traccar-5.0.18\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.17...traccar-5.0.18\">traccar-5.0.18</a> (2022-05-10)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2649\">#2649</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.17\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.16...traccar-5.0.17\">traccar-5.0.17</a> (2022-05-05)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2612\">#2612</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.16\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.15...traccar-5.0.16\">traccar-5.0.16</a> (2022-05-04)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2605\">#2605</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.15\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.14...traccar-5.0.15\">traccar-5.0.15</a> (2022-04-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2573\">#2573</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.14\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.13...traccar-5.0.14\">traccar-5.0.14</a> (2022-04-20)</h3>\n<h4>Chore</h4>\n<ul>\n<li>add missing quote on description (<a href=\"https://github.com/truecharts/apps/issues/2515\">#2515</a>)</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2524\">#2524</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.13\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.12...traccar-5.0.13\">traccar-5.0.13</a> (2022-04-12)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2480\">#2480</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.12\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.11...traccar-5.0.12\">traccar-5.0.12</a> (2022-04-03)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2410\">#2410</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.11\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.10...traccar-5.0.11\">traccar-5.0.11</a> (2022-03-31)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2362\">#2362</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.10\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.9...traccar-5.0.10\">traccar-5.0.10</a> (2022-03-31)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2361\">#2361</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.9\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.8...traccar-5.0.9\">traccar-5.0.9</a> (2022-03-30)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Use new repo (<a href=\"https://github.com/truecharts/apps/issues/2337\">#2337</a>)</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2354\">#2354</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.8\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.7...traccar-5.0.8\">traccar-5.0.8</a> (2022-03-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2290\">#2290</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.7\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.6...traccar-5.0.7\">traccar-5.0.7</a> (2022-03-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>bump all apps to trigger ci</li>\n</ul>\n<p><a name=\"traccar-5.0.2\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.1...traccar-5.0.2\">traccar-5.0.2</a> (2022-03-08)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2116\">#2116</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.1\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-5.0.0...traccar-5.0.1\">traccar-5.0.1</a> (2022-03-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2111\">#2111</a>)</li>\n<li>Remove <code>-icon</code> string from icon png's (<a href=\"https://github.com/truecharts/apps/issues/2040\">#2040</a>)</li>\n</ul>\n<p><a name=\"traccar-5.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.35...traccar-5.0.0\">traccar-5.0.0</a> (2022-03-03)</h3>\n<h4>Chore</h4>\n<ul>\n<li>remove fixed env from questions.yaml</li>\n<li>update helm general major helm releases (<a href=\"https://github.com/truecharts/apps/issues/2021\">#2021</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>BREAKING CHANGE Move some env-vars outside of env section (<a href=\"https://github.com/truecharts/apps/issues/2010\">#2010</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.35\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.34...traccar-4.0.35\">traccar-4.0.35</a> (2022-03-02)</h3>\n<h4>Chore</h4>\n<ul>\n<li>rename <code>web_portal</code> to <code>open</code> (<a href=\"https://github.com/truecharts/apps/issues/1957\">#1957</a>)</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1999\">#1999</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.34\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.33...traccar-4.0.34\">traccar-4.0.34</a> (2022-02-21)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1927\">#1927</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.33\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.32...traccar-4.0.33\">traccar-4.0.33</a> (2022-02-15)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1901\">#1901</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.32\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.31...traccar-4.0.32\">traccar-4.0.32</a> (2022-02-08)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1871\">#1871</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.31\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.30...traccar-4.0.31\">traccar-4.0.31</a> (2022-02-06)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart common to v8.15.0 (<a href=\"https://github.com/truecharts/apps/issues/1859\">#1859</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.30\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.29...traccar-4.0.30\">traccar-4.0.30</a> (2022-02-05)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1852\">#1852</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.29\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.28...traccar-4.0.29\">traccar-4.0.29</a> (2022-02-03)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update docker general non-major (<a href=\"https://github.com/truecharts/apps/issues/1836\">#1836</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.28\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.27...traccar-4.0.28\">traccar-4.0.28</a> (2022-02-02)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1828\">#1828</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.27\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.26...traccar-4.0.27\">traccar-4.0.27</a> (2022-01-25)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1791\">#1791</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.26\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.25...traccar-4.0.26\">traccar-4.0.26</a> (2022-01-22)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1766\">#1766</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.25\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.24...traccar-4.0.25\">traccar-4.0.25</a> (2022-01-22)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1763\">#1763</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.24\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.23...traccar-4.0.24\">traccar-4.0.24</a> (2022-01-21)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1759\">#1759</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>set additional_attrs: true on all dicts (<a href=\"https://github.com/truecharts/apps/issues/1750\">#1750</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.23\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.22...traccar-4.0.23\">traccar-4.0.23</a> (2022-01-18)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1732\">#1732</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.22\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.21...traccar-4.0.22\">traccar-4.0.22</a> (2022-01-13)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1712\">#1712</a>)</li>\n</ul>\n<h4>Feat</h4>\n<ul>\n<li>expose capabilities in GUI (<a href=\"https://github.com/truecharts/apps/issues/1709\">#1709</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.21\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.20...traccar-4.0.21\">traccar-4.0.21</a> (2022-01-12)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1704\">#1704</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.20\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.19...traccar-4.0.20\">traccar-4.0.20</a> (2022-01-11)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1693\">#1693</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.19\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.18...traccar-4.0.19\">traccar-4.0.19</a> (2022-01-04)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases</li>\n</ul>\n<p><a name=\"traccar-4.0.18\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.17...traccar-4.0.18\">traccar-4.0.18</a> (2021-12-28)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1623\">#1623</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.17\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.16...traccar-4.0.17\">traccar-4.0.17</a> (2021-12-21)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1596\">#1596</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.16\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.15...traccar-4.0.16\">traccar-4.0.16</a> (2021-12-19)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Last patch bump before RC2 branch-off</li>\n<li>move <code>envTpl</code> to <code>env</code> (<a href=\"https://github.com/truecharts/apps/issues/1578\">#1578</a>)</li>\n<li>remove <code>editable: true</code> as this is the default (<a href=\"https://github.com/truecharts/apps/issues/1576\">#1576</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.15\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.14...traccar-4.0.15\">traccar-4.0.15</a> (2021-12-19)</h3>\n<h4>Chore</h4>\n<ul>\n<li>completely remove mountPath reference from GUI (<a href=\"https://github.com/truecharts/apps/issues/1572\">#1572</a>)</li>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1571\">#1571</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.14\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.13...traccar-4.0.14\">traccar-4.0.14</a> (2021-12-18)</h3>\n<h4>Chore</h4>\n<ul>\n<li>cleanup questions by removing hidden dicts (<a href=\"https://github.com/truecharts/apps/issues/1558\">#1558</a>)</li>\n<li>App-Icon Organization (<a href=\"https://github.com/truecharts/apps/issues/1539\">#1539</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.13\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.12...traccar-4.0.13\">traccar-4.0.13</a> (2021-12-14)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm general non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1535\">#1535</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.12\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.11...traccar-4.0.12\">traccar-4.0.12</a> (2021-12-13)</h3>\n<h4>Chore</h4>\n<ul>\n<li>move incubator apps to stable and bump everything</li>\n</ul>\n<p><a name=\"traccar-4.0.11\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.10...traccar-4.0.11\">traccar-4.0.11</a> (2021-12-11)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update general helm non-major helm releases (<a href=\"https://github.com/truecharts/apps/issues/1509\">#1509</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.10\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.9...traccar-4.0.10\">traccar-4.0.10</a> (2021-12-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1481\">#1481</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.9\"></a></p>\n<h3>traccar-4.0.9 (2021-12-05)</h3>\n<h4>Chore</h4>\n<ul>\n<li>bump apps to generate security page</li>\n<li>move all container references to TCCR (<a href=\"https://github.com/truecharts/apps/issues/1448\">#1448</a>)</li>\n<li>ensure container references are prefixed with v</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1468\">#1468</a>)</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1453\">#1453</a>)</li>\n<li>update non-major (<a href=\"https://github.com/truecharts/apps/issues/1449\">#1449</a>)</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1471\">#1471</a>)</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1432\">#1432</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>fix typo in theme selection (<a href=\"https://github.com/truecharts/apps/issues/1428\">#1428</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.8\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.7...traccar-4.0.8\">traccar-4.0.8</a> (2021-12-05)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1468\">#1468</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.7\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.6...traccar-4.0.7\">traccar-4.0.7</a> (2021-12-04)</h3>\n<h4>Chore</h4>\n<ul>\n<li>bump apps to generate security page</li>\n</ul>\n<p><a name=\"traccar-4.0.6\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.5...traccar-4.0.6\">traccar-4.0.6</a> (2021-12-04)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1453\">#1453</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.5\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.4...traccar-4.0.5\">traccar-4.0.5</a> (2021-12-03)</h3>\n<h4>Chore</h4>\n<ul>\n<li>ensure container references are prefixed with v</li>\n<li>move all container references to TCCR (<a href=\"https://github.com/truecharts/apps/issues/1448\">#1448</a>)</li>\n<li>update non-major (<a href=\"https://github.com/truecharts/apps/issues/1449\">#1449</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.4\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.3...traccar-4.0.4\">traccar-4.0.4</a> (2021-11-30)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1432\">#1432</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.3\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.2...traccar-4.0.3\">traccar-4.0.3</a> (2021-11-23)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1386\">#1386</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.2\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.1...traccar-4.0.2\">traccar-4.0.2</a> (2021-11-22)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1383\">#1383</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>Default enable all services (<a href=\"https://github.com/truecharts/apps/issues/1361\">#1361</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.1\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-4.0.0...traccar-4.0.1\">traccar-4.0.1</a> (2021-11-16)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1345\">#1345</a>)</li>\n</ul>\n<p><a name=\"traccar-4.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.10...traccar-4.0.0\">traccar-4.0.0</a> (2021-11-16)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart postgresql to v6 (<a href=\"https://github.com/truecharts/apps/issues/1343\">#1343</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.10\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.9...traccar-3.0.10\">traccar-3.0.10</a> (2021-11-15)</h3>\n<h4>Chore</h4>\n<ul>\n<li>persistence cleanup and small bugfixes (<a href=\"https://github.com/truecharts/apps/issues/1329\">#1329</a>)</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1338\">#1338</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.9\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.8...traccar-3.0.9\">traccar-3.0.9</a> (2021-11-14)</h3>\n<h4>Chore</h4>\n<ul>\n<li>fixes around the GUI refactor (<a href=\"https://github.com/truecharts/apps/issues/1316\">#1316</a>)</li>\n<li>move port above advanced in GUI (<a href=\"https://github.com/truecharts/apps/issues/1326\">#1326</a>)</li>\n<li>clean up Chart.yaml (<a href=\"https://github.com/truecharts/apps/issues/1322\">#1322</a>)</li>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1328\">#1328</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>split udp and tcp ports (<a href=\"https://github.com/truecharts/apps/issues/1321\">#1321</a>)</li>\n<li>sync securityContext from values to questions (<a href=\"https://github.com/truecharts/apps/issues/1323\">#1323</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.8\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.7...traccar-3.0.8\">traccar-3.0.8</a> (2021-11-09)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1297\">#1297</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.7\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.6...traccar-3.0.7\">traccar-3.0.7</a> (2021-11-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1295\">#1295</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.6\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.5...traccar-3.0.6\">traccar-3.0.6</a> (2021-11-07)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1291\">#1291</a>)</li>\n</ul>\n<h4>Chore</h4>\n<ul>\n<li>Simplify GUI for deployment, persistence and securityContext (<a href=\"https://github.com/truecharts/apps/issues/1289\">#1289</a>)</li>\n</ul>\n<h4>Feat</h4>\n<ul>\n<li>Simplify the Services GUI (<a href=\"https://github.com/truecharts/apps/issues/1290\">#1290</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.5\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.4...traccar-3.0.5\">traccar-3.0.5</a> (2021-11-02)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1267\">#1267</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.4\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.3...traccar-3.0.4\">traccar-3.0.4</a> (2021-11-01)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1264\">#1264</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.3\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.2...traccar-3.0.3\">traccar-3.0.3</a> (2021-10-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart postgresql to v5.1.4 (<a href=\"https://github.com/truecharts/apps/issues/1249\">#1249</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.2\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.1...traccar-3.0.2\">traccar-3.0.2</a> (2021-10-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update non-major deps helm releases (<a href=\"https://github.com/truecharts/apps/issues/1245\">#1245</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.1\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-3.0.0...traccar-3.0.1\">traccar-3.0.1</a> (2021-10-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart common to v8.3.15 (<a href=\"https://github.com/truecharts/apps/issues/1240\">#1240</a>)</li>\n</ul>\n<p><a name=\"traccar-3.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-2.0.0...traccar-3.0.0\">traccar-3.0.0</a> (2021-10-26)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart postgresql to v5 (<a href=\"https://github.com/truecharts/apps/issues/1234\">#1234</a>)</li>\n<li>update helm chart postgresql to v4.1.0 (<a href=\"https://github.com/truecharts/apps/issues/1237\">#1237</a>)</li>\n</ul>\n<p><a name=\"traccar-2.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-1.0.3...traccar-2.0.0\">traccar-2.0.0</a> (2021-10-25)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Adapt for TrueNAS SCALE RC1</li>\n</ul>\n<p><a name=\"traccar-1.0.3\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-1.0.0...traccar-1.0.3\">traccar-1.0.3</a> (2021-10-20)</h3>\n<h4>Chore</h4>\n<ul>\n<li>bump apps, remove duplicates and move incubator to stable for RC1</li>\n</ul>\n<p><a name=\"traccar-1.0.0\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-0.0.4...traccar-1.0.0\">traccar-1.0.0</a> (2021-10-20)</h3>\n<h4>Chore</h4>\n<ul>\n<li>update helm chart postgresql to v4 (<a href=\"https://github.com/truecharts/apps/issues/1214\">#1214</a>)</li>\n</ul>\n<h4>Fix</h4>\n<ul>\n<li>use correct PVC storageClass when using postgresql as a dependency on SCALE (<a href=\"https://github.com/truecharts/apps/issues/1212\">#1212</a>)</li>\n</ul>\n<p><a name=\"traccar-0.0.4\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-0.0.3...traccar-0.0.4\">traccar-0.0.4</a> (2021-10-20)</h3>\n<h4>Chore</h4>\n<ul>\n<li>bump versions to rerelease and fix icons</li>\n</ul>\n<p><a name=\"traccar-0.0.3\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-0.0.2...traccar-0.0.3\">traccar-0.0.3</a> (2021-10-19)</h3>\n<h4>Change</h4>\n<ul>\n<li>Project-Eclipse 3, Automatically generate item.yaml (<a href=\"https://github.com/truecharts/apps/issues/1178\">#1178</a>)</li>\n</ul>\n<h4>Chore</h4>\n<ul>\n<li>Project-Eclipse 5, move app-readme to automatic generation script (<a href=\"https://github.com/truecharts/apps/issues/1181\">#1181</a>)</li>\n<li>update helm chart common to v8.3.13 (<a href=\"https://github.com/truecharts/apps/issues/1184\">#1184</a>)</li>\n</ul>\n<h4>Feat</h4>\n<ul>\n<li>Project-Eclipse 4, Add App grading annotations to Chart.yaml (<a href=\"https://github.com/truecharts/apps/issues/1180\">#1180</a>)</li>\n</ul>\n<h4>Refactor</h4>\n<ul>\n<li>Project Eclipse Part 6, move questions.yaml to root App folder (<a href=\"https://github.com/truecharts/apps/issues/1182\">#1182</a>)</li>\n</ul>\n<p><a name=\"traccar-0.0.2\"></a></p>\n<h3><a href=\"https://github.com/truecharts/apps/compare/traccar-0.0.1...traccar-0.0.2\">traccar-0.0.2</a> (2021-10-19)</h3>\n<h4>Chore</h4>\n<ul>\n<li>Project-Eclipse part 2, adapting and cleaning changelog (<a href=\"https://github.com/truecharts/apps/issues/1173\">#1173</a>)</li>\n<li>update helm chart postgresql to v3.0.20 (<a href=\"https://github.com/truecharts/apps/issues/1177\">#1177</a>)</li>\n</ul>\n<p><a name=\"traccar-0.0.1\"></a></p>\n<h3>traccar-0.0.1 (2021-10-19)</h3>\n<h4>Feat</h4>\n<ul>\n<li>Add more Apps using postgresql (<a href=\"https://github.com/truecharts/apps/issues/1136\">#1136</a>)</li>\n</ul>\n<p><a name=\"traccar-0.0.1\"></a></p>\n<h3>traccar-0.0.1 (2021-10-16)</h3>\n<h4>Feat</h4>\n<ul>\n<li>Add more Apps using postgresql</li>\n</ul>"
}
}