# Copyright © 2017 Amdocs, Bell Canada
#
# 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: # global defaults
  nodePortPrefix: 302
  ubuntuInitRepository: registry.hub.docker.com
  persistence: {}

# application image
repository: nexus3.onap.org:10001
image: onap/testsuite:1.8.0
pullPolicy: Always

ubuntuInitImage: oomk8s/ubuntu-init:2.0.0

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

#################################################################
# Application configuration defaults.
#################################################################
config:
  useIngressHost:
      enabled: false
      aaf_service:
        enabled: true
        https: true
        hostname: aafservice
      aai:
        enabled: true
        https: true
        hostname: aai.api.sparky
      appc:
        enabled: true
        https: true
        hostname: appc.api
      appc_cdt:
        enabled: true
        https: true
        hostname: appccdt
      clamp:
        enabled: true
        https: true
      cli:
        enabled: true
        https: true
      dcae_healthcheck:
        enabled: false
      dcae_ves_collector:
        enabled: false
      dcae_ves_colector_https:
        enabled: false
        https: true
      dmaap_dr_prov:
        enabled: true
        https: true
        hostname: dmaapdrprov
      dmaap_dr_node:
        enabled: true
        https: true
        hostname: dmaapdrnode
      log_es:
        enabled: false
      log_kibana:
        enabled: false
      log_ls_http:
        enabled: false
      pomba_aaictxbuilder:
        enabled: false
      pomba_sdctxbuilder:
        enabled: false
      pomba_networkdiscoveryctxbuilder:
        enabled: false
      pomba_servicedecomposition:
        enabled: false
      pomba_sdncctxbuilder:
        enabled: false
      pomba_networkdiscovery:
        enabled: false
      pomba_validation_service:
        enabled: false
      pomba_kibana:
        enabled: false
      pomba_es:
        enabled: false
      pomba_contextaggregator:
        enabled: false
      message_router:
        enabled: false
        https: true
      dmaap_bc:
        enabled: true
        https: true
        hostname: dmaapbc
      music:
        enabled: false
        https: true
      nbi:
        enabled: false
        https: true
      oof_has_api:
        enabled: true
        https: true
      oof_osdf:
        enabled: true
        https: true
        hostname: oofsdf
      oof_cmso:
        enabled: false
        https: true
      msb_iag:
        enabled: false
      pdp:
        enabled: false
      drools:
        enabled: false
      policy_api:
        enabled: false
      policy_pap:
        enabled: false
      policy_distribution:
        enabled: false
      policy_xacml_pdp:
        enabled: false
      policy_apex_pdp:
        enabled: false
      policy_distribution:
        enabled: false
      portal_app:
        enabled: false
        https: true
        hostname: portal.api
      sdc_be:
        enabled: true
        https: true
      sdc_onboarding_be:
        enabled: false
        https: true
      sdc_fe:
        enabled: true
        hostname: sdc.api.fe
        https: true
      sdc_dcae_be:
        enabled: false
        https: true
      sdnc:
        enabled: false
        https: true
      sdnc_portal:
        enabled: false
        https: true
      so:
        enabled: true
        hostname: so.api
      so_sdc_controller:
        enabled: false
      so_pbmn_infra:
        enabled: false
      so_catalog_db_adapter:
        enabled: false
      so_openstack_adapter:
        enabled: false
      so_request_db_adapter:
        enabled: false
      so_sdnc_adapter:
        enabled: false
      so_vfc_adapter:
        enabled: false
      so_vnfm_adapter:
        enabled: false
      so_nssmf_adapter:
        enabled: false
      vid:
        enabled: false
      refrepo:
        enabled: true
        https: true
      cds_blueprints_processor_http:
        enabled: true
        hostname: blueprintsprocessorhttp
      dcae_hv_ves_collector:
        enabled: false
      message_router_kafka:
        enabled: false
      inventory:
        enabled: false
        https: true
      deployment-handler:
        enabled: false
        https: true
      aaf_sms:
        enabled: false
        https: true

# for access to test logs
  robotWebUser: "test"
  robotWebPassword: "test"

# openStackEncryptedPasswordHere should match the encrypted string used in SO and APPC and overridden per environment
  openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
  openStackSoEncryptedPassword: "SAME_STRING_AS_SO_JAVA_ENCRYPTED_PASSWORD"

# Demo configuration
# Nexus demo artifact version.  Maps to GLOBAL_INJECTED_ARTIFACTS_VERSION
#    1.6.0 Frankfurt change or override for your release to match demo:vnfs/vFW/scripts/pom.xml version
demoArtifactsVersion: "1.7.0"
# Nexus demo artifact URL.
demoArtifactsRepoUrl: "https://nexus.onap.org/content/repositories/releases"
# Openstack medium sized flavour name.  Maps GLOBAL_INJECTED_VM_FLAVOR
openStackFlavourMedium: "m1.medium"

#################  Openstack .RC Parameters ################################333
# KEYSTONE Version 3  Required for Rocky and beyond
# Openstack Keystone API version. Valid values are [ v2.0, v3 ]. Maps to GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION
openStackKeystoneAPIVersion: "v2.0"

# OS_AUTH_URL without the /v3 or /v2.0 from the openstack .RC file
# Openstack keystone URL.  Maps to GLOBAL_INJECTED_KEYSTONE
openStackKeyStoneUrl: "http://1.2.3.4:5000"

# OS_PROJECT_ID from the openstack .RC file
# Openstack tenant UUID where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_TENANT_ID
openStackTenantId: "47899782ed714295b1151681fdfd51f5"

#  OS_PROJECT_NAME from the openstack .RC file
# Project name of Openstack where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_PROJECT_NAME
openStackProjectName: "onap"

# OS_USERNAME from the openstack .RC file
# username for Openstack tenant where VNFs will be spawned.  Maps to GLOBAL_INJECTED_OPENSTACK_USERNAME
openStackUserName: "tenantUsername"

#  OS_PROJECT_DOMAIN_ID from the openstack .RC file
#  in some environments it is a string but in other environmens it may be a numeric
# Domain id of openstack where VNFs will be deployed. Maps to GLOBAL_INJECTED_OPENSTACK_DOMAIN_ID
openStackDomainId: "default"

#  OS_USER_DOMAIN from the openstack .RC file
# Use Domain of openstack where VNFs will be deployed. Maps to GLOBAL_INJECTED_OPENSTACK_USER_DOMAIN
openStackUserDomain:  "Default"


# UUID of the Openstack network that can assign floating ips.  Maps to GLOBAL_INJECTED_PUBLIC_NET_ID
openStackPublicNetId: "e8f51958045716781ffc"
openStackPublicNetworkName: "public"
# Openstack region.  Maps to GLOBAL_INJECTED_REGION
openStackRegion: "RegionOne"


# Values for second cloud instante for VNF instantiatioen testing and keystone v3
openStackRegionRegionThree: "RegionThree"
openStackKeyStoneUrlRegionThree: "http://1.2.3.4:5000"
openStackKeystoneAPIVersionRegionThree: "v3"
openStackUserNameRegionThree: "demo"
# this is the java encrypted password that is needed for SO
openSackMsoEncryptdPasswordRegionThree: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
openStackTenantIdRegionThree: "3583253e932845a09cd4c8ca2f31d095"
openStackProjectNameRegionThree: "Integration-SB-RegionThree"
openStackDomainIdRegionThree: "Default"
#
# Openstack glance image name for Ubuntu 14.  Maps to GLOBAL_INJECTED_UBUNTU_1404_IMAGE
ubuntu14Image: "Ubuntu_14_trusty"
# Openstack glance image name for Ubuntu 16.  Maps to GLOBAL_INJECTED_UBUNTU_1604_IMAGE
ubuntu16Image: "Ubuntu_16_xenial"
# DANOS image and flavor references
danosImage: "danos-ves-image"
danosFlavor: "danos"
# GLOBAL_INJECTED_SCRIPT_VERSION.  Maps to GLOBAL_INJECTED_SCRIPT_VERSION
#    1.6.0 Frankfurt change or override for your release to match demo:vnfs/vFW/scripts/pom.xml version
scriptVersion: "1.7.0"
# Openstack network to which VNFs will bind their primary (first) interface.  Maps to GLOBAL_INJECTED_NETWORK
openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc"
# Openstack security group for instantiating VNFs
openStackSecurityGroup: "onap_sg"
# SDNC Preload configuration
# Openstack subnet UUID for the network defined by openStackPrivateNetId.  Maps to onap_private_subnet_id
openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc"
# CIDR notation for the Openstack private network where VNFs will be spawned.  Maps to onap_private_net_cidr
openStackPrivateNetCidr: "10.0.0.0/8"
# The first 2 octets of the private Openstack subnet where VNFs will be spawned.
# Needed because sdnc preload templates hardcodes things like this 10.0.${ecompnet}.X
openStackOamNetworkCidrPrefix: "10.0"
# If you network allowed a /16 for the ONAP OAM then leave blank and robot will assign
# a random variable to be able to instantiate multple vFWCL, vLB etc in your environemtn
# if you only provided a /24 then provide the 3rd octet you use for your /24
openStackOamNetwork3rdOctet: ""
# VID protocol/port until Selenium issue with SSL resolved
# https/8443 vs http/8080
vidServerProtocol:  "https"
vidServerPort:  "8443"
# Override with Pub Key for access to VNF
vnfPubKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh imported-openssh-key"
# Override with Private Key for access to VNF
vnfPrivateKey: "onap_dev.yaml"
# Override with DCAE VES Collector external IP
dcaeCollectorIp: "FILL_IN_WITH_DCAE_VES_COLLECTOR_IP"
# kubernetes external IP for Portal GUI tests
kubernetesExternalIp: "10.0.0.14"


