# Copyright 2018 Intel Corporation, Inc
#
# Licensed 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.

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  busyboxRepository: registry.hub.docker.com
  busyboxImage: library/busybox:latest
  alertmanager:
    enabled: true
  grafana:
    enabled: true
  configmapReload:
    image:
      repository: jimmidyson/configmap-reload
      tag: v0.2.2
  persistence: {}

pullPolicy: Always

# flag to enable debugging - application support required
debugEnabled: false

#Server Configuration
image:
  repository: prom/prometheus
  tag: v2.4.0

server:
  enableAdminApi: false

persistence:
  enabled: true
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  size: 8Gi
  mountPath: /dockerdata-nfs
  mountSubPath: multicloud/prometheus/server
  containerMountPath: /prometheus/data

#Service configuration for this chart
service:
  type: NodePort
  name: multicloud-prometheus
  portName: multicloud-prometheus
  internalPort: 9090
  nodePort: 45

# probe configuration parameters
liveness:
  initialDelaySeconds: 10
  periodSeconds: 30
  timeoutSeconds: 30
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 10
  periodSeconds: 30
  timeoutSeconds: 30
  enabled: true

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

ingress:
  enabled: false

flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1
      memory: 4Gi
    requests:
      cpu: 10m
      memory: 1Gi
  large:
    limits:
      cpu: 2
      memory: 8Gi
    requests:
      cpu: 20m
      memory: 2Gi
  unlimited: {}
