# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T, ZTE
#
# 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
  aafEnabled: true

#################################################################
# AAF Part
#################################################################
certInitializer:
  nameOverride: sdc-fe-cert-init
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  fqdn: sdc
  fqi: sdc@sdc.onap.org
  public_fqdn: sdc.onap.org
  cadi_longitude: "0.0"
  cadi_latitude: "0.0"
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  addconfig: true
  keystoreFile: "org.onap.sdc.p12"
  truststoreFile: "org.onap.sdc.trust.jks"
  permission_user: 352070
  permission_group: 35953
  aaf_add_config: |
    echo "cadi_keystore_password_p12=$cadi_keystore_password_p12" > {{ .Values.credsPath }}/mycreds.prop
    echo "cadi_truststore_password=$cadi_truststore_password" >> {{ .Values.credsPath }}/mycreds.prop

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/sdc-frontend:1.9.5
pullPolicy: Always

config:
  javaOptions: "-Xmx256m -Xms256m"
  plugins:
    dcae_discovery_url:
      https: "https://sdc-dcae-fe:9444/dcaed/#/home"
      http: "http://sdc-dcae-fe:8183/dcaed/#/home"
    dcae_source_url: "https://sdc.dcae.plugin.simpledemo.onap.org:30264/dcaed/#/home"
    dcae_dt_discovery_url:
      https: "https://sdc-dcae-dt:9446/dcae/#/dcae/home"
      http: "http://sdc-dcae-dt:8186/dcae/#/dcae/home"
    dcae_dt_source_url: "https://sdc.dcae.plugin.simpledemo.onap.org:30266/dcae/#/dcae/home"
    workflow_discovery_url:
      https: "https://sdc-wfd-fe:8443/workflows"
      http: "http://sdc-wfd-fe:8080/workflows"
    workflow_source_url: "https://sdc.workflow.plugin.simpledemo.onap.org:30256/workflows/"

#environment file
env:
  name: AUTO

security:
  disableHttp: true

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 1
  periodSeconds: 10
  timeoutSeconds: 15
  successThreshold: 1
  failureThreshold: 3
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 1
  periodSeconds: 10
  timeoutSeconds: 15
  successThreshold: 1
  failureThreshold: 3

startup:
  initialDelaySeconds: 10
  periodSeconds: 10
  timeoutSeconds: 15
  successThreshold: 1
  failureThreshold: 60

service:
  #Example service definition with external, internal and node ports.
  #Services may use any combination of ports depending on the 'type' of
  #service being defined.
  type: NodePort
  name: sdc-fe
  portName: http
  nodePort: "06"
  internalPort: 8181
  externalPort: 8181
  nodePort2: "07"
  internalPort2: 9443
  externalPort2: 9443

ingress:
  enabled: false
  service:
    - baseaddr: "sdc.api.fe"
      name: "sdc-fe"
      port: 9443
  config:
    ssl: "redirect"

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 500m
      memory: 2Gi
    requests:
      cpu: 40m
      memory: 1Gi
  large:
    limits:
      cpu: 1
      memory: 4Gi
    requests:
      cpu: 80m
      memory: 2Gi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: sdc-fe
  roles:
    - read

#Log configuration
log:
  path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
