#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

# Default values for Pinot.

image:
  repository: apachepinot/pinot
  tag: 1.3.0
  pullPolicy: IfNotPresent

cluster:
  name: freeleaps-pinot

controller:
  name: controller
  port: 9000
  replicaCount: 1

  persistence:
    enabled: true
    accessMode: ReadWriteOnce
    size: 5G
    mountPath: /var/pinot/controller/data
    storageClass: "azure-disk-std-lrs"

  data:
    dir: /var/pinot/controller/data


  vip:
    host: pinot-controller
    port: 9000

  jvmOpts: "-Xms256M -Xmx1G"

  log4j2ConfFile: /opt/pinot/conf/pinot-controller-log4j2.xml
  pluginsDir: /opt/pinot/plugins

  service:
    annotations: {}
    clusterIP: ""
    externalIPs: []
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    type: ClusterIP
    port: 9000
    nodePort: ""

  external:
    enabled: false
    type: LoadBalancer
    port: 9000

  resources:
    requests:
      cpu: 200m
      memory: 256Mi
    limits:
      cpu: 500m 
      memory: 1Gi

  nodeSelector: {}

  tolerations: []

  affinity: {}

  podAnnotations: {}

  updateStrategy:
    type: RollingUpdate

broker:
  name: broker

  port: 8099

  replicaCount: 1

  jvmOpts: "-Xms256M -Xmx1G"

  log4j2ConfFile: /opt/pinot/conf/pinot-broker-log4j2.xml
  pluginsDir: /opt/pinot/plugins

  routingTable:
    builderClass: random

  service:
    annotations: {}
    clusterIP: ""
    externalIPs: []
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    type: ClusterIP
    port: 8099
    nodePort: ""

  external:
    enabled: false
    type: LoadBalancer
    port: 8099

  resources:
    requests:
      cpu: 200m
      memory: 256Mi
    limits:
      cpu: 500m 
      memory: 1Gi

  nodeSelector: {}

  affinity: {}

  tolerations: []

  podAnnotations: {}

  updateStrategy:
    type: RollingUpdate

server:
  name: server

  ports:
    netty: 8098
    admin: 8097

  replicaCount: 1

  dataDir: /var/pinot/server/data/index
  segmentTarDir: /var/pinot/server/data/segment

  persistence:
    enabled: true
    accessMode: ReadWriteOnce
    size: 5G
    mountPath: /var/pinot/server/data
    storageClass: "azure-disk-std-lrs"

  jvmOpts: "-Xms512M -Xmx1G"

  log4j2ConfFile: /opt/pinot/conf/pinot-server-log4j2.xml
  pluginsDir: /opt/pinot/plugins

  service:
    annotations: {}
    clusterIP: ""
    externalIPs: []
    loadBalancerIP: ""
    loadBalancerSourceRanges: []
    type: ClusterIP
    port: 8098
    nodePort: ""

  resources:
    requests:
      cpu: 200m
      memory: 512Mi
    limits:
      cpu: 500m 
      memory: 1Gi

  nodeSelector: {}

  affinity: {}

  tolerations: []

  podAnnotations: {}

  updateStrategy:
    type: RollingUpdate

# ------------------------------------------------------------------------------
# Zookeeper:
# ------------------------------------------------------------------------------

zookeeper:
  ## If true, install the Zookeeper chart alongside Pinot
  ## ref: https://github.com/kubernetes/charts/tree/master/incubator/zookeeper
  enabled: false

  ## Configure Zookeeper resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  resources: {}

  ## Replicas
  replicaCount: 1

  ## Environmental variables to set in Zookeeper
  env:
    ## The JVM heap size to allocate to Zookeeper
    ZK_HEAP_SIZE: "256M"

  persistence:
    enabled: true
    ## The amount of PV storage allocated to each Zookeeper pod in the statefulset
    # size: "2Gi"

  ## Specify a Zookeeper imagePullPolicy
  ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  image:
    PullPolicy: "IfNotPresent"

  ## If the Zookeeper Chart is disabled a URL and port are required to connect
  url: "zookeeper-headless.freeleaps-data-platform.svc.freeleaps.cluster"
  port: 2181

  ## Pod scheduling preferences (by default keep pods within a release on separate nodes).
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## By default we don't set affinity:
  affinity: {}  # Criteria by which pod label-values influence scheduling for zookeeper pods.
  # podAntiAffinity:
  #   requiredDuringSchedulingIgnoredDuringExecution:
  #     - topologyKey: "kubernetes.io/hostname"
  #       labelSelector:
  #         matchLabels:
  #           release: zookeeper