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

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

  - variable: mealie_frontend
    group: App Configuration
    label: Mealie Frontend Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: theme
          label: Theme
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: light_primary
                label: Light Primary
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#E58325"
              - variable: light_accent
                label: Light Accent
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#007A99"
              - variable: light_secondary
                label: Light Secondary
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#973542"
              - variable: light_success
                label: Light Success
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#43A047"
              - variable: light_info
                label: Light Info
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#1976D2"
              - variable: light_warning
                label: Light Warning
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#FF6D00"
              - variable: light_error
                label: Light Error
                description: Light Theme Config Variable
                schema:
                  type: string
                  default: "#EF5350"
              - variable: dark_primary
                label: Dark Primary
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#E58325"
              - variable: dark_accent
                label: Dark Accent
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#007A99"
              - variable: dark_secondary
                label: Dark Secondary
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#973542"
              - variable: dark_success
                label: Dark Success
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#43A047"
              - variable: dark_info
                label: Dark Info
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#1976D2"
              - variable: dark_warning
                label: Dark Warning
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#FF6D00"
              - variable: dark_error
                label: Dark Error
                description: Dark Theme Config Variable
                schema:
                  type: string
                  default: "#EF5350"
  - variable: mealie_backend
    group: App Configuration
    label: Mealie Backend Configuration
    schema:
      additional_attrs: true
      type: dict
      attrs:
        - variable: general
          label: General
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: allow_signup
                label: Allow Sign up
                description: Allow user sign-up without token
                schema:
                  type: boolean
                  default: true
              - variable: default_group
                label: Default Group
                description: The default group for users
                schema:
                  type: string
                  default: Home
              - variable: default_email
                label: Default Email
                description: The default username for the superuser
                schema:
                  type: string
                  default: changeme@email.com
              - variable: base_url
                label: Base URL
                description: Used for Notifications
                schema:
                  type: string
                  default: ""
              - variable: token_time
                label: Token Time
                description: The time in hours that a login/auth token is valid
                schema:
                  type: int
                  default: 48
        - variable: security
          label: Security
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: max_login_attempts
                label: Max Login Attempts
                description: Maximum times a user can provide an invalid password before their account is locked
                schema:
                  type: int
                  default: 5
              - variable: user_lockout_time
                label: User Lockout Time
                description: Time in hours for how long a users account is locked
                schema:
                  type: int
                  default: 24
        - variable: webworkers
          label: Web Workers
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: workers_per_core
                label: Workers Per Core
                description: Set the number of workers to the number of CPU cores multiplied by this value.
                schema:
                  type: int
                  default: 1
              - variable: max_workers
                label: Max Workers
                description: Set the maximum number of workers to use. Default is not set meaning unlimited.
                schema:
                  type: int
                  default: 1
              - variable: web_concurrency
                label: Web Concurrency
                description: Override the automatic definition of number of workers.
                schema:
                  type: int
                  default: 1
        - variable: smtp
          label: SMTP
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: user
                label: User
                description: Mail User
                schema:
                  type: string
                  default: ""
              - variable: password
                label: Password
                description: Mail Password
                schema:
                  type: string
                  private: true
                  default: ""
              - variable: host
                label: Host
                description: Mail Host
                schema:
                  type: string
                  default: ""
              - variable: port
                label: Port
                description: Mail Port
                schema:
                  type: int
                  default: 587
              - variable: from_name
                label: From Name
                description: Mail From Name
                schema:
                  type: string
                  default: Mealie
              - variable: from_email
                label: From Email
                description: Mail From Email
                schema:
                  type: string
                  default: ""
              - variable: auth_strategy
                label: Auth Strategy
                description: Mail Auth Strategy
                schema:
                  type: string
                  default: "TLS"
                  enum:
                    - value: TLS
                      description: TLS
                    - value: SSL
                      description: SSL
                    - value: NONE
                      description: NONE
        - variable: ldap
          label: LDAP
          schema:
            additional_attrs: true
            type: dict
            attrs:
              - variable: auth_enabled
                label: Auth Enabled
                description: Authenticate via an external LDAP server in addition to built-in Mealie auth
                schema:
                  type: boolean
                  default: false
              - variable: server_url
                label: Server URL
                description: LDAP server URL
                schema:
                  type: string
                  default: ""
              - variable: tls_insecure
                label: TLS Insecure
                description: Do not verify server certificate when using secure LDAP
                schema:
                  type: boolean
                  default: false
              - variable: tls_cacertfile
                label: TLS CA Cert File
                description: File path to Certificate Authority used to verify server certificate
                schema:
                  type: string
                  default: ""
              - variable: bind_template
                label: Bind Template
                description: Templated DN for users, {} will be replaced with the username.
                schema:
                  type: string
                  default: ""
              - variable: base_dn
                label: Base DN
                description: Starting point when searching for users authentication.
                schema:
                  type: string
                  default: ""
              - variable: admin_filter
                label: Admin Filter
                description: Optional LDAP filter, which tells Mealie the LDAP user .is an admin
                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: 10018
                              required: true
        - variable: api
          label: API Service
          description: The API Service
          schema:
            additional_attrs: true
            type: dict
            attrs:
# Include{serviceSelectorClusterIP}
# Include{serviceSelectorExtras}
                    - variable: api
                      label: API 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: 10019
                              required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
        - variable: data
          label: App Data Storage
          description: Stores the Application Data.
          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}
