# 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
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image: onap/optf-osdf:1.2.4
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"
  # Credentials of the callback url for SO.
  soUsername: ""   # SO username for call back.
  soPassword: ""   # SO password for call back.
  # Url and credentials for Conductor.
  conductorUrl: http://oof-has-api:8091/v1/plans/
  conductorUsername: admin1
  conductorPassword: plan.15
  conductorPingWaitTime: 60
  conductorMaxRetries: 30
  # versions to be set in HTTP header
  conductorMinorVersion: 0
  # Url and credentials for the Policy Platform
  policyPlatformUrl: https://pdp:8081/pdp/api/getConfig # Policy Dev platform URL
  policyPlatformEnv: TEST # Environment for policy platform
  policyPlatformUsername: testpdp # Policy platform username.
  policyPlatformPassword: alpha123 # Policy platform password.
  policyClientUsername: python # For use with ClientAuth
  policyClientPassword: test # For use with ClientAuth
  # Credentials for the message reader - A placeholder.
  messageReaderHosts: NA
  messageReaderTopic: NA
  messageReaderAafUserId: NA
  messageReaderAafPassword: NA
  # Credentials for the SDC interface - A placeholder.
  sdcUrl: NA
  sdcUsername: NA
  sdcPassword: NA
  sdcONAPInstanceID: NA
  # Credentials for the placement service – Generic.
  osdfPlacementUsername: "test"
  osdfPlacementPassword: "testpwd"
  # Credentials for the OOF placement service – SO.
  osdfPlacementSOUsername: so_test
  osdfPlacementSOPassword: so_testpwd
  # Credentials for the OOF placement service - VFC
  osdfPlacementVFCUsername: vfc_test
  osdfPlacementVFCPassword: vfc_testpwd
  # Credentials for the OOF CM scheduling service – Generic.
  osdfCMSchedulerUsername: test1
  osdfCMSchedulerPassword: testpwd1
  #AAF Authentication
  is_aaf_enabled: False
  aaf_cache_expiry_hrs: 3
  aaf_url: https://aaf-service:8100
  aaf_user_roles:
      - '/api/oof/v1/placement:org.onap.osdf.access|*|read ALL'
  # Secret Management Service from AAF
  aaf_sms_url: https://aaf-sms
  aaf_sms_port: 10443
  aaf_sms_timeout: 30
  secret_domain: osdf
  aaf_ca_certs: /opt/app/ssl_cert/aaf_root_ca.cer
  # config db api
  configDbUrl: http://config.db.url:8080
  configDbUserName: osdf
  configDbPassword: passwd
  configDbGetCellListUrl: 'SDNCConfigDBAPI/getCellList'
  configDbGetNbrListUrl: 'SDNCConfigDBAPI/getNbrList'
  # Credentials for PCIHandler
  pciHMSUsername: ""   # pcihandler username for call back.
  pciHMSPassword: ""   # pcihandler password for call back.
  # Credentials for the OOF PCI Opt service
  osdfPCIOptUsername: pci_test
  osdfPCIOptPassword: pci_testpwd
# 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:
      memory: 2Gi
      cpu: 1000m
    requests:
      memory: 1Gi
      cpu: 500m
  large:
    limits:
      memory: 4Gi
      cpu: 2000m
    requests:
      memory: 2Gi
      cpu: 1000m
  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
  externalPort: 8698
  internalPort: 8699
  nodePort: 48
ingress:
  enabled: false
