# Copyright © 2020 Samsung
#
# 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:
  repository: nexus3.onap.org:10001
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2
  persistence:
    mountPath: /dockerdata-nfs
image: onap/so/ve-vnfm-adapter:1.6.0
pullPolicy: Always
replicaCount: 1
service:
  name: ve-vnfm-adapter
  type: ClusterIP
  annotations:
    msb.onap.org/service-info: |
      {{ if not .Values.global.msbDisabled -}}[
        {
          "serviceName": "{{ include "common.servicename" . }}",
          "version": "v1",
          "url": "/",
          "protocol": "REST",
          "port": "{{ (index .Values.service.ports 0).port }}",
          "visualRange": "1"
        }
      ]{{ end }}
  ports:
    - name: http
      port: 9098
flavor: small
resources:
  small:
    limits:
      memory: 512Mi
      cpu: 500m
    requests:
      memory: 256Mi
      cpu: 250m
  large:
    limits:
      memory: 8Gi
      cpu: 4000m
    requests:
      memory: 2Gi
      cpu: 1000m
  unlimited: {}
livenessProbe:
  port: 9098
  initialDelaySeconds: 600
  periodSeconds: 60
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 3
nodeSelector: {}
tolerations: []
affinity: {}
