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

# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}

  - variable: terraria
    group: App Configuration
    label: Terraria Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: pass
          label: Server Pass
          description: Sets the server password.
          schema:
            type: string
            private: true
            required: true
            default: ""
        - variable: autocreate
          label: Auto Create
          description: Creates a world if none is found.
          schema:
            type: string
            default: "1"
            required: true
            enum:
              - value: "1"
                description: Small
              - value: "2"
                description: Medium
              - value: "3"
                description: Large
        - variable: seed
          label: World Seed
          description: Specifies the world seed.
          schema:
            type: string
            required: true
            default: AwesomeSeed
        - variable: worldname
          label: Server World Name
          description: Sets the name of the world
          schema:
            type: string
            required: true
            default: ""
        - variable: motd
          label: Server Message of The Day
          description: Set the server motto of the day text.
          schema:
            type: string
            required: true
            default: ""
        - variable: maxplayers
          label: Max Players Count
          description: Sets the max number of players.
          schema:
            type: int
            default: 16
            required: true
            min: 1
            max: 255
        - variable: lang
          label: Language
          description: Sets the server's language.
          schema:
            type: string
            default: en-US
            required: true
            enum:
              - value: en-US
                description: English
              - value: de-DE
                description: German
              - value: it-IT
                description: Italian
              - value: fr-FR
                description: French
              - value: es-ES
                description: Spanish
              - value: ru-RU
                description: Russian
              - value: zh-Hans
                description: Chinese
              - value: pt-BR
                description: Portuguese
              - value: pl-PL
                description: Polish
        - variable: easy_game_params
          label: Easy Game Parameters
          description: Appends the game extra params to the Game Extra Parameters list
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: noupnp
                label: no UPNP Flag
                description: Disables automatic universal plug and play.
                schema:
                  type: boolean
                  default: true
              - variable: secure
                label: Secure Flag
                description: Adds additional cheat protection to the server.
                schema:
                  type: boolean
                  default: false
              - variable: steam
                label: Steam Flag
                description: Enables Steam support.
                schema:
                  type: boolean
                  default: false
        - variable: game_params
          label: Game Parameters
          description: Enter your game parameters starting with -, one per entry
          schema:
            type: list
            default: []
            items:
              - variable: game_params_entry
                label: Parameter Entry
                description: Single parameter per entry. Start with -
                schema:
                  type: string
                  default: ""
                  required: true
# Include{containerConfig}
# 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: 9014
                              required: true
        - variable: tcp
          label: tcp service
          description: Container Port 7777
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: tcp
                      label: tcp 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: 7777
                              required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: serverfiles
          label: serverfiles Storage
          description: Container Path serverdataserverfiles
          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{podSecurityContextRoot}
        - 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
# 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}
