# Copyright © 2017 Amdocs, AT&T, Bell Canada, VMware
#
# 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
  persistence: {}

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/optf-osdf:3.0.8
pullPolicy: Always

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

# application configuration
config:
  msbgateway: msb-iag
  msbPort: 80
  placementVersioningEnabled: True
  # Placement API latest version numbers to be set in HTTP header
  placementMajorVersion: "1"
  placementMinorVersion: "0"
  placementPatchVersion: "0"
  # Placement API default version numbers to be set in HTTP header
  placementDefaultMajorVersion: "1"
  placementDefaultMinorVersion: "0"
  placementDefaultPatchVersion: "0"

  # Url and credentials for Conductor.
  conductorUrl:
    http: http://oof-has-api:8091/v1/plans/
  conductorPingWaitTime: 10
  conductorMaxRetries: 30
  # versions to be set in HTTP header
  conductorMinorVersion: 0
  # Url and credentials for the Policy Platform
  policyPlatformUrl:
    http: http://policy-xacml-pdp:8080/policy/pdpx/v1/decision
  policyPlatformEnv: TEST # Environment for policy platform
  # Credentials for the message reader - A placeholder.
  messageReaderHosts: NA
  messageReaderTopic: NA
  # Credentials for the SDC interface - A placeholder.
  sdcUrl: NA
  sdcONAPInstanceID: NA

  configClientType: cps

  # config db api
  configDbUrl: http://configdb:8080
  configDbGetCellListUrl: 'api/sdnc-config-db/v3/getCellList'
  configDbGetNbrListUrl: 'api/sdnc-config-db/v3/getNbrList'

  # cps api
  cps:
    url: cps-tbdmt:8080/execute
    cellListUrl: 'ran-network/getCellList'
    nbrListUrl: 'ran-network/getNbrList'

  #aai api
  aaiUrl:
    http: http://aai:80
  aaiGetLinksUrl: /aai/v16/network/logical-links
  aaiServiceInstanceUrl : /aai/v20/nodes/service-instances/service-instance/
  aaiGetControllersUrl: /aai/v19/external-system/esr-thirdparty-sdnc-list
  controllerQueryUrl: /aai/v19/query?format=resource
  aaiGetInterDomainLinksUrl: /aai/v19/network/logical-links?link-type=inter-domain&operational-status=up
  #des api
  desUrl:
    http: http://des.url:8080
  desApiPath: /datalake/v1/exposure/
  desUsername: ''
  desPassword: ''
# default number of instances
replicaCount: 1
nodeSelector: {}
affinity: {}
# Resource Limit flavor -By Default using small
flavor: small

# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1
      memory: 1Gi
    requests:
      cpu: 0.5
      memory: 1Gi
  large:
    limits:
      cpu: 2
      memory: 2Gi
    requests:
      cpu: 1
      memory: 2Gi

  unlimited: {}
# 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
service:
  type: NodePort
  name: oof-osdf
  internalPort: 8699
  ports:
    - name: http
      port: 8698
      nodePort: '48'
ingress:
  enabled: false
  service:
    - baseaddr: "oof-osdf-api"
      name: "oof-osdf"
      port: 8698
  config:
    ssl: "redirect"

#component overrides

oof-has:
  enabled: true

readinessCheck:
  wait_for:
    - policy-xacml-pdp

#Pods Service Account
serviceAccount:
  nameOverride: oof
  roles:
    - read
