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: - "$kubernetes-resource_configmap_portal_protocol" host: - "$kubernetes-resource_configmap_portal_host" ports: - "$kubernetes-resource_configmap_portal_port" 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: service group: Networking and Services label: Configure Service(s) schema: additional_attrs: true type: dict attrs: - variable: main label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: additional_attrs: true type: dict attrs: - variable: enabled label: Enable the Service schema: type: boolean default: true hidden: true - variable: type label: Service Type description: "ClusterIP's are only internally available, 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 Service Port Configuration" schema: additional_attrs: true type: dict attrs: - variable: port label: "Port" description: "This port exposes the container port on the service" schema: type: int default: 10167 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 default: 5244 - variable: serviceexpert group: Networking and Services label: Show Expert Config schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostNetwork group: Networking and Services label: Host-Networking (Complicated) schema: type: boolean default: false - variable: externalInterfaces description: Add External Interfaces label: Add external Interfaces group: Networking schema: type: list items: - variable: interfaceConfiguration description: Interface Configuration label: Interface Configuration schema: type: dict $ref: - "normalize/interfaceConfiguration" attrs: - variable: hostInterface description: Please Specify Host Interface label: Host Interface schema: type: string required: true $ref: - "definitions/interface" - variable: ipam description: Define how IP Address will be managed label: IP Address Management schema: type: dict required: true attrs: - variable: type description: Specify type for IPAM label: IPAM Type schema: type: string required: true enum: - value: dhcp description: Use DHCP - value: static description: Use Static IP show_subquestions_if: static subquestions: - variable: staticIPConfigurations label: Static IP Addresses schema: type: list items: - variable: staticIP label: Static IP schema: type: ipaddr cidr: true - variable: staticRoutes label: Static Routes schema: type: list items: - variable: staticRouteConfiguration label: Static Route Configuration schema: additional_attrs: true type: dict attrs: - variable: destination label: Destination schema: type: ipaddr cidr: true required: true - variable: gateway label: Gateway schema: type: ipaddr cidr: false required: true - variable: dnsPolicy group: Networking and Services label: dnsPolicy schema: type: string default: "" enum: - value: "" description: Default - value: ClusterFirst description: ClusterFirst - value: ClusterFirstWithHostNet description: ClusterFirstWithHostNet - value: None description: None - variable: dnsConfig label: DNS Configuration group: Networking and Services description: Specify custom DNS configuration which will be applied to the pod schema: additional_attrs: true type: dict attrs: - variable: nameservers label: Name Servers schema: default: [] type: list items: - variable: nameserver label: Name Server schema: type: string - variable: options label: Options schema: default: [] type: list items: - variable: option label: Option Entry schema: additional_attrs: true type: dict attrs: - variable: name label: Name schema: type: string - variable: value label: Value schema: type: string - variable: searches label: Searches schema: default: [] type: list items: - variable: search label: Search Entry schema: type: string - variable: serviceList label: Add Manual Custom Services group: Networking and Services schema: type: list default: [] items: - variable: serviceListEntry label: Custom Service schema: additional_attrs: true type: dict attrs: - variable: enabled label: Enable the service schema: type: boolean default: true hidden: true - variable: name label: Name schema: type: string default: "" - variable: type label: Service Type description: "ClusterIP's are only internally available, 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: 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: portsList label: Additional Service Ports schema: type: list default: [] items: - variable: portsListEntry label: Custom ports schema: additional_attrs: true type: dict attrs: - variable: enabled label: Enable the Port schema: type: boolean default: true hidden: true - variable: name label: Port Name schema: type: string default: "" - variable: protocol label: Port Type schema: type: string default: TCP enum: - value: HTTP description: HTTP - value: HTTPS description: HTTPS - value: TCP description: TCP - value: UDP description: UDP - variable: targetPort label: Target Port description: This port exposes the container port on the service schema: type: int required: true - variable: port label: Container Port schema: type: int required: true - variable: nodePort label: Node Port (Optional) description: This port gets exposed to the node. Only considered when service type is NodePort schema: type: int min: 9000 max: 65535 - variable: persistence label: Integrated Persistent Storage description: Integrated Persistent Storage group: Storage and Persistence schema: additional_attrs: true type: dict attrs: - variable: data label: "App Data Storage" description: "Stores the Application Data." schema: additional_attrs: true type: dict attrs: - variable: type label: Type of Storage description: Sets the persistence type, Anything other than PVC could break rollback! schema: type: string default: simplePVC enum: - value: simplePVC description: PVC (simple) - value: simpleHP description: Host Path (simple) - value: emptyDir description: emptyDir - value: pvc description: PVC - value: hostPath description: Host Path - value: nfs description: NFS Share - variable: server label: NFS Server schema: show_if: [["type", "=", "nfs"]] type: string default: "" - variable: path label: Path on NFS Server schema: show_if: [["type", "=", "nfs"]] type: string default: "" - variable: setPermissionsSimple label: Automatic Permissions description: Automatically set permissions on install schema: show_if: [["type", "=", "simpleHP"]] type: boolean default: false - variable: setPermissions label: Automatic Permissions description: Automatically set permissions on install schema: show_if: [["type", "=", "hostPath"]] type: boolean default: false - variable: readOnly label: Read Only schema: type: boolean default: false - variable: hostPathSimple label: Host Path description: Path inside the container the storage is mounted schema: show_if: [["type", "=", "simpleHP"]] type: hostpath - variable: hostPath label: Host Path description: Path inside the container the storage is mounted schema: show_if: [["type", "=", "hostPath"]] type: hostpath - variable: medium label: EmptyDir Medium schema: show_if: [["type", "=", "emptyDir"]] type: string default: "" enum: - value: "" description: Default - value: Memory description: Memory - variable: size label: Size quotum of Storage schema: show_if: [["type", "=", "pvc"]] type: string default: 999Gi - variable: hostPathType label: (Advanced) hostPath Type schema: show_if: [["type", "=", "hostPath"]] type: string default: "" enum: - value: "" description: Default - value: DirectoryOrCreate description: DirectoryOrCreate - value: Directory description: Directory - value: FileOrCreate description: FileOrCreate - value: File description: File - value: Socket description: Socket - value: CharDevice description: CharDevice - value: BlockDevice description: BlockDevice - variable: storageClass label: (Advanced) storageClass description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" schema: show_if: [["type", "=", "pvc"]] type: string default: SCALE-ZFS - variable: accessMode label: (Advanced) Access Mode description: Allow or disallow multiple PVC's writhing to the same PV schema: show_if: [["type", "=", "pvc"]] type: string default: ReadWriteOnce enum: - value: ReadWriteOnce description: ReadWriteOnce - value: ReadOnlyMany description: ReadOnlyMany - value: ReadWriteMany description: ReadWriteMany - variable: advanced label: Show Advanced Options schema: type: boolean default: false show_subquestions_if: true subquestions: - 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: persistenceList label: Additional App Storage group: Storage and Persistence schema: type: list default: [] items: - variable: persistenceListEntry label: Custom Storage schema: additional_attrs: true type: dict attrs: - variable: enabled label: Enable the storage schema: type: boolean default: true hidden: true - variable: name label: Name (Optional) description: "Not required, please set to config when mounting /config or temp when mounting /tmp" schema: type: string - variable: type label: Type of Storage description: Sets the persistence type, Anything other than PVC could break rollback! schema: type: string default: simpleHP enum: - value: simplePVC description: PVC (Simple) - value: simpleHP description: Host Path (Simple) - value: emptyDir description: emptyDir - value: pvc description: PVC - value: hostPath description: Host Path - value: nfs description: NFS Share - variable: server label: NFS Server schema: show_if: [["type", "=", "nfs"]] type: string default: "" - variable: path label: Path on NFS Server schema: show_if: [["type", "=", "nfs"]] type: string default: "" - variable: setPermissionsSimple label: Automatic Permissions description: Automatically set permissions on install schema: show_if: [["type", "=", "simpleHP"]] type: boolean default: true - variable: setPermissions label: Automatic Permissions description: Automatically set permissions on install schema: show_if: [["type", "=", "hostPath"]] type: boolean default: true - variable: readOnly label: Read Only schema: type: boolean default: false - variable: hostPathSimple label: Host Path description: Path inside the container the storage is mounted schema: show_if: [["type", "=", "simpleHP"]] type: hostpath - variable: hostPath label: Host Path description: Path inside the container the storage is mounted schema: show_if: [["type", "=", "hostPath"]] type: hostpath - variable: mountPath label: Mount Path description: Path inside the container the storage is mounted schema: type: string default: "" required: true valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' - variable: medium label: EmptyDir Medium schema: show_if: [["type", "=", "emptyDir"]] type: string default: "" enum: - value: "" description: Default - value: Memory description: Memory - variable: size label: Size Quotum of Storage schema: show_if: [["type", "=", "pvc"]] type: string default: 999Gi - variable: hostPathType label: (Advanced) Host Path Type schema: show_if: [["type", "=", "hostPath"]] type: string default: "" enum: - value: "" description: Default - value: DirectoryOrCreate description: DirectoryOrCreate - value: Directory description: Directory - value: FileOrCreate description: FileOrCreate - value: File description: File - value: Socket description: Socket - value: CharDevice description: CharDevice - value: BlockDevice description: BlockDevice - variable: storageClass label: (Advanced) StorageClass description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" schema: show_if: [["type", "=", "pvc"]] type: string default: SCALE-ZFS - variable: accessMode label: (Advanced) Access Mode description: Allow or disallow multiple PVC's writhing to the same PV schema: show_if: [["type", "=", "pvc"]] type: string default: ReadWriteOnce enum: - value: ReadWriteOnce description: ReadWriteOnce - value: ReadOnlyMany description: ReadOnlyMany - value: ReadWriteMany description: ReadWriteMany - variable: advanced label: Show Advanced Options schema: type: boolean default: false show_subquestions_if: true subquestions: - 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: 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" 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" schema: additional_attrs: true type: dict attrs: - variable: confirmDonate label: I have considered donating schema: type: boolean default: true hidden: true