# Copyright © 2017 Amdocs, AT&T, Bell Canada, VMware
# Modifications Copyright © 2018 Intel Corporation
#
# 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:
  commonConfigPrefix: onap-oof-has
  image:
    optf_has: onap/optf-has:2.3.1
  persistence:
    enabled: true

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: oof-has-etcd-root-password
    name: &root-password '{{ include "common.release" . }}-has-etcd-root-password'
    type: password
    password: '{{ .Values.config.etcd.rootPassword }}'
    policy: generate
  - uid: oof-has-etcd-secret
    name: &user-creds '{{ include "common.release" . }}-oof-has-etcd-secret'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.etcd.userCredentialsExternalSecret) . }}'
    login: '{{ .Values.config.etcd.appUser }}'
    password: '{{ .Values.config.etcd.appPassword }}'
    passwordPolicy: generate

pullPolicy: Always
nodePortPrefix: 302
dataRootDir: /dockerdata-nfs
config:
  dbBackend: etcd
  aai:
    serviceName: aai
    port: 80
  msb:
    serviceName: msb-iag
    port: 80
  sdc:
    serviceName: sdc-be
    port: 8080
  cps:
    serviceName: cps-tbdmt
    port: 8080
  dcae:
    serviceName: dcae-slice-analysis-ms
    port: 8080
  etcd:
    serviceName: &etcd-service oof-has-etcd
    port: 2379
    appUser: conductor
#    rootPassword:
#    appPassword:
#    userCredentialsExternalSecret:
# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      memory: 2Gi
      cpu: 999
    requests:
      memory: 1Gi
      cpu: 0.5
  large:
    limits:
      memory: 4Gi
      cpu: 999
    requests:
      memory: 2Gi
      cpu: 1
  unlimited: {}

#component overrides
oof-has-api: &has-config
  enabled: true
  config:
    etcd:
      userCredentialsExternalSecret: *user-creds
      configJobNameOverride: &job-name oof-has-etcd-config
oof-has-controller: *has-config
oof-has-data: *has-config
oof-has-reservation: *has-config
oof-has-solver: *has-config

#etcd subchart configurations
etcd:
  enabled: true
  replicaCount: 3
  nameOverride: &etcd-container oof-has-etcd
  service:
    name: *etcd-service
  persistence:
    mountSubPath: oof/etcd/data
    enabled: true
  flavor: &etcd-flavor large
  resources: &etcd-resources
    small:
      limits:
        cpu: 100m
        memory: 300Mi
      requests:
        cpu: 10m
        memory: 75Mi
    large:
      limits:
        cpu: 200m
        memory: 1Gi
      requests:
        cpu: 50m
        memory: 300Mi
    unlimited: {}

etcd-init:
  enabled: true
  nameOverride: *job-name
  etcd:
    serviceName: *etcd-service
    port : 2379
    containerName: *etcd-container
  config:
    userRootSecret: *root-password
    userCredentialsExternalSecret: *user-creds
    appRole: conductor
    keyPrefix: conductor
  flavor: *etcd-flavor
  resources: *etcd-resources
  serviceAccount:
    nameOverride: *job-name

# Python doesn't support well dollar sign in password
passwordStrengthOverride: basic
