# Copyright © 2018 Amdocs
#
# 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:
  nodePortPrefix: 302
  repository: nexus3.onap.org:10001
#  readinessRepository: oomk8s
#  readinessImage: readiness-check:2.0.0
#  loggingRepository: docker.elastic.co
#  loggingImage: beats/filebeat:5.5.0

#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image:  onap/pomba-sdc-context-builder:1.3.1
pullPolicy: Always

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

# application configuration
# Example:
config:
  #Application properties
  sdcUsername: pomba
  sdcPassword: OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp
  sdcConsumerId: pomba
  sdcServiceName: sdc-be
  sdcPort: 8443
  # HTTP Basic Authorization credentials for Rest Service API
  sdcCtxBuilderUserId: admin
  sdcCtxBuilderPassword: OBF:1u2a1toa1w8v1tok1u30

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10

#Example service definition with external, internal and node ports.
service:
  # The default service name (exposed in the service.yaml) will be the same
  # name as the chart. If the service name needs to be overriden (such as
  # when a subchart is shared), uncomment the value below.
  #name: <service-name-override>

  #Services may use any combination of ports depending on the 'type' of
  #service being defined.
  type: ClusterIP
  externalPort: 9530
  internalPort: 8080
#  nodePort: <replace with unused node port suffix eg. 23>
  # optional port name override - default can be defined in service.yaml
  #portName: http

ingress:
  enabled: false

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1
      memory: 800Mi
    requests:
      cpu: 100m
      memory: 400Mi
  large:
    limits:
      cpu: 2
      memory: 1600Mi
    requests:
      cpu: 200m
      memory: 800Mi
  unlimited: {}
