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

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

  - variable: ark
    group: App Configuration
    label: Ark Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: username
          label: Username
          description: Optionally set a steam username otherwise (disable Steam Guard).
          schema:
            type: string
            default: ""
        - variable: password
          label: Password
          description: Optionally set a steam password (disable Steam Guard).
          schema:
            type: string
            private: true
            default: ""
        - variable: srv_password
          label: Server Password
          description: Optionally set a password for the server (this field accepts no spaces)
          schema:
            type: string
            private: true
            default: ""
        - variable: srv_admin_pass
          label: Server Admin Password
          description: Optionally set a password for the admin (this field accepts no spaces)
          schema:
            type: string
            private: true
            default: ""
        - variable: game_id
          label: Game ID
          description: "The SteamCMD Game ID."
          schema:
            type: string
            required: true
            default: "376030"
            enum:
              - value: "376030"
                description: ARK Survival Evolved
              - value: "445400"
                description: ARK Survival of the Fittest
        - variable: custom_map
          label: Custom Map
          description: Custom Map name.
          schema:
            type: string
            default: ""
        - variable: map
          label: Map
          description: Map Name
          schema:
            type: string
            show_if: [["custom_map", "=", ""]]
            default: TheIsland
            enum:
              - value: TheIsland
                description: Island
              - value: TheCenter
                description: Center
              - value: ScorchedEarth_P
                description: Scorched Earth
              - value: Ragnarok
                description: Ragnarok
              - value: Aberration_P
                description: Aberration
              - value: Extinction
                description: Extinction
              - value: Genesis
                description: Genesis
              - value: Valguero_P
                description: Valguero
              - value: CrystalIsles
                description: Crystal Isles
              - value: Gen2
                description: Genesis 2
              - value: Lost Island
                description: LostIsland
              - value: Fjordur
                description: Fjordur
              - value: custom
                description: Custom
        - variable: server_name
          label: Server Name
          description: Optionally set a name for the server (this field accepts no spaces)
          schema:
            type: string
            default: ""
        - variable: validate
          label: Validate
          description: Enable to validate the installation, otherwise uncheck it.
          schema:
            type: boolean
            default: true
        - variable: rcon_enabled
          label: Enable RCON
          schema:
            type: boolean
            default: true
        - 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
        - variable: easy_game_extra_params
          label: Game Extra Parameters (Easy)
          description: Appends the game extra params to the Game Extra Parameters list
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: server
                label: Server Flag
                description: Adds -server flag to Game Extra Parameters
                schema:
                  type: boolean
                  default: true
              - variable: log
                label: Log Flag
                description: Adds -log flag to Game Extra Parameters
                schema:
                  type: boolean
                  default: true
              - variable: crossplay
                label: Crossplay Flag
                description: Adds -crossplay flag to Game Extra Parameters
                schema:
                  type: boolean
                  default: true
        - variable: game_params_extra
          label: Game Extra Parameters
          description: "Enter your game extra parameters, one per entry"
          schema:
            type: list
            default: []
            items:
              - variable: game_params_extra_entry
                label: Extra Parameter Entry
                description: Single parameter per entry.
                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: 7777
                              required: true
        - variable: udp2
          label: udp2 service
          description: This should always be (Main Port + 1)
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: udp2
                      label: udp2 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: 7778
                              required: true
        - variable: udpsteam
          label: UDP Steam Service
          description: Container Port 27015
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: udpsteam
                      label: UDP Steam 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: 27015
                              required: true
        - variable: rcontcp
          label: rcontcp service
          description: Container Port 27020
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
                    - variable: rcontcp
                      label: rcontcp 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: 27020
                              required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: steamcmd
          label: App SteamCMD Storage
          description: Stores the Application SteamCMD.
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{persistenceBasic}
        - variable: serverfiles
          label: App ServerFiles Storage
          description: Stores the Application ServerFiles.
          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}
