# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T
#
# 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: dmaap-mr-cert-initializer
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  # aafDeployCredsExternalSecret: some secret
  fqdn: dmaap-mr
  fqi: dmaapmr@mr.dmaap.onap.org
  public_fqdn: mr.dmaap.onap.org
  cadi_longitude: "-122.26147"
  cadi_latitude: "37.78187"
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  appMountPath: /appl/dmaapMR1/bundleconfig/etc/sysprops
  fqi_namespace: org.onap.dmaap.mr
  aaf_add_config: |
    cd {{ .Values.credsPath }}
    echo "*** change jks password into shell safe one"
    export KEYSTORE_PASSWD=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w64 | head -n1)
    keytool -storepasswd -new "${KEYSTORE_PASSWD}" \
      -storepass "${cadi_keystore_password_jks}" \
      -keystore {{ .Values.fqi_namespace }}.jks
    echo "*** set key password as same password as jks keystore password"
      keytool -keypasswd -new "${KEYSTORE_PASSWD}" \
        -keystore {{ .Values.fqi_namespace }}.jks \
        -keypass "${cadi_keystore_password_jks}" \
        -storepass "${KEYSTORE_PASSWD}" -alias {{ .Values.fqi }}
    echo "*** store the passwords"
    echo "KEYSTORE_PASSWORD=${KEYSTORE_PASSWD}" > mycreds.prop
    echo "KEYSTORE_PASSWORD_P12=${cadi_keystore_password_p12}" >> mycreds.prop
    echo "TRUSTSTORE_PASSWORD=${cadi_truststore_password}" >> mycreds.prop
    echo "*** give ownership of files to the user"
    chown -R 1000 .

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/dmaap/dmaap-mr:1.3.0
pullPolicy: Always

kafka:
  name: message-router-kafka
  port: 9092
zookeeper:
  name: message-router-zookeeper
  port: 2181

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

# application configuration
config: {}

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 70
  periodSeconds: 10
  timeoutSeconds: 1
  port: api

service:
  type: NodePort
  name: message-router
  both_tls_and_plain: true
  msb:
    - port: 3904
      url: "/"
      version: "v1"
      protocol: "REST"
      visualRange: "1"
  ports:
    - name: api
      port: 3905
      plain_port: 3904
      port_protocol: http
      nodePort: 26

prometheus:
  jmx:
    enabled: false
    image: solsson/kafka-prometheus-jmx-exporter@sha256
    imageTag: 6f82e2b0464f50da8104acd7363fb9b995001ddff77d248379f8788e78946143
    port: 5556
    targetPort: 5555

ingress:
  enabled: false
  service:
    - baseaddr: "mr.api"
      name: "message-router"
      port: 3905
  config:
    ssl: "redirect"


# 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: {}

#Pods Service Account
serviceAccount:
  nameOverride: message-router
  roles:
    - read
