# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T
# Modifications Copyright © 2021-2022 Nordix Foundation
# Modifications Copyright © 2023 DTAG
#
# 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:
  persistence: {}

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/dmaap/dmaap-mr:1.4.4
pullPolicy: Always

#Strimzi zookeeper_tunnel config
zkTunnelService:
    type: ClusterIP
    name: zk-tunnel-svc
    portName: tcp-zk-tunnel
    protocol: TCP
    internalPort: 2181
    logLevel: debug
    image: scholzj/zoo-entrance:latest

nodeSelector: {}

affinity: {}

containerPort: &svc_port 3904

service:
  type: ClusterIP
  name: message-router
  ports:
    - name: api
      port: *svc_port
      port_protocol: http

ingress:
  enabled: false
  service:
    - baseaddr: "dmaap-mr-api"
      name: "message-router"
      port: *svc_port
  config:
    ssl: "redirect"

# probe configuration parameters
liveness:
  initialDelaySeconds: 10
  periodSeconds: 30
  timeoutSeconds: 15
  successThreshold: 1
  failureThreshold: 3
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  port: *svc_port
  enabled: true

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10
  timeoutSeconds: 1
  successThreshold: 1
  failureThreshold: 3
  port: *svc_port

# periodSeconds is set longer to avoid DMaaP 429 error
startup:
  initialDelaySeconds: 90
  periodSeconds: 30
  timeoutSeconds: 15
  successThreshold: 1
  failureThreshold: 70
  port: *svc_port

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

#Pods Service Account
serviceAccount:
  nameOverride: message-router
  roles:
    - read
