# Copyright © 2017 Amdocs, Bell Canada
#
# 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
  repository: nexus3.onap.org:10001
#  readinessRepository: oomk8s
#  readinessImage: readiness-check:2.0.0
#  loggingRepository: docker.elastic.co
#  loggingImage: beats/filebeat:5.5.0

#################################################################
# Application configuration defaults.
#################################################################
# application image
#repository: nexus3.onap.org:10001
repository: nexus3.onap.org:10001
image:  onap/validation:1.3-STAGING-latest
#pullPolicy: Always
pullPolicy: IfNotPresent

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

# application configuration
# Example:
config:
  appDir: /opt/app/validation-service
  configDir: /opt/app/validation-service/appconfig
  configAuthDir: /opt/app/validation-service/appconfig/auth
  configTopicsDir: /opt/app/validation-service/appconfig/topics
  rulesDir: /opt/app/validation-service/bundleconfig/etc/rules/poa-event
  maxHeap: 1024
#  username: myusername
#  password: mypassword

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10
  enabled: false

#Example service definition with external, internal and node ports.
service:
  # The default service name (exposed in the service.yaml) will be the same
  # name as the chart. If the service name needs to be overriden (such as
  # when a subchart is shared), uncomment the value below.
  #name: validation-service

  #Services may use any combination of ports depending on the 'type' of
  #service being defined.
  type: ClusterIP
  externalPort: 9529
  internalPort: 8080
#  nodePort: <replace with unused node port suffix eg. 23>
  # optional port name override - default can be defined in service.yaml
  #portName: http

ingress:
  enabled: false

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  #
  # Example:
  # Configure resource requests and limits
  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
  # Minimum memory for development is 2 CPU cores and 4GB memory
  # Minimum memory for production is 4 CPU cores and 8GB memory
#resources:
#  limits:
#    cpu: 2
#    memory: 4Gi
#  requests:
#    cpu: 2
#    memory: 4Gi
