---
# Copyright 2017-present Open Networking Foundation
#
# 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.

# profile_manifests/ecord-global.yml
# Global E-CORD Profile Manifest
#
# Note: supports the `single` scenario, but not the virtual/physical scenarios
# (requires ONOS, but not MaaS/OpenStack)

# Site configuration
site_name: ecordglobal
site_humanname: "Global E-CORD"
site_suffix: "{{ site_name }}.cord.lab"
deployment_type: "global_ecord"

# Feature toggles
use_maas: True
use_apt_cache: True

# XOS config
xos_tosca_config_templates:
  - vtn-service.yaml
  - fabric-service.yaml
  - vnodglobal-service.yaml
  - xos-gui-extensions.yml
  - carrierethernet-global-app.yaml


xos_other_templates:
 - fabric-network-cfg.json

# GUI Config [new GUI]
gui_project_name: "Global E-CORD"
gui_background: "cord-bg.jpg" # TODO find ecord image
gui_payoff: "Your Enterprise Global VNF orchestrator"

enabled_gui_extensions:
  - name: vnaas
    path: orchestration/xos_services/vnaas/xos/gui
    extra_files:
      - app/style/style.css
      - mapconstants.js

# paths defined in manifest/default.xml
xos_services:
  - name: vtn
    path: orchestration/xos_services/vtn-service
  - name: openstack
    path: orchestration/xos_services/openstack
  - name: fabric
    path: orchestration/xos_services/fabric
  - name: onos
    path: orchestration/xos_services/onos-service
  - name: metro-net
    path: orchestration/xos_services/metro-net

# VTN network configuration
management_network_ip: 172.27.0.1/24
data_plane_ip: 10.168.0.253/24

