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

# cord Scenario
# for both Physical (using a corddev VM) and Virtual (using multiple VMs)

# cord profile config
frontend_only: False

# create a cord_profile dir next to the cord checkout
config_cord_dir: "{{ ( playbook_dir ~ '/../..' ) | realpath }}"
config_cord_profile_dir: "{{ ( playbook_dir ~ '/../../../cord_profile' ) | realpath }}"

build_cord_dir: "/opt/cord"
build_cord_profile_dir: "/opt/cord_profile"
host_cord_profile_dir: "~/cord_profile"

buildnode: corddev
headnode: head1

# docker config
deploy_docker_registry: "docker-registry:5000"
deploy_docker_tag: "candidate"
pull_docker_registry: "docker-registry:5000/"
pull_docker_tag: "candidate"
docker_opts: "--insecure-registry {{ deploy_docker_registry }}"

# Variables required by MAAS
fabric_ip: '10.6.1.1/24'
management_ip: '10.1.0.1/24'
management_network: '10.1.0.0/24'

# make build config
build_targets:
 - setup-automation

config_ssh_key_prereqs:
  - vagrant-ssh-install

copy_cord_prereqs:
  - vagrant-ssh-install

cord_config_prereqs:
  - vagrant-ssh-install
  - copy-cord

prep_headnode_prereqs:
  - copy-cord
  - copy-config

publish_docker_images_prereqs:
  - deploy-maas

# Start elasticstack before XOS/ONOS, which log to it
start_xos_prereqs:
  - deploy-maas
  - publish-docker-images

deploy_openstack_prereqs:
  - deploy-maas

deploy_mavenrepo_prereqs:
  - publish-docker-images

testing_prereqs:
  - collect-diag-maas
  - setup-automation

setup_automation_prereqs:
  - deploy-openstack

# Vagrant VM configuration
vagrant_box: "ubuntu/trusty64"

vagrant_vms:
  - corddev
  - head1

dev_vm_mem: 2048
dev_vm_cpu: 1

head_vm_mem: 16384
head_vm_cpu: 8

compute_vm_mem: 16384
compute_vm_cpu: 8

switch_vm_mem: 512
switch_vm_cpu: 1

vm_management_network_name: cordmgmt

# name of the fabric bridge interface used by VTN (to match maas-configured
# compute node interfaces)
vtn_integration_bridge_interface: fabric

# name of the management network bridge (to match maas-configured interface)
management_net_bridge: mgmtbr

# Enable experimental fabric
enable_fabric: False

# Apt cache depends on DNS provided by MAAS
# MAAS isn't installed when prep-headnode runs
use_apt_cache: False

# Always pull XOS images if start-xos target is re-run
always_pull_xos_images: True

# Used in platform-install / roles/cord-profile/templates/docker-compose.yml.j2
use_elasticstack: True

# Use the insecure MaaS-installed docker registry
use_secure_docker_registry: False

# images for imagebuilder to build/pull (tagged elsewhere)
docker_image_whitelist:
  - "xosproject/xos-base"
  - "xosproject/xos"
  - "xosproject/xos-client"
  - "xosproject/xos-corebuilder"
  - "xosproject/xos-gui"
  - "xosproject/xos-gui-builder"
  - "xosproject/xos-libraries"
  - "xosproject/xos-postgres"
  - "xosproject/xos-tosca"
  - "xosproject/xos-ws"
  - "xosproject/chameleon"
  - "xosproject/xos-synchronizer-base"
  - "nginx"
  - "onosproject/onos"
  - "opencord/mavenrepo"
  - "redis"
  - "node"
  - "sebp/elk"

# node topology
physical_node_list:
  - name: head1
    ipv4_last_octet: 1
    aliases:
      - head

# Inventory for ansible, used to generate inventory.ini
inventory_groups:

  config:
    localhost:
      ansible_connection: local

  build:
    corddev:

  head:
    head1:

  compute:

