# Copyright (c) 2019, CMCC Technologies Co., Ltd.
#
# 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:
  nodePortPrefixExt: 304

#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image: onap/multicloud/openstack-fcaps:1.4.1
pullPolicy: Always

#Istio sidecar injection policy
istioSidecar: false

# application configuration
config:
  msbgateway: msb-iag
  msbPort: 80
  aai:
    port: 8443
    schemaVersion: v13
    username: AAI
    password: AAI

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 5
  enabled: true

service:
  type: ClusterIP
  name: multicloud-fcaps
  portName: multicloud-fcaps
  externalPort: 9011
  internalPort: 9011
  nodePort: 87

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: 4Gi
    requests:
      cpu: 10m
      memory: 1Gi
  large:
    limits:
      cpu: 2
      memory: 8Gi
    requests:
      cpu: 20m
      memory: 2Gi
  unlimited: {}

# rabbit-mq image resource
rabbitmq: rabbitmq:alpine
