---

# 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/base-cord.yml
# Base CORD Profile Manifest

# Site configuration
site_name: mysite
site_humanname: MySite
#site_suffix: "{{ site_name }}.cord.lab" - broken, see CORD-1520
site_suffix: "cord.lab"
deployment_type: MyDeployment

# Feature toggles
use_fabric: True
use_maas: True

# XOS config
xos_tosca_config_templates:
  - vtn-service.yaml
  - fabric-service.yaml
  - management-net.yaml
  - addressmanager-service.yaml
  - public-net.yaml
  - xos-gui-extensions.yml

# An example of adding TOSCA for a service using the new engine.
#xos_new_tosca_config_templates:
#  - template-service.yaml

xos_other_templates:
  - fabric-network-cfg.json

enabled_gui_extensions:
  - name: sample
    path: orchestration/xos-sample-gui-extension
  - name: rcord
    path: orchestration/profiles/rcord/xos/gui
    extra_files:
      - index.css
  - name: veestat
    path: orchestration/xos_services/vEE/xos/veestat
  - name: vnaas
    path: orchestration/xos_services/vnaas/xos/gui
    extra_files:
      - app/style/style.css
      - mapconstants.js
  - name: vtr
    path: orchestration/xos_services/vtr/xos/gui

# paths defined in manifest/default.xml
xos_services:
  - name: vtn
    path: orchestration/xos_services/vtn-service
    keypair: vsg_rsa
  - name: openstack
    path: orchestration/xos_services/openstack
  - name: onos
    path: orchestration/xos_services/onos-service
    keypair: onos_rsa
  - name: fabric
    path: orchestration/xos_services/fabric
  - name: addressmanager
    path: orchestration/xos_services/addressmanager
# An example of adding a new service to the profile
#  - name: templateservice
#    path: orchestration/xos_services/templateservice
#    keypair: templateservice_rsa

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

# Juju config
charm_versions:
  ceilometer-agent: "cs:trusty/ceilometer-agent-13"
  ceilometer: "cs:trusty/ceilometer-17"
  glance: "cs:trusty/glance-28"
  keystone: "cs:trusty/keystone-267"
  mongodb: "cs:trusty/mongodb-33"
  nagios: "cs:trusty/nagios-10"
  neutron-api: "cs:~cordteam/trusty/neutron-api-6"
  nova-cloud-controller: "cs:trusty/nova-cloud-controller-64"
  nova-compute: "cs:~cordteam/trusty/nova-compute-3"
  nrpe: "cs:trusty/nrpe-4"
  ntp: "cs:trusty/ntp-14"
  openstack-dashboard: "cs:trusty/openstack-dashboard-19"
  percona-cluster: "cs:trusty/percona-cluster-31"
  rabbitmq-server: "cs:trusty/rabbitmq-server-42"

head_lxd_list:
  - name: "juju-1"
    service: "juju"
    aliases:
      - "juju"
    ipv4_last_octet: 10

  - name: "ceilometer-1"
    service: "ceilometer"
    aliases:
      - "ceilometer"
    ipv4_last_octet: 20
    forwarded_ports:
      - { ext: 8777, int: 8777 }

  - name: "glance-1"
    service: "glance"
    aliases:
      - "glance"
    ipv4_last_octet: 30
    forwarded_ports:
      - { ext: 9292, int: 9292 }

  - name: "keystone-1"
    service: "keystone"
    aliases:
      - "keystone"
    ipv4_last_octet: 40
    forwarded_ports:
      - { ext: 35357, int: 35357 }
      - { ext: 4990, int: 4990 }
      - { ext: 5000, int: 5000 }

  - name: "percona-cluster-1"
    service: "percona-cluster"
    aliases:
      - "percona-cluster"
    ipv4_last_octet: 50

  - name: "nagios-1"
    service: "nagios"
    aliases:
      - "nagios"
    ipv4_last_octet: 60
    forwarded_ports:
      - { ext: 3128, int: 80 }

  - name: "neutron-api-1"
    service: "neutron-api"
    aliases:
      - "neutron-api"
    ipv4_last_octet: 70
    forwarded_ports:
      - { ext: 9696, int: 9696 }

  - name: "nova-cloud-controller-1"
    service: "nova-cloud-controller"
    aliases:
      - "nova-cloud-controller"
    ipv4_last_octet: 80
    forwarded_ports:
      - { ext: 8774, int: 8774 }

  - name: "openstack-dashboard-1"
    service: "openstack-dashboard"
    aliases:
      - "openstack-dashboard"
    ipv4_last_octet: 90
    forwarded_ports:
      - { ext: 8080, int: 80 }

  - name: "rabbitmq-server-1"
    service: "rabbitmq-server"
    aliases:
      - "rabbitmq-server"
    ipv4_last_octet: 100

  - name: "mongodb-1"
    service: "mongodb"
    aliases:
      - "mongodb"
    ipv4_last_octet: 110


lxd_service_list:
  - ceilometer
  - glance
  - keystone
  - mongodb
  - nagios
  - neutron-api
  - nova-cloud-controller
  - openstack-dashboard
  - percona-cluster
  - rabbitmq-server


standalone_service_list:
  - ntp
  - nrpe
  - ceilometer-agent


service_relations:
  - name: keystone
    relations: [ "percona-cluster", "nrpe", ]

  - name: nova-cloud-controller
    relations: [ "percona-cluster", "rabbitmq-server", "glance", "keystone", "nrpe", ]

  - name: glance
    relations: [ "percona-cluster", "keystone", "nrpe", ]

  - name: neutron-api
    relations: [ "keystone",  "percona-cluster", "rabbitmq-server", "nova-cloud-controller", "nrpe", ]

  - name: openstack-dashboard
    relations: [ "keystone", "nrpe", ]

  - name: nagios
    relations: [ "nrpe", ]

  - name: "percona-cluster:juju-info"
    relations: [ "nrpe:general-info", ]

  - name: rabbitmq-server
    relations: [ "nrpe", ]

  - name: ceilometer
    relations: [ "mongodb", "rabbitmq-server", "nagios", "nrpe", ]

  - name: "ceilometer:identity-service"
    relations: [ "keystone:identity-service", ]

  - name: "ceilometer:ceilometer-service"
    relations: [ "ceilometer-agent:ceilometer-service", ]


compute_relations:
  - name: nova-compute
    relations: [ "ceilometer-agent", "glance", "nova-cloud-controller", "nagios", "nrpe", ]

  - name: "nova-compute:shared-db"
    relations: [ "percona-cluster:shared-db", ]

  - name: "nova-compute:amqp"
    relations: [ "rabbitmq-server:amqp", ]

  - name: ntp
    relations: [ "nova-compute", ]


xos_images:
  - name: "trusty-server-multi-nic"
    url: "https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201"
    checksum: "sha256:ebf007ba3ec1043b7cd011fc6668e2a1d1d4c69c41071e8513ab355df7a057cb"
