# ============= LICENSE_START ================================================
# ============================================================================
# Copyright (C) 2021 Wipro Limited.
# ============================================================================
# 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.
# ============= LICENSE_END ==================================================

#################################################################
# Global Configuration Defaults.
#################################################################
global:
  nodePortPrefix: 302
  nodePortPrefixExt: 304
  centralizedLoggingEnabled: true

#################################################################
# Filebeat Configuration Defaults.
#
#################################################################
filebeatConfig:
  logstashServiceName: log-ls
  logstashPort: 5044

#################################################################
# Secrets Configuration.
#################################################################
secrets:
  - uid: &aafCredsUID aafcreds
    type: basicAuth
    login: '{{ .Values.aafCreds.identity }}'
    password: '{{ .Values.aafCreds.password }}'
    passwordPolicy: required
  - uid: &pgUserCredsSecretUid pg-user-creds
    externalSecret: '{{ include "common.release" . }}-datalake-pg-user-creds'
    type: basicAuth
    login: '{{ .Values.postgres.config.pgUserName }}'
    passwordPolicy: required

################################aafcreds#################################
# InitContainer Images.
#################################################################
tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.1.1

#################################################################
# Application Configuration Defaults.
#################################################################
# Application Image
image: onap/org.onap.dcaegen2.services.datalake.exposure.service:1.1.1

# Log directory where logging sidecar should look for log files
# if path is set to null sidecar won't be deployed in spite of
# global.centralizedLoggingEnabled setting.
log:
  path: /var/log/ONAP/dcaegen2/services/datalake
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'

# Directory where TLS certs should be stored
# if absent, no certs will be retrieved and stored
certDirectory: /opt/app/datalake/etc/cert/

# TLS role -- set to true if microservice acts as server
# If true, an init container will retrieve a server cert
# and key from AAF and mount them in certDirectory.
tlsServer: true

# Dependencies
readinessCheck:
  wait_for:
    - aaf-cm
    - dcae-datalake-feeder

# Probe Configuration
readiness:
  initialDelaySeconds: 90
  periodSeconds: 90
  timeoutSeconds: 10
  path: /datalake/v1/exposure
  scheme: HTTP
  port: 1681

# Service Configuration
service:
  type: ClusterIP
  name: dl-des
  ports:
    - name: http
      port: 1681
      port_protocol: http

# AAF Credentials
aafCreds:
  identity: dcae@dcae.onap.org
  password: demo123456!

#postgres configuration
postgres:
  config:
    pgUserName: datalake

# Initial Application Configuration
applicationConfig:
  PRESTO_HOST: dl-presto
  PRESTO_PORT: 9000
  PRESTO_USER: user
  PRESTO_PASSWORD: test
  HOSTNAME: dl-des

applicationEnv:
  PG_HOST: dcae-datalake-pg-primary
  PG_PORT: '5432'
  PG_USER:
    secretUid: *pgUserCredsSecretUid
    key: login
  PG_PASSWORD:
    secretUid: *pgUserCredsSecretUid
    key: password
  PG_DB: datalake
  PRESTO_HOST: dl-presto
  PRESTO_PORT: '9000'
  PRESTO_USER: user
  PRESTO_PASSWORD: test

# Resource Limit Flavor -By Default Using Small
flavor: small
# Segregation for Different Environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1
      memory: 1Gi
    requests:
      cpu: 1
      memory: 1Gi
  large:
    limits:
      cpu: 2
      memory: 2Gi
    requests:
      cpu: 2
      memory: 2Gi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: dcae-datalake-des
  roles:
    - read
