# 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.11.1
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
      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
      message_router:
        enabled: false
        https: false
      dmaap_bc:
        enabled: true
        https: false
        hostname: dmaapbc
      dmaap_dr_prov:
        enabled: true
        https: false
        hostname: dmaapdrprov
      dmaap_dr_node:
        enabled: true
        https: false
        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
      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
      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
      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!"
# SDC
sdcUsername: "beep"
sdcPassword: "boop"
# 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!"

# STRIMZI KAFKA
strimziKafkaUsername: "strimzi-kafka-admin"

#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: ClusterIP
  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

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