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:"Nameservers"
schema:
default:[]
type:list
items:
- variable:nameserver
label:"Nameserver"
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"
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: "ipBlock"
# 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: "namespaceSelector"
# schema:
# additional_attrs: true
# type: dict
# attrs:
# - variable: matchExpressions
# label: "matchExpressions"
# 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: "matchExpressions"
# 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: "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: "ipBlock"
# 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: "namespaceSelector"
# schema:
# additional_attrs: true
# type: dict
# attrs:
# - variable: matchExpressions
# label: "matchExpressions"
# 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: "matchExpressions"
# 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: "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"
- variable:openvpn
label:"OpenVPN Settings"
schema:
type:dict
show_if:[["type","=","openvpn"]]
attrs:
- variable:username
label:"authentication username"
description:"authentication username, optional"
schema:
type:string
default:""
- variable:password
label:"authentication password"
description:"authentication credentials"
schema:
type:string
default:""
required:true
- 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 ipv4 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:""
required:true
- 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:"deployKey"
schema:
type:string
- variable:deployKeyBase64
description:"Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence"
label:"deployKeyBase64"
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"