# Default values for sparky-be.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global: # global defaults
  nodePortPrefix: 302
  aai:
    serviceName: aai
  aaiElasticsearch:
    serviceName: aai-elasticsearch
  gizmo:
    serviceName: aai-gizmo
  searchData:
    serviceName: aai-search-data

# application image
repository: nexus3.onap.org:10001
image: onap/sparky-be:1.2.1
pullPolicy: Always
restartPolicy: Always

dockerhubRepository: registry.hub.docker.com
ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
# application configuration
config:
  elasticsearchHttpPort: 9200
  keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
  keystoreAliasPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
  gerritBranch: 2.0.0-ONAP
  gerritProject: http://gerrit.onap.org/r/aai/test-config
  portalUsername: aaiui
  portalPassword: 1t2v1vfv1unz1vgz1t3b

# ONAP Cookie Processing - During initial development, the following flag, if true, will
# prevent the portal interface's login processing from searching for a user
# specific cookie, and will instead allow passage if a valid session cookie is discovered.
  portalOnapEnabled: true
#

# override chart name (sparky-be) to share a common namespace
# suffix with parent chart (aai)
nsSuffix: aai


# 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

service:
  type: NodePort
  portName: aai-sparky-be
  internalPort: 9517
  nodePort: 20
  internalPort2: 8000

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
