# Copyright 2019 Intel Corporation, Inc
#
# 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:
  nodePortPrefixExt: 304
  persistence: {}
  artifactImage: onap/multicloud/framework-artifactbroker:1.9.0

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/multicloud/k8s:0.10.1
pullPolicy: Always

# Strimzi KafkaUser config
kafkaUser:
  acls:
    - name: multicloud
      type: group
      operations: [Read]
    - name: SDC-DISTR
      type: topic
      patternType: prefix
      operations: [Read, Write]

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

# application configuration is via config files

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 30

service:
  type: NodePort
  internalPort: 9015
  ports:
    - name: http
      port: 9015
      nodePort: '98'
  annotations:
    msb.onap.org/service-info: |
      {{ if .Values.global.msbEnabled -}}[
        {
          "serviceName": "multicloud-k8s",
          "version": "v1",
          "url": "/",
          "protocol": "REST",
          "port": "{{ .Values.service.internalPort }}",
          "enable_ssl": false,
          "visualRange": "1"
        }
      ]{{ end }}

ingress:
  enabled: false
  service:
    - baseaddr: 'multicloud-k8s-api'
      name: 'multicloud-k8s'
      port: 9015

#Mongo chart overrides for k8splugin
mongo:
  nameOverride: multicloud-k8s-mongo
  service:
    name: multicloud-k8s-mongo
    internalPort: 27017
  nfsprovisionerPrefix: multicloud-k8s
  sdnctlPrefix: multicloud-k8s
  persistence:
    mountSubPath: multicloud-k8s/mongo/data
    enabled: true
  disableNfsProvisioner: true
  flavor: &storage_flavor large
  resources: &storage_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 chart overrides for k8splugin
etcd:
  nameOverride: multicloud-k8s-etcd
  service:
    name: multicloud-k8s-etcd
    clientPortName: tcp-etcd-client
    peerPortName: tcp-etcd-server
  persistence:
    mountSubPath: multicloud-k8s/etcd/data
    enabled: true
  flavor: *storage_flavor
  resources: *storage_resources

# No persistence right now as we rely on Mongo to handle that
persistence:
  enabled: false
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  size: 1Gi
  mountPath: /dockerdata-nfs
  mountSubPath: multicloud-k8s/data

artifactbroker:
  internalPort: 9014

# Configure resource requests and limits
flavor: large
resources:
  small:
    limits:
      cpu: 200m
      memory: 500Mi
    requests:
      cpu: 10m
      memory: 10Mi
  large:
    limits:
      cpu: 400m
      memory: 1Gi
    requests:
      cpu: 10m
      memory: 100Mi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: multicloud-k8s
  roles:
    - read