# Credentials for ONAP Component
# AAF
aafUsername: "demo@people.osaaf.org"
aafPassword: "demo123456!"
# AAI
aaiUsername: "aai@aai.onap.org"
aaiPassword: "demo123456!"
# APPC
appcUsername: "appc@appc.onap.org"
appcPassword: "demo123456!"
# DCAE
dcaeUsername: "dcae@dcae.onap.org"
dcaePassword: "demo123456!"
dcaeMsUsername: "dcae@dcae.onap.org"
dcaeMsPassword: "demo123456!"
# DROOLS
droolsUsername: "demo@people.osaaf.org"
droolsPassword: "demo123456!"
# OOF
oofCmsoUsername: "oof@oof.onap.org"
oofCmsoPassword: "demo123456!"
# POLICY
policyAuth: "dGVzdHBkcDphbHBoYTEyMw=="
policyClientAuth: "cHl0aG9uOnRlc3Q="
policyUsername: "demo@people.osaaf.org"
policyPassword: "demo123456!"
policyComponentUsername: "healthcheck"
policyComponentPassword: "zb!XztG34"
policyAdminUsername: "policyadmin"
policyAdminPassword: "zb!XztG34"
# PORTAL
portalUsername: "demo"
portalPassword: "Kp8bJ4SXszM0WXlhak3eHlcse"
# SO
soUsername: "InfraPortalClient"
soPassword: "password1$"
soCatdbUsername: "bpel"
soCatdbPassword: "password1$"
# SDNC
sdncUsername: "admin"
sdncPassword: "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
# VID
vidUsername: "demo"
vidPassword: "Kp8bJ4SXszM0WX"
vidHealthUsername: "Default"
vidHealthPassword: "AppPassword!1"
# DMAAP BC
bcUsername: "dmaap-bc@dmaap-bc.onap.org"
bcPassword: "demo123456!"
# DMAAP KAFKA JAAS
kafkaJaasUsername: "admin"
kafkaJaasPassword: "admin_secret"

#OOF
oofUsername: "oof@oof.onap.org"
oofPassword: "demo123456!"
cmsoUsername: "oof@oof.onap.org"
cmsoPassword: "demo123456!"
oofOsdfPciOptUsername: "oof@oof.onap.org"
oofOsdfPciOptPassword: "demo123456!"
oofHomingUsername: "admin1"
oofHomingPassword: "plan.15"

#K8S chart repository - ChartMuseum
k8sChartRepoUsername: "onapinitializer"
k8sChartRepoPassword: "demo123456!"


# 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: 2000m
      memory: 4Gi
    requests:
      cpu: 500m
      memory: 1Gi
  large:
    limits:
      cpu: 4000m
      memory: 8Gi
    requests:
      cpu: 1000m
      memory: 2Gi
  unlimited: {}

# 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: 180
  periodSeconds: 10

service:
  name: robot
  type: NodePort
  portName: httpd
  externalPort: 443
  internalPort: 443
  nodePort: "09"

ingress:
  enabled: false
  service:
    - baseaddr: "robot.api"
      name: "robot"
      port: 443
  config:
    ssl: "redirect"


## Persist data to a persitent volume
persistence:
  enabled: true

  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:
  volumeReclaimPolicy: Retain

  ## database data Persistent Volume Storage Class
  ## If defined, storageClassName: <storageClass>
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClassName spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # storageClass: "-"
  accessMode: ReadWriteOnce
  size: 2Gi
  mountPath: /dockerdata-nfs
  mountSubPath: robot/logs
