# 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.4.0-SNAPSHOT-latest
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: 1000
  # 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: 8443
  sdncUsername: SDNC
  sdncPassword: OBF:1gfr1ev31gg7
  sdncHttpProtocol: https
  sdncConnectionTimeout: 5000
  sdncReadTimeout: 1000

# 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

# 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: {}