# Deployment configuration for a phyical hardware POD
---
seedServer:
  # IP address of the head node
  ip: '10.90.0.2'

  # If the head node is being accessed via a tunnel or reponds to SSH on a non-
  # standard port, the port value should be set.
  # port: '2022'

  # User name and password used by Ansible to connect to the host for remote
  # provisioning
  user: 'ubuntu'
  password: 'ubuntu'

  # Network address information for the head node:
  #
  # fabric_ip     - the IP address and mask bits to be used to configure the network
  #                 interface connected to the leaf - spine fabric
  #
  # management_ip - the IP address and mask bits to be used to configure the network
  #                 interface connecting the head node to the POD internal
  #                 management network. The head node will deliver DHCP addresses to
  #                 the other compute nodes over this interface
  #
  # external_ip   - the IP address and mask bits to be used to configure the network
  #                 interface connecting the head node (and the POD) to the
  #                 Internet. All traffic in the POD to external hosts will be
  #                 NAT-ed through this interface
  # external_iface   - the name of the interface that connects the head node to the
  #                    Internet
  # management_network - the network and mask bits to used for hosts on the management
  #                      network
  fabric_ip: '10.6.1.1/24'
  management_ip: '10.6.0.1/24'
  external_ip: '47.135.132.21/24'
  #external_iface: 'eth2'
  management_network: 10.1.0.0/24

  # the skipTags options allow various part of the deployment to be skipped
  # switch_support - does not deploy switch boot images to the PXE server
  #
  # reboot - will not reboot the head node after updating its network configuration
  #          this may mean the network configuration will not take effect, but will
  #          also prevent you from being locked out of the server if there is a 
  #          network configuration error.
  #
  # interface_config - will not modify the network configuration of the head node,
  #                    including the consistent naming of the network interfaces
  skipTags:
  #  - 'switch_support'
  #  - 'reboot'
  #  - 'interface_config'

docker:
  imageVersion: candidate

otherNodes:
  # Experimental
  #
  # Specifies the subnet and address range that will be used to allocate IP addresses
  # to the compute nodes as they are deployed into the POD.
  fabric:
    network: 10.1.1.1/24
    management: 10.1.0.0/24
    range_low: 10.1.1.2
    range_high: 10.6.1.253
