categories:
- Monitoring
questions:
# Security
- variable: podSecurityPolicy.enabled
  default: true
  description: "Enable Pod Securiy Policy"
  type: boolean
  group: "Security"
  label: "Enable Pod Securiy Policy"
- variable: rbac.create
  default: true
  description: "Create RBAC rules"
  type: boolean
  group: "Security"
  label: "Create RBAC rules"
- variable: networkPolicy.enabled
  default: true
  description: "Enable NetworkPolicy"
  type: boolean
  group: "Security"
  label: "Enable NetworkPolicy"
# Docker image configurations
- variable: defaultImage
  default: "true"
  description: "Use default Docker image"
  label: Use Default Image
  type: boolean
  show_subquestion_if: false
  group: "Container Images"
  subquestions:
  - variable: server.image.repository
    default: "prom/prometheus"
    description: "Prometheus image name"
    type: string
    label: Prometheus Image Name
  - variable: server.image.tag
    default: "v2.21.0"
    description: "Prometheus image tag"
    type: string
    label: Prometheus Image Tag
  - variable: alertmanager.image.repository
    default: "prom/alertmanager"
    description: "Alertmanager image name"
    type: string
    label: Alertmanager Image Name
    show_if: "alertmanager.enabled=true"
  - variable: alertmanager.image.tag
    default: "v0.21.0"
    description: "Alertmanager image tag"
    type: string
    label: Alertmanager Image Tag
    show_if: "alertmanager.enabled=true"
  - variable: nodeExporter.image.repository
    default: "prom/node-exporter"
    description: "Node exporter image name"
    type: string
    label: NodeExporter Image Name
  - variable: nodeExporter.image.tag
    default: "v1.0.1"
    description: "Node exporter image tag"
    type: string
    label: NodeExporter Image Tag
  - variable: pushgateway.image.repository
    default: "prom/pushgateway"
    description: "Pushgateway image name"
    type: string
    label: Pushgateway Image Name
  - variable: pushgateway.image.tag
    default: "v1.2.0"
    description: "Pushgateway image tag"
    type: string
    label: Pushgateway Image Tag
  - variable: kubeStateMetrics.image.repository
    default: "quay.io/coreos/kube-state-metrics"
    description: "Kube-state-metrics image name"
    type: string
    label: KubeStateMetrics Image Name
  - variable: kubeStateMetrics.image.tag
    default: "v1.9.7"
    description: "Kube-state-metrics image tag"
    type: string
    label: KubeStateMetrics Image Tag
#  - variable: grafana.image.repository
#    default: "grafana/grafana"
#    description: "Grafana image name"
#    type: string
#    label: Grafana Image Name
#  - variable: grafana.image.tag
#    default: "5.3.1"
#    description: "Grafana image tag"
#    type: string
#    label: Grafana Image Tag
#  - variable: grafana.grafanaWatcher.image.repository
#    default: "quay.io/coreos/grafana-watcher"
#    description: "Grafana Watcher image name"
#    type: string
#    label: Grafana Watcher Image Name
#  - variable: grafana.grafanaWatcher.image.tag
#    default: "v0.0.8"
#    description: "Grafana Watcher image tag"
#    type: string
#    label: Grafana Watcher Image Tag
# server configurations
- variable: server.ingress.enabled
  default: true
  description: "Expose prometheus using Layer 7 Load Balancer - ingress"
  type: boolean
  group: "Prometheus Server"
  label: Expose Prometheus using Layer 7 Load Balancer
  show_subquestion_if: true
  required: true
  subquestions:
  - variable: server.ingress.hosts[0]
    default: ""
    description: "Prometheus server ingress (only hostname (default path /) or hostname/path ex: cluster.local/prometheus)"
    type: string
    required: true
    label: Hostname & Path
