#============LICENSE_START========================================================
#=================================================================================
# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# 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
  readinessImage: onap/oom/readiness:3.0.1

config:
  dashboardURL: https://inventory:8080/dcae-service-types
  # The dashboard credentials aren't actually used, since
  # the inventory API and the dashboard pass-through to the
  # inventory API don't require authentication.
  # Since the password doesn't matter, we let it be
  # generated by the common secret template.
  dashboardUser: nobody
  #dashboardPassword: doesntmatter
  mrTopicURL: http://message-router:3904/events
  importCloudify: https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml
  importK8S: plugin:k8splugin?version=3.4.2
  importPostgres: plugin:pgaas?version=1.3.0
  importClamp: plugin:clamppolicyplugin?version=1.1.0
  importDMaaP: plugin:dmaap?version=1.5.0
  useDmaapPlugin: false

secrets:
  - uid: "dashsecret"
    type: basicAuth
    login: '{{ .Values.config.dashboardUser }}'
    password: '{{ .Values.config.dashboardPassword }}'
    passwordPolicy: generate

service:
  type: ClusterIP
  name: dcaemod-runtime-api
  ports:
    - name: http
      port: 9090

# probe configuration parameters
liveness:
  initialDelaySeconds: 60
  periodSeconds: 30
  port: http
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 60
  periodSeconds: 20
  port: http
  # Should have a proper readiness endpoint or script

# application image
repository: nexus3.onap.org:10001
image: onap/org.onap.dcaegen2.platform.mod.runtime-web:1.1.0

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

