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


---
# rcord-physical-example Pod Config
# Example configuration for a physical R-CORD pod

cord_scenario: cord
cord_profile: rcord


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.201.101.11/24'
external_gw: '10.201.101.1'
external_iface: 'eth2'
management_network: 10.6.0.0/24

deploy_docker_registry: "10.201.101.11:5000"

headnode: cord@10.201.101.11

# 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
host_cord_profile_dir: "/var/jenkins_home/workspace/cord_profile"

build_targets:
  - setup-automation

copy_cord_prereqs:
  - config-ssh-key

skipTags:
  - 'set_compute_node_password'
  - 'switch_support'

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

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

management_ignore_names: 'eth0'

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

  config:
    localhost:
      ansible_connection: local

  build:
    corddev:

  head:
    head1:
      ansible_host: 10.201.101.11
      ansible_port: 22
      ansible_user: cord
      ansible_ssh_pass: cord

  compute:

