
# 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

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: