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

# POD config for QCT POD3, E-CORD global
cord_scenario: single
cord_profile: ecord-global

start_xos_prereqs:
  - deploy-onos

vagrant_vms: []

cord_config_prereqs:
  - config-ssh-key

copy_cord_prereqs:
  - config-ssh-key

prep_buildnode_prereqs:
  - copy-cord
  - copy-config

headnode: cord@10.201.101.31
buildnode: cord@10.201.101.31

# node topology
# this is unusual, but needed because we're running a "single" scenario on a physical node instead of a VM
physical_node_list:
  - name: cord-head-03
    ipv4_last_octet: 1
    aliases:
      - head
      - head1

# Inventory for ansible, used to generate inventory.ini
inventory_groups:
  config:
    localhost:
      ansible_connection: local
  build:
    head1:
      ansible_host: 10.201.101.31
      ansible_port: 22
      ansible_user: cord
      ansible_ssh_pass: cord
  head:
    head1:
      ansible_host: 10.201.101.31
      ansible_port: 22
      ansible_user: cord
      ansible_ssh_pass: cord
  compute:
