groups: - name: Container Image description: Image to be used for container - name: Controller description: Configure Workload Deployment - name: Container Configuration description: Additional Container Configuration - name: App Configuration description: App Specific Config Options - name: Networking and Services description: Configure Network and Services for Container - name: Storage and Persistence description: Persist and Share Data that is Separate from the Container - name: Ingress description: Ingress Configuration - name: Security and Permissions description: Configure Security Context and Permissions - name: Resources and Devices description: "Specify Resources/Devices to be Allocated to Workload" - name: Middlewares description: Traefik Middlewares - name: Metrics description: Metrics - name: Addons description: Addon Configuration - name: Advanced description: Advanced Configuration - name: Documentation description: Documentation portals: open: protocols: - "http" host: - "$kubernetes-resource_configmap_portal_host" ports: - "$kubernetes-resource_configmap_portal_port" path: "/dashboard/" questions: - variable: global label: Global Settings group: Controller schema: type: dict hidden: true attrs: - variable: isSCALE label: Flag this is SCALE schema: type: boolean default: true hidden: true - variable: controller group: Controller label: "" schema: additional_attrs: true type: dict attrs: - variable: advanced label: Show Advanced Controller Settings schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: type description: Please specify type of workload to deploy label: (Advanced) Controller Type schema: type: string required: true enum: - value: deployment description: Deployment - value: statefulset description: Statefulset - value: daemonset description: Daemonset default: deployment - variable: replicas description: Number of desired pod replicas label: Desired Replicas schema: type: int required: true default: 1 - variable: strategy description: Please specify type of workload to deploy label: (Advanced) Update Strategy schema: type: string required: true enum: - value: Recreate description: "Recreate: Kill existing pods before creating new ones" - value: RollingUpdate description: "RollingUpdate: Create new pods and then kill old ones" - value: OnDelete description: "(Legacy) OnDelete: ignore .spec.template changes" default: Recreate - variable: expert label: Show Expert Configuration Options schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: labelsList label: Controller Labels schema: type: list default: [] items: - variable: labelItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: annotationsList label: Controller Annotations schema: type: list default: [] items: - variable: annotationItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: customextraargs group: Controller label: "Extra Args" description: "Do not click this unless you know what you are doing" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: extraArgs label: Extra Args schema: type: list default: [] items: - variable: arg label: Arg schema: type: string - variable: TZ label: Timezone group: Container Configuration schema: type: string default: "Etc/UTC" $ref: - "definitions/timezone" - 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..." group: Container Configuration 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: expertpodconf group: Container Configuration label: Show Expert Configuration schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: tty label: Enable TTY description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. group: Workload Details schema: type: boolean default: false - variable: stdin label: Enable STDIN description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. group: Workload Details schema: type: boolean default: false - variable: termination group: Container Configuration label: Termination settings schema: additional_attrs: true type: dict attrs: - variable: gracePeriodSeconds label: Grace Period Seconds schema: type: int default: 10 - variable: podLabelsList group: Container Configuration label: Pod Labels schema: type: list default: [] items: - variable: podLabelItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: podAnnotationsList group: Container Configuration label: Pod Annotations schema: type: list default: [] items: - variable: podAnnotationItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: ingressClass label: "ingressClass" group: "App Configuration" 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 show_subquestions_if: true subquestions: - variable: isDefaultClass label: "isDefaultClass" schema: type: boolean 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: 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: 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 traefik-themepark schema: type: string required: true - variable: appName label: App Name description: Lower case, name of the app to be themed.
Go to https://docs.theme-park.dev/themes/ to see supported apps. schema: type: string required: true - variable: themeName label: Theme Name description: Lower case, name of the theme to be applied.
Go to https://docs.theme-park.dev/theme-options/ to see supported themes. schema: type: string required: true - 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.
Go to https://docs.theme-park.dev/themes/addons/ for Addon information.
Go to https://github.com/packruler/traefik-themepark for more context on plugin schema: type: string required: true default: "" - 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: Simple enum: - value: Simple description: Simple - value: ClusterIP description: ClusterIP - value: NodePort description: NodePort (Advanced) - value: LoadBalancer description: LoadBalancer (Advanced) - variable: loadBalancerIP label: LoadBalancer IP description: LoadBalancerIP schema: show_if: [["type", "=", "LoadBalancer"]] type: string default: "" - variable: externalIPs label: "External IP's" description: "External IP's" schema: show_if: [["type", "=", "LoadBalancer"]] type: list default: [] items: - variable: externalIP label: External IP schema: type: string - variable: ipFamilyPolicy label: IP Family Policy description: (Advanced) Specify the IP Policy schema: show_if: [["type", "!=", "Simple"]] type: string default: SingleStack enum: - value: SingleStack description: SingleStack - value: PreferDualStack description: PreferDualStack - value: RequireDualStack description: RequireDualStack - variable: ipFamilies label: (Advanced) IP Families description: (Advanced) The IP Families that should be used schema: show_if: [["type", "!=", "Simple"]] type: list default: [] items: - variable: ipFamily label: IP Family schema: type: string - 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: advanced label: Show Advanced Settings schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: enabled label: Enable the Port schema: type: boolean hidden: true default: true - variable: protocol label: Port Type schema: type: string default: HTTP enum: - value: HTTP description: HTTP - value: HTTPS description: HTTPS - value: TCP description: TCP - value: UDP description: UDP - variable: nodePort label: Node Port (Optional) description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer schema: type: int min: 9000 max: 65535 - variable: targetPort label: "Target Port" description: "The internal(!) port on the container the Application runs on" schema: type: int default: 9000 - 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, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: Simple enum: - value: Simple description: Simple - value: ClusterIP description: ClusterIP - value: NodePort description: NodePort (Advanced) - value: LoadBalancer description: LoadBalancer (Advanced) - variable: loadBalancerIP label: LoadBalancer IP description: LoadBalancerIP schema: show_if: [["type", "=", "LoadBalancer"]] type: string default: "" - variable: externalIPs label: "External IP's" description: "External IP's" schema: show_if: [["type", "=", "LoadBalancer"]] type: list default: [] items: - variable: externalIP label: External IP schema: type: string - variable: ipFamilyPolicy label: IP Family Policy description: (Advanced) Specify the IP Policy schema: show_if: [["type", "!=", "Simple"]] type: string default: SingleStack enum: - value: SingleStack description: SingleStack - value: PreferDualStack description: PreferDualStack - value: RequireDualStack description: RequireDualStack - variable: ipFamilies label: (Advanced) IP Families description: (Advanced) The IP Families that should be used schema: show_if: [["type", "!=", "Simple"]] type: list default: [] items: - variable: ipFamily label: IP Family schema: type: string - 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: 9080 required: true - variable: advanced label: Show Advanced Settings schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: enabled label: Enable the Port schema: type: boolean hidden: true default: true - variable: protocol label: Port Type schema: type: string default: HTTP enum: - value: HTTP description: HTTP - value: HTTPS description: HTTPS - value: TCP description: TCP - value: UDP description: UDP - variable: nodePort label: Node Port (Optional) description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer schema: type: int min: 9000 max: 65535 - variable: targetPort label: "Target Port" description: "The internal(!) port on the container the Application runs on" schema: type: int - 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: 9443 required: true - variable: advanced label: Show Advanced Settings schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: enabled label: Enable the Port schema: type: boolean hidden: true default: true - variable: protocol label: Port Type schema: type: string default: HTTPS enum: - value: HTTP description: HTTP - value: HTTPS description: HTTPS - value: TCP description: TCP - value: UDP description: UDP - variable: nodePort label: Node Port (Optional) description: This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer schema: type: int min: 9000 max: 65535 - variable: targetPort label: "Target Port" description: "The internal(!) port on the container the Application runs on" schema: type: int - 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: 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: [] 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: tls label: TLS-Settings schema: type: list 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: scaleCert label: Select TrueNAS SCALE Certificate schema: type: int $ref: - "definitions/certificate" - variable: entrypoint label: (Advanced) Traefik Entrypoint description: Entrypoint used by Traefik when using Traefik as Ingress Provider schema: type: string default: websecure required: true - variable: middlewares label: Traefik Middlewares description: Add previously created Traefik Middlewares to this Ingress schema: type: list default: [] items: - variable: name label: Name schema: type: string default: "" required: true - variable: expert label: Show Expert Configuration Options schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: enableFixedMiddlewares description: These middlewares enforce a number of best practices. label: Enable Default Middlewares schema: type: boolean default: true - variable: ingressClassName label: IngressClass Name schema: type: string default: "" - variable: labelsList label: Labels schema: type: list default: [] items: - variable: labelItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: annotationsList label: Annotations schema: type: list default: [] items: - variable: annotationItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - 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: labelsList label: Labels schema: type: list default: [] items: - variable: labelItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: annotationsList label: Annotations schema: type: list default: [] items: - variable: annotationItem label: Label schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: hosts label: Hosts schema: type: list default: [] items: - variable: hostEntry label: Host schema: additional_attrs: true type: dict attrs: - variable: host label: HostName schema: type: string default: "" required: true - variable: paths label: Paths schema: type: list default: [] items: - variable: pathEntry label: Host schema: additional_attrs: true type: dict attrs: - variable: path label: Path schema: type: string required: true default: "/" - variable: pathType label: Path Type schema: type: string required: true default: Prefix - variable: service label: Linked Service schema: additional_attrs: true type: dict attrs: - variable: name label: Service Name schema: type: string default: "" - variable: port label: Service Port schema: type: int - variable: tls label: TLS-Settings schema: type: list default: [] 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: scaleCert label: Select TrueNAS SCALE Certificate schema: type: int $ref: - "definitions/certificate" - variable: entrypoint label: Traefik Entrypoint description: Entrypoint used by Traefik when using Traefik as Ingress Provider schema: type: string default: websecure required: true - variable: middlewares label: Traefik Middlewares description: Add previously created Traefik Middlewares to this Ingress schema: type: list default: [] items: - variable: name label: Name schema: type: string default: "" required: true - variable: security label: Container Security Settings group: Security and Permissions schema: type: dict additional_attrs: true attrs: - variable: editsecurity label: Change PUID / UMASK values description: By enabling this you override default set values. schema: type: boolean default: false show_subquestions_if: true subquestions: - 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 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: "002" - variable: advancedSecurity label: Show Advanced Security Settings group: Security and Permissions schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: securityContext label: Security Context schema: additional_attrs: true type: dict attrs: - variable: privileged label: "Privileged mode" schema: type: boolean default: false - variable: readOnlyRootFilesystem label: "ReadOnly Root Filesystem" schema: type: boolean default: true - variable: allowPrivilegeEscalation label: "Allow Privilege Escalation" schema: type: boolean default: false - variable: runAsNonRoot label: "runAsNonRoot" schema: type: boolean default: true - variable: capabilities label: Capabilities schema: additional_attrs: true type: dict attrs: - variable: drop label: Drop Capability schema: type: list default: [] items: - variable: dropEntry label: "" schema: type: string - variable: add label: Add Capability schema: type: list default: [] items: - variable: addEntry label: "" schema: type: string - variable: podSecurityContext group: Security and Permissions label: Pod Security Context 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 this App of the user running the application" schema: type: int default: 568 - variable: fsGroup label: "fsGroup" description: "The group that should own ALL storage." schema: type: int default: 568 - 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: advancedresources label: Set Custom Resource Limits/Requests (Advanced) group: Resources and Devices schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: resources label: "" 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/docs/manual/SCALE%20Apps/indepth/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/docs/manual/SCALE%20Apps/indepth/validation" schema: type: string default: 8Gi valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - variable: requests label: "Minimum Resources Required (request)" schema: additional_attrs: true type: dict attrs: - variable: cpu label: CPU description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" schema: type: string default: 10m 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/docs/manual/SCALE%20Apps/indepth/validation" schema: type: string default: 50Mi 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: hostPath 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" # Specify GPU configuration - variable: scaleGPU label: GPU Configuration group: Resources and Devices schema: type: dict $ref: - "definitions/gpuConfiguration" attrs: [] # - variable: autoscaling # group: Advanced # label: (Advanced) Horizontal Pod Autoscaler # schema: # additional_attrs: true # type: dict # attrs: # - variable: enabled # label: Enabled # schema: # type: boolean # default: false # show_subquestions_if: true # subquestions: # - variable: target # label: Target # description: Deployment name, Defaults to Main Deployment # schema: # type: string # default: "" # - variable: minReplicas # label: Minimum Replicas # schema: # type: int # default: 1 # - variable: maxReplicas # label: Maximum Replicas # schema: # type: int # default: 5 # - variable: targetCPUUtilizationPercentage # label: Target CPU Utilization Percentage # schema: # type: int # default: 80 # - variable: targetMemoryUtilizationPercentage # label: Target Memory Utilization Percentage # schema: # type: int # default: 80 # - variable: networkPolicy # group: Advanced # label: (Advanced) Network Policy # schema: # additional_attrs: true # type: dict # attrs: # - 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: 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: openvpn description: OpenVPN - value: wireguard description: Wireguard - value: tailscale description: Tailscale - variable: openvpn label: OpenVPN Settings schema: 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 default: "" required: true - variable: tailscale label: Tailscale Settings schema: 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: 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: Sock5 Server 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: dict show_if: [["type", "!=", "disabled"]] attrs: - variable: enabled label: Enabled schema: type: boolean default: true hidden: true - variable: type label: Type schema: type: string default: hostPath hidden: true - variable: hostPathType label: hostPathType schema: type: string default: File hidden: true - variable: noMount label: noMount schema: type: boolean default: true hidden: true - variable: hostPath label: Full Path to File description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" schema: type: string 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 - 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: git label: Git Settings schema: additional_attrs: true type: dict attrs: - variable: deployKey description: Raw SSH Private Key label: Deploy Key schema: type: string - variable: deployKeyBase64 description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence label: Deploy Key Base64 schema: type: string - variable: service label: "" schema: additional_attrs: true type: dict attrs: - variable: type label: Service Type description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: NodePort enum: - value: NodePort description: NodePort - value: ClusterIP description: ClusterIP - value: LoadBalancer description: LoadBalancer - variable: loadBalancerIP label: LoadBalancer IP description: LoadBalancerIP schema: show_if: [["type", "=", "LoadBalancer"]] type: string default: "" - variable: externalIPs label: "External IP's" description: "External IP's" schema: show_if: [["type", "=", "LoadBalancer"]] type: list default: [] items: - variable: externalIP label: External IP schema: type: string - variable: ports label: "" schema: additional_attrs: true type: dict attrs: - variable: codeserver label: "" schema: additional_attrs: true type: dict attrs: - variable: nodePort description: Leave Empty to Disable label: "nodePort" schema: type: int default: 36107 - variable: envList label: Codeserver Environment Variables schema: type: list show_if: [["type", "!=", "disabled"]] default: [] items: - variable: envItem label: Environment Variable schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string required: true - variable: value label: Value schema: type: string required: true - variable: promtail label: Promtail schema: additional_attrs: true type: dict attrs: - variable: enabled label: Enabled schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: loki label: Loki URL schema: type: string required: true - variable: logs label: Log Paths schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string required: true - variable: path label: Path schema: type: string required: true - variable: args label: Promtail Command Line Arguments schema: type: list show_if: [["type", "!=", "disabled"]] default: [] items: - variable: arg label: Arg schema: type: string required: true - variable: envList label: Promtail 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: docs group: Documentation label: Please read the documentation at https://truecharts.org description: Please read the documentation at
https://truecharts.org schema: additional_attrs: true type: dict attrs: - variable: confirmDocs label: I have checked the documentation schema: type: boolean default: true - variable: donateNag group: Documentation label: Please consider supporting TrueCharts, see https://truecharts.org/docs/about/sponsor description: Please consider supporting TrueCharts, see
https://truecharts.org/sponsor schema: additional_attrs: true type: dict attrs: - variable: confirmDonate label: I have considered donating schema: type: boolean default: true hidden: true