# 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.

nsPrefix: onap
pullPolicy: IfNotPresent
msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
nslcm:
  image: nexus3.onap.org:10001/onap/vfc/nslcm:v1.0.2
  port: 8403
  nodePort: 30403
  replicas: 1
resmgr:
  image: nexus3.onap.org:10001/onap/vfc/resmanagement:v1.0.0
  port: 8480
  nodePort: 30480
  replicas: 1
gvnfmdriver:
  image: nexus3.onap.org:10001/onap/vfc/gvnfmdriver:v1.0.1
  port: 8484
  nodePort: 30484
  replicas: 1
ztevnfmdriver:
  image: nexus3.onap.org:10001/onap/vfc/ztevnfmdriver:v1.0.2
  port: 8410
  nodePort: 30410
  replicas: 1
hwvnfmdriver:
  image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei:v1.0.2
  port: 8482
  nodePort: 30482
  replicas: 1
ztesdncdriver:
  image: nexus3.onap.org:10001/onap/vfc/ztesdncdriver:v1.0.0
  port: 8411
  nodePort: 30411
  replicas: 1
nokiavnfmdriver:
  image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokia:v1.0.2
  port: 8486
  nodePort: 30412
  replicas: 1
nokiav2vnfmdriver:
  image: nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/nokiav2:1.1.0-STAGING-latest
  port: 8089
  nodePort: 30413
  replicas: 1
jujudriver:
  image: nexus3.onap.org:10001/onap/vfc/jujudriver:v1.0.0
  port: 8483
  nodePort: 30483
  replicas: 1
vnflcm:
  image: nexus3.onap.org:10001/onap/vfc/vnflcm:v1.0.1
  port: 8801
  nodePort: 30801
  replicas: 1
vnfres:
  image: nexus3.onap.org:10001/onap/vfc/vnfres:v1.0.1
  port: 8802
  nodePort: 30802
  replicas: 1
vnfmgr:
  image: nexus3.onap.org:10001/onap/vfc/vnfmgr:v1.0.1
  port: 8803
  nodePort: 30803
  replicas: 1
emsdriver:
  image: nexus3.onap.org:10001/onap/vfc/emsdriver:v1.0.1
  port: 8206
  nodePort: 30296
  replicas: 1
workflow:
  image: nexus3.onap.org:10001/onap/vfc/wfengine-mgrservice:v1.0.0
  port: 10550
  nodePort: 30805
  replicas: 1
workflowengineactiviti:
  image: nexus3.onap.org:10001/onap/vfc/wfengine-activiti:v1.0.0
  port: 8080
  nodePort: 30807
  replicas: 1
catalog:
  image: nexus3.onap.org:10001/onap/vfc/catalog:v1.0.2
  port: 8806
  nodePort: 30806
  replicas: 1
