# Include{groups}
portals:
  open:
    protocols:
      - "$kubernetes-resource_configmap_portal_protocol"
    host:
      - "$kubernetes-resource_configmap_portal_host"
    ports:
      - "$kubernetes-resource_configmap_portal_port"
questions:
  - variable: portal
    group: "Container Image"
    label: "Configure Portal Button"
    schema:
      type: dict
      hidden: true
      attrs:
        - variable: enabled
          label: "Enable"
          description: "enable the portal button"
          schema:
            hidden: true
            editable: false
            type: boolean
            default: true
# Include{global}
  - variable: service
    group: "Networking and Services"
    label: "Configure Service(s)"
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: main
          label: "Main Service"
          description: "The Primary service on which the healthcheck runs, often the webUI"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: "Enable the service"
                schema:
                  type: boolean
                  default: true
                  hidden: true
              - variable: type
                label: "Service Type"
                description: "ExternalIP gets connected to using an IP and port, ExternalName gets connected to using a domain name"
                schema:
                  type: string
                  default: "ExternalIP"
                  enum:
                    - value: "ExternalName"
                      description: "ExternalName"
                    - value: "ExternalIP"
                      description: "ExternalIP"
              - variable: externalName
                label: "External Service Domainname"
                description: "Domainname of External service"
                schema:
                  show_if: [["type", "=", "ExternalName"]]
                  type: string
                  default: "google.com"
              - variable: externalIP
                label: "External Service IP"
                description: "IP of External service"
                schema:
                  show_if: [["type", "=", "ExternalIP"]]
                  type: string
                  default: "1.1.1.1"
              - variable: ports
                label: "Service's Port(s) Configuration"
                schema:
                  additional_attrs: true
                  type: dict
                  attrs:
                    - variable: main
                      label: "Main Service Port Configuration"
                      schema:
                        additional_attrs: true
                        type: dict
                        attrs:
                          - variable: enabled
                            label: "Enable the port"
                            schema:
                              type: boolean
                              default: true
                              hidden: true
                          - variable: protocol
                            label: "Port Type"
                            schema:
                              type: string
                              default: "HTTP"
                              enum:
                                - value: HTTP
                                  description: "HTTP"
                                - value: "HTTPS"
                                  description: "HTTPS"
                                - value: TCP
                                  description: "TCP"
                                - value: "UDP"
                                  description: "UDP"
                          - variable: port
                            label: "Service Port"
                            description: "Both the external service port and internal service port will be the same"
                            schema:
                              type: int
                              default: 10003

  - variable: ingress
    label: ""
    group: "Ingress"
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: main
          label: "Main Ingress"
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: enabled
                label: "Enable Ingress"
                schema:
                  type: boolean
                  default: false
                  show_subquestions_if: true
                  subquestions:
                    - variable: annotations
                      label: "annoations"
                      schema:
                        type: dict
                        hidden: true
                        attrs:
                          - variable: traefik.frontend.passHostHeader
                            label: "passHostHeader"
                            schema:
                              type: string
                              default: "false"
                              hidden: true
                    - variable: hosts
                      label: "Hosts"
                      schema:
                        type: list
                        default: []
                        items:
                          - variable: hostEntry
                            label: "Host"
                            schema:
                              additional_attrs: true
                              type: dict
                              attrs:
                                - variable: host
                                  label: "HostName"
                                  schema:
                                    type: string
                                    default: ""
                                    required: true
                                - variable: paths
                                  label: "Paths"
                                  schema:
                                    type: list
                                    default: []
                                    items:
                                      - variable: pathEntry
                                        label: "Host"
                                        schema:
                                          additional_attrs: true
                                          type: dict
                                          attrs:
                                            - variable: path
                                              label: "path"
                                              schema:
                                                type: string
                                                required: true
                                                default: "/"
                                            - variable: pathType
                                              label: "pathType"
                                              schema:
                                                type: string
                                                required: true
                                                default: "Prefix"
# Include{ingressTLS}
# Include{ingressTraefik}

# Include{ingressExpert}

# Include{ingressList}
