---
# 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
  - vnaasglobal-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: vnaas
    path: orchestration/xos_services/vnaas

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

