# 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_iface_spec - specifies the NIC types that will be used for the leaf spine
  #                     fabric in the deployment. This defaults to "i40e|mlx4_en". The
  #                     format is values separated by a vertical bar '|' without spaces.
  #                     The value that this is compared against is the value return by
  #                     `ethtool -i <iface>` on the head and compute nodes.
  #
  #fabric_iface_spec: 'i40e|mlx4_en'
  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.6.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.6.1.1/24
    management: 10.6.0.0/24
    range_low: 10.6.1.2
    range_high: 10.6.1.253
