# 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

#################################################################
# Application configuration defaults.
#################################################################
# application image
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: {}
