# Copyright © 2017 Amdocs, Bell Canada
# Modifications © 2020 AT&T, Orange
#
# 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:
  nodePortPrefix: 302
  # Readiness image
  readinessImage: onap/oom/readiness:3.0.1
  # Ubuntu Init image
  ubuntuInitRepository: docker.io
  ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
  # Logging image
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  # BusyBox image
  busyboxRepository: docker.io
  busyboxImage: library/busybox:1.31
  persistence:
    enabled: true
  # Standard OOM
  pullPolicy: "Always"
  repository: "nexus3.onap.org:10001"

flavor: small

#################################################################
# Application configuration defaults.
#################################################################
# application configuration
replicaCount: 1

nodeSelector: {}

affinity: {}

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

image: onap/aaf/aaf_cass:2.1.23

config:
  cluster_name: osaaf
  heap_new_size: 512M
  max_heap_size: 1024M
  dc: dc1

readiness:
  initialDelaySeconds: 5
  periodSeconds: 10

service:
  name: aaf-cass
  type: ClusterIP
  ports:
    - name: tcp-intra
      port: 7000
    - name: tls
      port: 7001
    - name: tcp-cql
      port: 9042
    - name: tcp-thrift
      port: 9160

ingress:
  enabled: false

# Configure resource requests and limits
resources:
  small:
    limits:
      cpu: 2100m
      memory: 1792Mi
    requests:
      cpu: 30m
      memory: 1280Mi
  large:
    limits:
      cpu: 4
      memory: 12000Mi
    requests:
      cpu: 40m
      memory: 9000Mi
  unlimited: {}

persistence:
  enabled: true
  #existingClaim:
  mountPath: /dockerdata-nfs
  mountSubPath: "cass"
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  size: 20Gi
