---
questions:
  - variable: expose.type
    label: "Expose the service via"
    description: "Set how to expose the service."
    type: enum
    group: "Expose"
    default: "ingress"
    options:
      - label: "Ingress"
        value: "ingress"
      - label: "Cluster IP"
        value: "clusterIP"
      - label: "Node Port"
        value: "nodePort"
      - label: "Load Balancer"
        value: "loadBalancer"
  - variable: expose.ingress.hosts.core
    label: "Ingress Host"
    description: "The host for the ingress"
    type: string
    group: "Expose"
    default: "core.harbor.domain"
    show_if: "expose.type=ingress"
  - variable: expose.ingress.className
    label: "Ingress Class Name"
    description: "The class name for the ingress"
    type: string
    group: "Expose"
    default: ""
    show_if: "expose.type=ingress"
  - variable: expose.ingress.annotations
    label: "Ingress Annotations"
    description: "Annotations for the ingress"
    type: map[string][string]
    group: "Expose"
    default:
      ingress.kubernetes.io/ssl-redirect: "true"
      ingress.kubernetes.io/proxy-body-size: "0"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/proxy-body-size: "0"
    show_if: "expose.type=ingress"
  - variable: expose.clusterIP.name
    label: "Cluster IP Name"
    description: "The name of the ClusterIP service"
    type: string
    group: "Expose"
    default: "harbor"
    show_if: "expose.type=clusterIP"
  - variable: expose.clusterIP.staticClusterIP
    label: "Static Cluster IP"
    description: "Set a static cluster IP for the service"
    type: string
    group: "Expose"
    default: ""
    show_if: "expose.type=clusterIP"
  - variable: expose.nodePort.name
    label: "NodePort Service Name"
    description: "The name of the NodePort service"
    type: string
    group: "Expose"
    default: "harbor"
    show_if: "expose.type=nodePort"
  - variable: expose.nodePort.ports.http.nodePort
    label: "NodePort Port http"
    description: "The node port Harbor listens on when serving HTTP"
    type: int
    group: "Expose"
    default: 30000
    show_if: "expose.type=nodePort"
  - variable: expose.nodePort.ports.https.nodePort
    label: "NodePort Port https"
    description: "The node port Harbor listens on when serving HTTPS"
    type: int
    group: "Expose"
    default: 30443
    show_if: "expose.type=nodePort"
  - variable: expose.loadBalancer.name
    label: "LoadBalancer Service Name"
    description: "The name of the LoadBalancer service"
    type: string
    group: "Expose"
    default: "harbor"
    show_if: "expose.type=loadBalancer"
  - variable: expose.loadBalancer.IP
    label: "LoadBalancer IP"
    description: "The IP address of the LoadBalancer service"
    type: string
    group: "Expose"
    default: ""
    show_if: "expose.type=loadBalancer"
  - variable: imagePullSecrets
    label: "Image Pull Secrets"
    description: "List of names of Secrets to use for pulling images"
    type: list
    group: "General"
    default: [suse-registry]
  - variable: harborAdminPassword
    label: "Harbor Admin Password"
    description: "Password for the Harbor admin user"
    type: string
    group: "General"
    default: "Harbor12345"
    required: true
    secret: true
  - variable: logLevel
    label: "Log Level"
    description: "Set the log level for Harbor components"
    type: enum
    group: "General"
    default: "info"
    options:
      - label: "Debug"
        value: "debug"
      - label: "Info"
        value: "info"
      - label: "Warning"
        value: "warning"
      - label: "Error"
        value: "error"
      - label: "Fatal"
        value: "fatal"
      - label: "Panic"
        value: "panic"
  - variable: externalRedis.enabled
    label: "Use External Redis"
    description: "Enable the use of an external Redis instance"
    type: boolean
    group: "External Services"
    default: false
  - variable: externalRedis.host
    label: "External Redis Host"
    description: "Hostname or IP address of the external Redis instance"
    type: string
    group: "External Services"
    default: ""
    show_if: "externalRedis.enabled=true"
  - variable: externalRedis.port
    label: "External Redis Port"
    description: "Port for external Redis instance"
    type: int
    group: "External Services"
    default: 6379
    show_if: "externalRedis.enabled=true"
  - variable: externalRedis.password
    label: "External Redis Password"
    description: "Password for external Redis instance"
    type: string
    group: "External Services"
    default: ""
    show_if: "externalRedis.enabled=true"
    secret: true
  - variable: externalDatabase.enabled
    label: "Use External Database"
    description: "Enable the use of an external database instance"
    type: boolean
    group: "External Services"
    default: false
  - variable: externalDatabase.host
    label: "External Database Host"
    description: "Hostname or IP address of the external database instance"
    type: string
    group: "External Services"
    default: ""
    show_if: "externalDatabase.enabled=true"
  - variable: externalDatabase.port
    label: "External Database Port"
    description: "Port for external database instance"
    type: int
    group: "External Services"
    default: 5432
    show_if: "externalDatabase.enabled=true"
  - variable: externalDatabase.user
    label: "External Database User"
    description: "Username for external database instance"
    type: string
    group: "External Services"
    default: ""
    show_if: "externalDatabase.enabled=true"
  - variable: externalDatabase.password
    label: "External Database Password"
    description: "Password for external database instance"
    type: string
    group: "External Services"
    default: ""
    show_if: "externalDatabase.enabled=true"
    secret: true
  - variable: externalDatabase.database
    label: "External Database Name"
    description: "Name of the database to use with an external database instance"
    type: string
    group: "External Services"
    default: "harbor"
    show_if: "externalDatabase.enabled=true"
  - variable: core.replicas
    label: "Core Replicas"
    description: "Number of replicas for the Harbor Core component."
    type: int
    group: "Deployment"
    default: 1
  - variable: portal.replicas
    label: "Portal Replicas"
    description: "Number of replicas for the Harbor Portal component."
    type: int
    group: "Deployment"
    default: 1
  - variable: jobservice.replicas
    label: "Jobservice Replicas"
    description: "Number of replicas for the Harbor Jobservice component."
    type: int
    group: "Deployment"
    default: 1
  - variable: registry.replicas
    label: "Registry Replicas"
    description: "Number of replicas for the Harbor Registry component."
    type: int
    group: "Deployment"
    default: 1
  - variable: trivy.replicas
    label: "Trivy Replicas"
    description: "Number of replicas for the Harbor Trivy component."
    type: int
    group: "Deployment"
    default: 1
  - variable: exporter.replicas
    label: "Exporter Replicas"
    description: "Number of replicas for the Harbor Exporter component."
    type: int
    group: "Deployment"
    default: 1
  - variable: database.replicas
    label: "Database Replicas"
    description: "Number of replicas for the Harbor Database component."
    type: int
    group: "Deployment"
    default: 1
    show_if: "externalDatabase.enabled=false"
  - variable: redis.replicas
    label: "Redis Replicas"
    description: "Number of replicas for the Harbor Redis component."
    type: int
    group: "Deployment"
    default: 1
    show_if: "externalRedis.enabled=false"
  - variable: persistence.persistentVolumeClaim.registry
    label: "Registry persistent volume size"
    description: ""
    type: string
    group: "Storage"
    default: "5Gi"
  - variable: persistence.persistentVolumeClaim.jobservice
    label: "Core persistent volume size"
    description: ""
    type: string
    group: "Storage"
    default: "1Gi"
  - variable: persistence.persistentVolumeClaim.trivy
    label: "Trivy persistent volume size"
    description: ""
    type: string
    group: "Storage"
    default: "5Gi"
  - variable: persistence.persistentVolumeClaim.database
    label: "Database persistent volume size"
    description: ""
    type: string
    group: "Storage"
    default: "1Gi"
    show_if: "externalDatabase.enabled=false"
  - variable: persistence.persistentVolumeClaim.redis
    label: "Redis persistent volume size"
    description: ""
    type: string
    group: "Storage"
    default: "1Gi"
    show_if: "externalRedis.enabled=false"
  - variable: storageClass
    label: "Storage Class"
    description: "The storage class to use for persistent volumes"
    type: string
    group: "Storage"
    default: ""
  