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: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: BASEROW_PUBLIC_URL
label: "BASEROW_PUBLIC_URL"
description: "The public URL or IP that will be used to access baserow. Always should start with http:// https:// even if accessing via an IP address."
schema:
type: string
required: true
default: ""
- variable: enable_mail_settings
label: "Enable Mail Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: FROM_EMAIL
label: "FROM_EMAIL"
description: "The public URL or IP that will be used to access baserow. Always should start with http:// https:// even if accessing via an IP address."
schema:
type: string
default: ""
- variable: EMAIL_SMTP
label: "EMAIL_SMTP"
description: "If set to any non empty value then Baserow will start sending emails using the configuration options below. If not set then Baserow will not send emails and just log them to the Celery worker logs instead."
schema:
type: string
default: ""
enum:
- value: ""
description: "Disabled"
- value: "true"
description: "Enabled"
- variable: EMAIL_SMTP_USE_TLS
label: "EMAIL_SMTP_USE_TLS"
description: "If set to any non empty value then Baserow will attempt to send emails using TLS."
schema:
type: string
default: ""
enum:
- value: ""
description: "Disabled"
- value: "true"
description: "Enabled"
- variable: EMAIL_SMTP_HOST
label: "EMAIL_SMTP_HOST"
description: "The host of the external SMTP server that Baserow should use to send emails."
schema:
type: string
default: ""
- variable: EMAIL_SMTP_PORT
label: "EMAIL_SMTP_PORT"
description: "The port used to connect to $EMAIL_SMTP_HOST on."
schema:
type: int
default: 587
- variable: EMAIL_SMTP_USER
label: "EMAIL_SMTP_USER"
description: "The username to authenticate with $EMAIL_SMTP_HOST when sending emails."
schema:
type: string
default: ""
- variable: EMAIL_SMTP_PASSWORD
label: "EMAIL_SMTP_PASSWORD"
description: "The password to authenticate with $EMAIL_SMTP_HOST when sending emails."
schema:
type: string
private: true
default: ""
- 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: 10228
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: 10228
- 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: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
- 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: 0
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 0
- 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