# Copyright © 2018 Amdocs
#
# 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

#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image:  onap/pomba-aai-context-builder:latest
pullPolicy: Always

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

# application configuration
# Example:
config:
  aaiServiceName: aai
  aaiPort: 8443
  aaiUsername: AAI
  aaiPassword: OBF:1gfr1ev31gg7
  aaiHttpProtocol: https
  aaiConnectionTimeout: 5000
  aaiReadTimeout: 1000
  # HTTP Basic Authorization credentials for Rest Service API
  httpUserId: admin
  httpPassword: OBF:1u2a1toa1w8v1tok1u30


# 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: true

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10

#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: <service-name-override>

  #Services may use any combination of ports depending on the 'type' of
  #service being defined.
  type: ClusterIP
  externalPort: 9530
  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
