# 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-sdnc-context-builder:1.5.1
pullPolicy: Always

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

# application configuration
# Example:
config:
  # AAI Rest Client Connection
  aaiServiceName: aai
  aaiPort: 8443
  aaiUsername: AAI
  aaiPassword: OBF:1gfr1ev31gg7
  aaiHttpProtocol: https
  aaiAuthentication: basic_auth
  aaiTrustStorePath: n/a
  aaiKeyStorePath: n/a
  aaiKeyStorePassword: n/a
  aaiConnectionTimeout: 5000
  aaiReadTimeout: 5000
  # HTTP Basic Authorization credentials for Rest Service API
  aaiHttpUserId: admin
  aaiHttpPassword: OBF:1u2a1toa1w8v1tok1u30
  sdncCtxBuilderUserId: admin
  sdncCtxBuilderPassword: OBF:1u2a1toa1w8v1tok1u30

  # SDNC Rest Client Connection
  sdncServiceName: sdnc
  sdncPort: 8282
  sdncUsername: admin
  sdncPassword: OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp
  sdncHttpProtocol: http
  sdncConnectionTimeout: 5000
  sdncReadTimeout: 5000

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 60
  periodSeconds: 30

#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

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1
      memory: 800Mi
    requests:
      cpu: 100m
      memory: 400Mi
  large:
    limits:
      cpu: 2
      memory: 1600Mi
    requests:
      cpu: 200m
      memory: 800Mi
  unlimited: {}
