groups:
  - name: Radarr Configuration
    description: Configure Radarr
  - name: User and Group Configuration
    description: Configure User and Group for Radarr
  - name: Network Configuration
    description: Configure Network for Radarr
  - name: Storage Configuration
    description: Configure Storage for Radarr
  - name: Resources Configuration
    description: Configure Resources for Radarr

portals:
  web_portal:
    protocols:
      - "$kubernetes-resource_configmap_portal_protocol"
    host:
      - "$kubernetes-resource_configmap_portal_host"
    ports:
      - "$kubernetes-resource_configmap_portal_port"
    path: "$kubernetes-resource_configmap_portal_path"

questions:
  - variable: radarrConfig
    label: ""
    group: Radarr Configuration
    schema:
      type: dict
      attrs:
        - variable: instanceName
          label: Instance Name
          description: The name of the Radarr instance.
          schema:
            type: string
            default: "Radarr"
            required: true
        - variable: additionalEnvs
          label: Additional Environment Variables
          description: Configure additional environment variables for Radarr.
          schema:
            type: list
            default: []
            items:
              - variable: env
                label: Environment Variable
                schema:
                  type: dict
                  attrs:
                    - variable: name
                      label: Name
                      schema:
                        type: string
                        required: true
                    - variable: value
                      label: Value
                      schema:
                        type: string
                        required: true

  - variable: radarrRunAs
    label: ""
    group: User and Group Configuration
    schema:
      type: dict
      attrs:
        - variable: user
          label: User ID
          description: The user id that Radarr will run as.
          schema:
            type: int
            min: 2
            default: 568
            required: true
        - variable: group
          label: Group ID
          description: The group id that Radarr will run as.
          schema:
            type: int
            min: 2
            default: 568
            required: true

  - variable: radarrNetwork
    label: ""
    group: Network Configuration
    schema:
      type: dict
      attrs:
        - variable: webPort
          label: Web Port
          description: The port for the Radarr Web UI.
          schema:
            type: int
            default: 30025
            min: 9000
            max: 65535
            required: true
        - variable: hostNetwork
          label: Host Network
          description: |
            Bind to the host network. It's recommended to keep this disabled.</br>
          schema:
            type: boolean
            default: false

  - variable: radarrStorage
    label: ""
    group: Storage Configuration
    schema:
      type: dict
      attrs:
        - variable: config
          label: Radarr Config Storage
          description: The path to store Radarr Configuration.
          schema:
            type: dict
            attrs:
              - variable: type
                label: Type
                description: |
                  ixVolume: Is dataset created automatically by the system.</br>
                  Host Path: Is a path that already exists on the system.
                schema:
                  type: string
                  required: true
                  default: "ixVolume"
                  enum:
                    - value: "hostPath"
                      description: Host Path (Path that already exists on the system)
                    - value: "ixVolume"
                      description: ixVolume (Dataset created automatically by the system)
              - variable: datasetName
                label: Dataset Name
                schema:
                  type: string
                  show_if: [["type", "=", "ixVolume"]]
                  required: true
                  hidden: true
                  immutable: true
                  default: "config"
                  $ref:
                    - "normalize/ixVolume"
              - variable: hostPath
                label: Host Path
                schema:
                  type: hostpath
                  show_if: [["type", "=", "hostPath"]]
                  immutable: true
                  required: true
        - variable: additionalStorages
          label: Additional Storage
          description: Additional storage for Radarr.
          schema:
            type: list
            default: []
            items:
              - variable: storageEntry
                label: Storage Entry
                schema:
                  type: dict
                  attrs:
                    - variable: type
                      label: Type
                      description: |
                        ixVolume: Is dataset created automatically by the system.</br>
                        Host Path: Is a path that already exists on the system.
                      schema:
                        type: string
                        required: true
                        default: "ixVolume"
                        enum:
                          - value: "hostPath"
                            description: Host Path (Path that already exists on the system)
                          - value: "ixVolume"
                            description: ixVolume (Dataset created automatically by the system)
                    - variable: mountPath
                      label: Mount Path
                      description: The path inside the container to mount the storage.
                      schema:
                        type: path
                        required: true
                    - variable: hostPath
                      label: Host Path
                      description: The host path to use for storage.
                      schema:
                        type: hostpath
                        show_if: [["type", "=", "hostPath"]]
                        required: true
                    - variable: datasetName
                      label: Dataset Name
                      description: The name of the dataset to use for storage.
                      schema:
                        type: string
                        show_if: [["type", "=", "ixVolume"]]
                        required: true
                        immutable: true
                        default: "storage_entry"
                        $ref:
                          - "normalize/ixVolume"

  - variable: resources
    group: Resources Configuration
    label: ""
    schema:
      type: dict
      attrs:
        - variable: limits
          label: Limits
          schema:
            type: dict
            attrs:
              - variable: cpu
                label: CPU
                description: CPU limit for Radarr.
                schema:
                  type: string
                  default: "4000m"
                  required: true
              - variable: memory
                label: Memory
                description: Memory limit for Radarr.
                schema:
                  type: string
                  default: "8Gi"
                  required: true
