# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018-2020 AT&T
#
# 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
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  ubuntuImage: ubuntu:16.04

#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image: onap/policy-pdpd-cl:1.6.0
pullPolicy: Always

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

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 60
  periodSeconds: 10

service:
  type: ClusterIP
  name: drools
  portName: drools
  internalPort: 6969
  externalPort: 6969
  nodePort: 17
  internalPort2: 9696
  externalPort2: 9696
  nodePort2: 21

ingress:
  enabled: false

# Default installation values to be overridden

server:
  jvmOpts: -server -Xms1024m -Xmx2048m

aaf:
  enabled: "false"

keystore:
  password: Pol1cy_0nap

truststore:
  password: Pol1cy_0nap

telemetry:
  user: demo@people.osaaf.org
  password: demo123456!

nexus:
  user: admin
  password: admin123
  port: 8081
  offline: true

db:
  user: policy_user
  password: policy_user

pap:
  user: healthcheck
  password: zb!XztG34

pdp:
  user: healthcheck
  password: zb!XztG34

aai:
  user: policy@policy.onap.org
  password: demo123456!

so:
  user: InfraPortalClient
  password: password1$

vfc:
  user:
  password:

sdnc:
  user: admin
  password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

dmaap:
  brmsgw:
    key:
    password:
  pap:
    key:
    password:

cds:
  grpc:
    user: ccsdkapps
    password: ccsdkapps
    svcName: cds-blueprints-processor-grpc
    svcPort: 9111

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