---
# 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-preppedkube Pod Config
# Creates a kubernetes enabled preppedpod

cord_scenario: preppedkube
cord_profile: rcord

# copy kubespray config to config host
kubeconfig_localhost: true

# Set the site name
site_name: mykube
site_humanname: MyKube
site_suffix: "{{ site_name }}.cord.lab"

# used when pushing images to secure registry
docker_registry_ext_port: "5000"
deploy_docker_registry: "docker-registry.{{ site_suffix }}:{{ docker_registry_ext_port }}"

# Virtual-specific config of network interfaces, for virtual install in Vagrant
#
# which network interfaces belong to which bond on nodes
management_net_interfaces:
  - eth1

fabric_net_interfaces:
  - eth2

# Bring up alias interfaces for the vsg and public networks, for forwarding
# traffic in virtual pod
use_addresspool_vsg: True
use_addresspool_public: True
