# Copyright © 2018 Amdocs, Bell Canada , ZTE
# Copyright © 2021 Orange
#
# 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

#################################################################
# AAF part
#################################################################
certInitializer:
  nameOverride: msb-iag-cert-initializer
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  # aafDeployCredsExternalSecret: some secret
  fqdn: msb-iag
  fqi: msb-iag@msb-iag.onap.org
  fqi_namespace: org.onap.msb-iag
  public_fqdn: msb-iag.onap.org
  cadi_longitude: "0.0"
  cadi_latitude: "0.0"
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  aaf_add_config: |
    echo "*** retrieving passwords for certificates"
    export $(/opt/app/aaf_config/bin/agent.sh local showpass \
      {{.Values.fqi}} {{ .Values.fqdn }} | grep '^c')
    if [ -z "$cadi_keystore_password_p12" ]
    then
      echo "  /!\ certificates retrieval failed"
      exit 1
    else
      mkdir -p {{ .Values.credsPath }}/certs
      echo "*** retrieve certificate from pkcs12"
      openssl pkcs12 -in {{ .Values.credsPath }}/{{ .Values.fqi_namespace }}.p12 \
        -out {{ .Values.credsPath }}/certs/cert.crt -nokeys \
        -passin pass:$cadi_keystore_password_p12 \
        -passout pass:$cadi_keystore_password_p12
      echo "*** copy key to relevant place"
      cp {{ .Values.credsPath }}/{{ .Values.fqi_namespace }}.key {{ .Values.credsPath }}/certs/cert.key
      echo "*** change ownership and read/write attributes"
      chown -R 1000 {{ .Values.credsPath }}/certs
      chmod 600 {{ .Values.credsPath }}/certs/cert.crt
      chmod 600 {{ .Values.credsPath }}/certs/cert.key
    fi

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/msb/msb_apigateway:1.2.7
pullPolicy: Always
istioSidecar: true

# application configuration
config:
  routeLabels: "visualRange:1"

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# 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: msb-iag
  externalPort: 80
  internalPort: 80
  nodePort: 80
  externalPortHttps: 443
  internalPortHttps: 443
  nodePortHttps: 83

ingress:
  enabled: false
  service:
    - baseaddr: "msbiag"
      name: "msb-iag"
      port: 443
  config:
    ssl: "redirect"

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 100m
      memory: 400Mi
    requests:
      cpu: 50m
      memory: 200Mi
  large:
    limits:
      cpu: 200m
      memory: 800Mi
    requests:
      cpu: 100m
      memory: 400Mi
  unlimited: {}