- variable: server.service.type
  default: "ClusterIP"
  description: "Server service type"
  group: "Prometheus Server"
  type: enum
  show_if: "server.ingress.enabled=false"
  options:
    - "ClusterIP"
    - "NodePort"
    - "LoadBalancer"
  required: true
  label: Prometheus Service Type
  show_subquestion_if: "NodePort"
  subquestions:
  - variable: server.service.nodePort
    default: ""
    description: "NodePort http port(to set explicitly, choose port between 30000-32767)"
    type: int
    min: 30000
    max: 32767
    label: Prometheus NodePort Http Port
    show_if: "server.ingress.enabled=false&&server.service.type=NodePort"
- variable: server.persistentVolume.enabled
  default: "false"
  description: "If true, prometheus will create a persistent volume claim"
  type: boolean
  group: "Prometheus Server"
  required: true
  label: Create Persistent Volume for Prometheus
  show_subquestion_if: true
  subquestions:
  - variable: server.persistentVolume.size
    default: "8Gi"
    description: "Prometheus data persistent volume size"
    type: string
    label: Prometheus Persistent Volume Size
  - variable: server.persistentVolume.storageClass
    default: ""
    description: "Prometheus data persistent volume storageClass, if not set use default StorageClass"
    type: storageclass
    label: Prometheus Persistent Volume StorageClass
# alertmanager configurations
- variable: alertmanager.enabled
  default: "true"
  description: "If true, create alertmanager"
  type: boolean
  group: "Alertmanager"
  label: Enable Alertmanager
  show_subquestion_if: true
- variable: alertmanager.ingress.enabled
  default: "true"
  description: "Expose alertmanager using Layer 7 Load Balancer - ingress"
  type: boolean
  group: "Alertmanager"
  label: Expose Alertmanager using Layer 7 Load Balancer
  show_if: "alertmanager.enabled=true"
  show_subquestion_if: true
  required: true
  subquestions:
  - variable: alertmanager.ingress.hosts[0]
    default: ""
    description: "Alertmanager server ingress (only hostname & default path /, or hostname/path)"
    type: string
    required: true
    label: Hostname & Path
    show_if: "alertmanager.enabled=true"
- variable: alertmanager.service.type
  default: "ClusterIP"
  description: "Alertmanager service type"
  type: enum
  show_if: "alertmanager.ingress.enabled=false&&alertmanager.enabled=true"
  group: "Alertmanager"
  options:
    - "ClusterIP"
    - "NodePort"
    - "LoadBalancer"    
  required: true
  label: Alertmanager Service Type
  show_subquestion_if: "NodePort"
  subquestions:
  - variable: alertmanager.service.nodePort
    default: ""
    description: "NodePort http port(to set explicitly, choose port between 30000-32767)"
    type: int
    min: 30000
    max: 32767
    label: Alertmanager NodePort Http Port
    show_if: "alertmanager.enabled=true&&alertmanager.ingress.enabled=false"
- variable: alertmanager.persistentVolume.enabled
  default: "false"
  description: "If true, alertmanager will create a persistent volume claim"
  type: boolean
  required: true
  group: "Alertmanager"
  label: Create Persistent Volume for Alertmanager
  show_if: "alertmanager.enabled=true"
  show_subquestion_if: true
  subquestions:
  - variable: alertmanager.persistentVolume.size
    default: "2Gi"
    description: "Alertmanager data persistent volume size"
    type: string
    label: Alertmanager Persistent Volume Size
    show_if: "alertmanager.enabled=true"
  - variable: alertmanager.persistentVolume.storageClass
    default: ""
    description: "Alertmanager data persistent volume storageClass, if not set use default StorageClass"
    type: storageclass
    label: Alertmanager Persistent Volume StorageClass
    show_if: "alertmanager.enabled=true"
# NodeExporter
- variable: nodeExporter.enabled
  default: "true"
  description: "If true, create nodeExporter"
  type: boolean
  group: "NodeExporter"
  label: Enable NodeExporter
  show_subquestion_if: true
- variable: nodeExporter.service.hostPort
  default: "9100"
  description: "NodeExporter hostPort"
  type: string
  group: "NodeExporter"
  label: NodeExporter hostPort
  show_if: "nodeExporter.enabled=true"
