# Include{groups}
portals: {}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}

# Include{containerBasic}
# Include{containerAdvanced}

  - variable: monolithic
    group: App Configuration
    label: LanCache Monolithic
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: cache_domains_repo
          label: Cache Domains Repo
          description: The github repo url for the cache_domains files to use to populate the cdn maps.
          schema:
            type: string
            default: "https://github.com/uklans/cache-domains.git"
        - variable: cache_domains_branch
          label: Cache Domains Repo
          description: The branch of the CACHE_DOMAINS_REPO to use.
          schema:
            type: string
            default: "master"
        - variable: upstream_dns
          label: Upstream DNS
          description: Upstream DNS server(s). (Do NOT point this at lancache-dns)
          schema:
            type: list
            empty: false
            default:
              - 1.1.1.1
              - 1.0.0.1
            required: true
            items:
              - variable: dns
                label: DNS
                schema:
                  type: string
                  required: true
                  default: ""
        - variable: cache_disk_size
          label: Cache Disk Size
          description: The amount of disk space the container should use for caching data.
          schema:
            type: string
            default: "1000000m"
        - variable: cache_max_age
          label: Cache Max Age
          description: The maximum amount of time a file should be held in cache.
          schema:
            type: string
            default: "3560d"
        - variable: cache_index_size
          label: Cache Index Size
          description: Amount of index memory for the nginx cache manager. We recommend 250m of index memory per 1TB.
          schema:
            type: string
            default: "500m"
        - variable: no_fetch
          label: No Fetch
          description: Turn off all git pull operations and use stored data
          schema:
            type: boolean
            default: false

  - variable: prefill
    group: App Configuration
    label: LanCache Prefill
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: enabled
          label: Enable Prefill Sidecar
          schema:
            type: boolean
            default: true
        - variable: updates
          label: Updates
          description: enable to check for updates from BattleNetPrefill/SteamPrefill on container start/restart.
          schema:
            type: boolean
            default: true
        - variable: on_start
          label: Prefill On Start
          description: Force a Prefill on every container start/restart. (please be careful with this option and enable only when you know what you are doing!)
          schema:
            type: boolean
            default: false
        - variable: log_clean_up
          label: Log Clean Up
          description: enable to clean up the logs directory on each start/restart.
          schema:
            type: boolean
            default: true
        - variable: default_cron
          label: Default Cron
          description: Specify a cron schedule to override the individual schedules for BatteNetPrefill and SteamPrefill. (leave empty to set cron individually)
          schema:
            type: string
            default: ""
        - variable: battlenet
          label: BattleNet Configuration
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                description: Enable or disable BattleNetPrefill.
                schema:
                  type: boolean
                  default: true
                  show_subquestions_if: true
                  subquestions:
                    - variable: cron
                      label: cron
                      description: Set your cron schedule for the BattleNetPrefill.
                      schema:
                        type: string
                        default: ""
        - variable: epic
          label: Epic Configuration
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                description: Enable or disable EpicPrefill.
                schema:
                  type: boolean
                  default: true
                  show_subquestions_if: true
                  subquestions:
                    - variable: params
                      label: Params
                      description:  list of parameters for EpicPrefill.
                      schema:
                        type: list
                        default: []
                        required: true
                        items:
                          - variable: param
                            label: Param
                            schema:
                              type: string
                              required: true
                              default: ""
                    - variable: cron
                      label: cron
                      description: Set your cron schedule for the EpicPrefill.
                      schema:
                        type: string
                        default: ""
        - variable: steam
          label: Steam Configuration
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: Enabled
                description: Enable or disable SteamPrefill.
                schema:
                  type: boolean
                  default: true
                  show_subquestions_if: true
                  subquestions:
                    - variable: params
                      label: Params
                      description:  list of parameters for SteamPrefill. (if you want to only prefill your selected apps then leave this variable empty)
                      schema:
                        type: list
                        default: []
                        required: true
                        items:
                          - variable: param
                            label: Param
                            schema:
                              type: string
                              required: true
                              default: ""
                    - variable: cron
                      label: cron
                      description: Set your cron schedule for the SteamPrefill.
                      schema:
                        type: string
                        default: ""

# Include{containerConfig}
# Include{podOptions}
# Include{serviceRoot}
        - variable: main
          label: "Main Service"
          description: "The Primary service on which the healthcheck runs, often the webUI"
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - 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: 10279
                              required: true
        - variable: https
          label: "HTTPS"
          description: "HTTPS Service"
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: https
                      label: "HTTPS"
                      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: 10280
                              required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: config
          label: "App Cache Storage"
          description: "Stores the Application Cache."
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: logs
          label: "App logs Storage"
          description: "Stores the Application logs."
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: prefill
          label: "App Prefill Storage"
          description: "Stores the Application Prefill."
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
        - variable: main
          label: "Main Ingress"
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressAdvanced}
# Include{ingressList}
# Include{securityContextRoot}

              - 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 of the user running the application"
                schema:
                  type: int
                  default: 0
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
              - variable: fsGroup
                label: "fsGroup"
                description: "The group that should own ALL storage."
                schema:
                  type: int
                  default: 568

# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}
