---
# 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 ONF E-CORD POD, E-CORD local POD 2
cord_scenario: cord
cord_profile: ecord

vagrant_vms:
  - 'corddev'

# Variables
credentials_dir: '/opt/credentials'
pki_dir: '/opt/pki'
ssh_pki_dir: '/opt/ssh_pki'

fabric_ip: '10.6.1.1/24'
management_ip: '10.6.0.1/24'
external_ip: '10.90.1.50/16'
external_gw: '10.90.0.1'
external_iface: 'p255p1'
management_network: 10.6.0.0/24

deploy_docker_registry: "10.90.1.50:5000"

headnode: cord@10.90.1.50

# NOTE: The `host_cord_profile_dir` variable below is the path to the cord_profile dir that
# gets mounted to corddev VM.This `cord_profile` dir typically lives in a directory
# one level up from the `cord` directory

build_targets:
  - 'setup-automation'

copy_cord_prereqs:
  - 'config-ssh-key'

skipTags:
  - 'set_compute_node_password'

# Wait until headnode prepped before building containers, for consistent DNS
docker_images_prereqs:
  - 'prep-headnode'

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

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