# Copyright © 2018 AT&T USA
#
# 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.
image: onap/so/asdc-controller:latest
pullPolicy: IfNotPresent
replicaCount: 1
minReadySeconds: 10
containerPort: 8085
logPath: ./logs/sdc/
app: sdc-controller
service:
    type: ClusterIP
    internalPort: 8085
    externalPort: 8085
    portName: so-sdc-port
updateStrategy:
    type: RollingUpdate
    maxUnavailable: 1
    maxSurge: 1
# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      memory: 4Gi
      cpu: 2000m
    requests:
      memory: 1Gi
      cpu: 500m
  large:
    limits:
      memory: 8Gi
      cpu: 4000m
    requests:
      memory: 2Gi
      cpu: 1000m
livenessProbe:
    path: /manage/health
    port: 8085
    scheme: HTTP
    initialDelaySeconds: 600
    periodSeconds: 60
    timeoutSeconds: 10
    successThreshold: 1
    failureThreshold: 3
ingress:
  enabled: false
nodeSelector: {}
tolerations: []
affinity: {}
