
# Copyright © 2017 Amdocs, Bell Canada
#
# 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
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0
flavor: small
#################################################################
# Application configuration defaults.
#################################################################
# application image
pullPolicy: Always


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

readiness:
  initialDelaySeconds: 5
  periodSeconds: 10

service:
  name: aaf-gui
  type: NodePort
  portName: aaf-gui
  #targetPort
  internalPort: 8200
  #port
  externalPort: 8200
  nodePort: 51

ingress:
  enabled: false

# Configure resource requests and limits
resources: {}
# Allow END users to do this, if they want.  Detrimental to Test services
#resources:
#  small:
#    limits:
#      cpu: 100m
#      memory: 500Mi
#    requests:
#      cpu: 10m
#      memory: 200Mi
#  large:
#    limits:
#      cpu: 200m
#      memory: 1Gi
#    requests:
#      cpu: 100m
#      memory: 500Mi
#  unlimited: {}
