################################################################################
#   Copyright (c) 2020 Nordix Foundation.                                      #
#   Copyright © 2020 Samsung Electronics, Modifications                        #
#                                                                              #
#   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.                                             #
################################################################################
# Default values for Policy Management Service.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

global:
  nodePortPrefix: 300
  envsubstImage: dibi/envsubst:1

secrets:
  - uid: controller-secret
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.a1controller.credsExternalSecret) . }}'
    login: '{{ .Values.a1controller.user }}'
    password: '{{ .Values.a1controller.password }}'
    passwordPolicy: required

repository: nexus3.onap.org:10001
image: onap/ccsdk-oran-a1policymanagementservice:1.0.1
userID: 1000 #Should match with image-defined user ID
groupID: 999 #Should match with image-defined group ID
pullPolicy: IfNotPresent
replicaCount: 1

service:
  type: NodePort
  name: a1policymanagement
  both_tls_and_plain: true
  ports:
    - name: api
      port: 8433
      plain_port: 8081
      port_protocol: http
      nodePort: '94'

# SDNC Credentials are used here
a1controller:
  user: admin
  password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

sdncLink: https://sdnc.onap:8443
# Add your own A1 Mediator link. Supports both STD & OSC Version. ex. http://<ip>:<port>
# Alternatively you can also use the A1 simulator available in ORAN. It provides STD  & OSC Version for A1 termination.
# Refer source code & run in docker container : https://gerrit.o-ran-sc.org/r/admin/repos/sim/a1-interface
# Refer it/dep repo for k8's deployment: https://gerrit.o-ran-sc.org/r/admin/repos/it/dep
ricLink:
streamPublish: http://message-router:3904/events/A1-POLICY-AGENT-WRITE
streamSubscribe: http://message-router:3904/events/A1-POLICY-AGENT-READ/users/policy-agent?timeout=15000&limit=100

liveness:
  port: api
  initialDelaySeconds: 60
  periodSeconds: 10
readiness:
  port: api
  initialDelaySeconds: 60
  periodSeconds: 10

#Resource Limit flavor -By Default using small
flavor: small

resources:
  small:
    limits:
      cpu: 2
      memory: 4Gi
    requests:
      cpu: 1
      memory: 2Gi
  large:
    limits:
      cpu: 4
      memory: 8Gi
    requests:
      cpu: 2
      memory: 4Gi
  unlimited: {}
