# Include{groups}
portals:
  open:
# Include{portalLink}
questions:
# Include{global}
# Include{serviceRoot}
# Include{serviceMain}
                                      - 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
# Include{ingressRoot}
        - 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: "annotations"
                      schema:
                        additional_attrs: true
                        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{ingressAdvanced}
# Include{ingressList}
