453 lines
16 KiB
YAML
453 lines
16 KiB
YAML
groups:
|
|
- name: "Container Images"
|
|
description: "Image to be used for container"
|
|
- name: "Container Entrypoint"
|
|
description: "Configuration of the executable that will be run when the container is started"
|
|
- name: "Container Environment Variables"
|
|
description: "Set the environment that will be visible to the container"
|
|
- name: "Networking"
|
|
description: "Configure networking for container"
|
|
- name: "Storage"
|
|
description: "Persist and share data that is separate from the lifecycle of the container"
|
|
- name: "traefik Configuration"
|
|
description: "Configure traefik deployment"
|
|
- name: "Workload Details"
|
|
description: "Configure how workload should be deployed"
|
|
- name: "Scaling/Upgrade Policy"
|
|
description: "Configure how pods are replaced when configuration is upgraded"
|
|
- name: "Restart Policy"
|
|
description: "Configure when pod should be restarted in case of failure"
|
|
- name: "Resource Reservation"
|
|
description: "Specify resources to be allocated to workload"
|
|
- name: "Ingress"
|
|
description: "Configure ingress"
|
|
- name: "Certmanager Settings"
|
|
description: "Configure Certmanager"
|
|
- name: "WARNING"
|
|
description: "WARNING"
|
|
|
|
portals:
|
|
web_portal:
|
|
protocols:
|
|
- "https"
|
|
host:
|
|
- "$variable-appIngress.webui.host"
|
|
ports:
|
|
- "443"
|
|
|
|
questions:
|
|
# Image related
|
|
|
|
- variable: image
|
|
description: "Docker Image Details"
|
|
label: "Docker Image"
|
|
group: "Container Images"
|
|
schema:
|
|
type: dict
|
|
required: true
|
|
attrs:
|
|
- variable: repository
|
|
description: "Docker image repository"
|
|
label: "Image repository"
|
|
schema:
|
|
type: string
|
|
required: true
|
|
default: "traefik"
|
|
- variable: tag
|
|
description: "Tag to use for specified image"
|
|
label: "Image Tag"
|
|
schema:
|
|
type: string
|
|
default: "2.4.2"
|
|
- variable: pullPolicy
|
|
description: "Docker Image Pull Policy"
|
|
label: "Image Pull Policy"
|
|
schema:
|
|
type: string
|
|
default: "IfNotPresent"
|
|
enum:
|
|
- value: "IfNotPresent"
|
|
description: "Only pull image if not present on host"
|
|
- value: "Always"
|
|
description: "Always pull image even if present on host"
|
|
- value: "Never"
|
|
description: "Never pull image even if it's not present on host"
|
|
|
|
|
|
|
|
- variable: appVolumeMounts
|
|
label: "app storage"
|
|
group: "Storage"
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
# Config ------------------------
|
|
- variable: data
|
|
label: "Data Dataset"
|
|
schema:
|
|
type: dict
|
|
$ref:
|
|
- "normalize/ixVolume"
|
|
attrs:
|
|
- variable: datasetName
|
|
label: "Dataset Name"
|
|
schema:
|
|
type: string
|
|
default: "data"
|
|
required: true
|
|
editable: false
|
|
- variable: mountPath
|
|
label: "Mount Path"
|
|
description: "Path to mount inside the pod"
|
|
schema:
|
|
type: path
|
|
required: true
|
|
default: "/data"
|
|
editable: false
|
|
- variable: hostPathEnabled
|
|
label: "host Path Enabled"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: hostPath
|
|
label: "Host Path"
|
|
schema:
|
|
type: hostpath
|
|
required: true
|
|
|
|
- variable: appIngress
|
|
label: ""
|
|
group: "Ingress"
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: webui
|
|
label: "Web Ingress Configuration"
|
|
group: "Ingress"
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: enabled
|
|
label: "Enable Web Ingress"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
show_subquestions_if: true
|
|
subquestions:
|
|
- variable: entrypoint
|
|
label: "Select Entrypoint"
|
|
schema:
|
|
type: string
|
|
default: "websecure"
|
|
required: true
|
|
enum:
|
|
- value: "websecure"
|
|
description: "Websecure: HTTPS/TLS port 443"
|
|
- variable: host
|
|
label: "Host"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- variable: certType
|
|
label: "Select Certificate Type"
|
|
schema:
|
|
type: string
|
|
default: "letsencrypt-prod"
|
|
enum:
|
|
- value: ""
|
|
description: "No Encryption/TLS/Certificates"
|
|
- value: "letsencrypt-prod"
|
|
description: "Letsencrypt Production Certificates"
|
|
- value: "letsencrypt-staging"
|
|
description: "Letsencrypt Test Certificates"
|
|
- value: "wildcard"
|
|
description: "Global Wildcard Certificate"
|
|
- value: "selfsigned"
|
|
description: "Self-Signed Certificate"
|
|
- value: "existingcert"
|
|
description: "Existing Certificate"
|
|
|
|
- variable: existingcert
|
|
label: "Existing Certificate Name"
|
|
schema:
|
|
type: string
|
|
show_if: [["certType", "=", "existingcert"]]
|
|
default: ""
|
|
- variable: authForwardURL
|
|
label: "Forward Authentication URL"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
|
|
- variable: certmanager
|
|
description: "Configure CertManager Settings"
|
|
label: "CertManager Settings"
|
|
group: "Certmanager Settings"
|
|
schema:
|
|
type: dict
|
|
required: true
|
|
attrs:
|
|
- variable: email
|
|
description: "Email Adress to use with Letsencrypt"
|
|
label: "Email-Adress"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: wildcardDomain
|
|
description: "Enter Domain name here, if you want to setup a global wildcard-domain"
|
|
label: "Wildcard Domain"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
- variable: provider
|
|
description: "Select the CertManager provider to use"
|
|
label: "CertManager Provider"
|
|
schema:
|
|
type: string
|
|
default: "cloudflare"
|
|
enum:
|
|
- value: "cloudflare"
|
|
description: "Cloudflare"
|
|
- value: "cloudDNS"
|
|
description: "Google cloudDNS"
|
|
- value: "route53"
|
|
description: "Route53"
|
|
- value: "digitalocean"
|
|
description: "Digitalocean"
|
|
- value: "rfc2136"
|
|
description: "rfc2136"
|
|
- value: "azureDNS"
|
|
description: "AzureDNS"
|
|
- value: "akamai"
|
|
description: "Akamai"
|
|
- value: "acmeDNS"
|
|
description: "acmeDNS"
|
|
- variable: cloudflare
|
|
description: "Configure Cloudflare Settings"
|
|
label: "Cloudflare Settings"
|
|
schema:
|
|
show_if: [["provider", "=", "cloudflare"]]
|
|
type: dict
|
|
required: true
|
|
attrs:
|
|
- variable: apikey
|
|
description: "Enter your Cloudflare API-Key"
|
|
label: "API-Key"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: cloudDNS
|
|
description: "Configure Google cloudDNS Settings"
|
|
label: "Google cloudDNS Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "cloudDNS"]]
|
|
required: true
|
|
attrs:
|
|
- variable: project
|
|
description: "Enter your Google cloudDNS Project Name"
|
|
label: "Project"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: keyjson
|
|
description: "Enter your Google cloudDNS JSON Key"
|
|
label: "Key-JSON"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: route53
|
|
description: "Configure Route53 Settings"
|
|
label: "Route53 Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "route53"]]
|
|
required: true
|
|
attrs:
|
|
- variable: region
|
|
description: "Enter your Route53 Region"
|
|
label: "Region"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: accessKeyID
|
|
description: "Enter your Route53 accessKeyID"
|
|
label: "accessKeyID"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: secretaccesskey
|
|
description: "Enter your Route53 secretaccesskey"
|
|
label: "Secretaccesskey"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: digitalocean
|
|
description: "Configure Digitalocean Settings"
|
|
label: "Digitalocean Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "digitalocean"]]
|
|
required: true
|
|
attrs:
|
|
- variable: accesstoken
|
|
description: "Enter your Digitalocean Access Token"
|
|
label: "Access Token"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: rfc2136
|
|
description: "Configure rfc2136 Settings"
|
|
label: "rfc2136 Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "rfc2136"]]
|
|
required: true
|
|
attrs:
|
|
- variable: nameserver
|
|
description: "Enter your rfc2136 Nameserver"
|
|
label: "Nameserver"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: tsigKeyName
|
|
description: "Enter your rfc2136 tsigKeyName"
|
|
label: "tsigKeyName"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: tsigsecretkey
|
|
description: "Enter your rfc2136 tsigsecretkey"
|
|
label: "tsigsecretkey"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: tsigAlgorithm
|
|
description: "Enter your rfc2136 tsigAlgorithm"
|
|
label: "tsigAlgorithm"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: azureDNS
|
|
description: "Configure AzureDNS Settings"
|
|
label: "AzureDNS Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "azureDNS"]]
|
|
required: true
|
|
attrs:
|
|
- variable: environment
|
|
description: "Enter your AzureDNS environment"
|
|
label: "environment"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: subscriptionID
|
|
description: "Enter your AzureDNS subscriptionID"
|
|
label: "subscriptionID"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: resourceGroupName
|
|
description: "Enter your AzureDNS resourceGroupName"
|
|
label: "resourceGroupName"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: hostedZoneName
|
|
description: "Enter your AzureDNS hostedZoneName"
|
|
label: "hostedZoneName"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: akamai
|
|
description: "Configure Akamai Settings"
|
|
label: "Akamai Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "akamai"]]
|
|
required: true
|
|
attrs:
|
|
- variable: serviceConsumerDomain
|
|
description: "Enter your Akamai serviceConsumerDomain"
|
|
label: "serviceConsumerDomain"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: clientToken
|
|
description: "Enter your Akamai clientToken"
|
|
label: "clientToken"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: clientSecret
|
|
description: "Enter your Akamai clientSecret"
|
|
label: "clientSecret"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: accessToken
|
|
description: "Enter your Akamai accessToken"
|
|
label: "accessToken"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: acmeDNS
|
|
description: "Configure acmeDNS Settings"
|
|
label: "acmeDNS Settings"
|
|
schema:
|
|
type: dict
|
|
show_if: [["provider", "=", "acmeDNS"]]
|
|
required: true
|
|
attrs:
|
|
- variable: host
|
|
description: "Enter your acmeDNS host"
|
|
label: "host"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
- variable: apikey
|
|
description: "Enter your acmeDNS acmednsjson"
|
|
label: "acmednsjson"
|
|
schema:
|
|
type: string
|
|
default: ""
|
|
required: true
|
|
|
|
- variable: warning
|
|
label: "This App binds to the same ports as TrueNAS SCALE UI: 80 and 443"
|
|
description: "Please be sure to set the UI to a different port or adapter"
|
|
group: "WARNING"
|
|
schema:
|
|
type: dict
|
|
attrs:
|
|
- variable: confirm-warning
|
|
description: "Check this to confirm you have made precautions against conflicts on port 80 and 443"
|
|
label: "I understand above warning and its consequences"
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
required: true |