Adapting PODs configurations to the new build system - master

Change-Id: Ifbefa708d67fc8f9ff183bb7b6504b7d5baeec37
(cherry picked from commit 2e8966a59428eeadbbd676593097e1a8d7c3d007)
diff --git a/calix-pod1.yml b/calix-pod1.yml
index 6fb4330..25036e3 100644
--- a/calix-pod1.yml
+++ b/calix-pod1.yml
@@ -13,65 +13,65 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.66.12.7'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.66.12.7/24'
+external_gw: '10.66.12.20'
+external_iface: 'ens255f1'
+management_network: 10.6.0.0/24
 
+deploy_docker_registry: "10.66.12.7:5000"
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+headnode: cord@10.66.12.7
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.66.12.7/24'
-  external_iface: 'ens255f1'
-  external_gw: '10.66.12.20'
-  skipTags:
+# 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"
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+build_targets:
+  - 'setup-automation'
 
-docker:
-  imageVersion: candidate
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+skipTags:
+  - 'set_compute_node_password'
+
+# Wait until headnode prepped before building containers, for consistent DNS
+docker_images_prereqs:
+  - 'prep-headnode'
+
+# node topology
+physical_node_list:
+  - name: head1
+    aliases:
+      - head
+
+# Inventory for ansible, used to generate inventory.ini
+inventory_groups:
+  config:
+    localhost:
+      ansible_connection: local
+  build:
+    corddev:
+  head:
+    head1:
+      ansible_host: 10.66.12.7
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
diff --git a/flex-pod1.yml b/flex-pod1.yml
index 0a7df4a..51c830d 100644
--- a/flex-pod1.yml
+++ b/flex-pod1.yml
@@ -13,63 +13,65 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.192.4.62'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+vagrant_vms:
+  - 'corddev'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  credentials_dir: '/opt/credentials'
-  pki_dir: '/opt/pki'
-  ssh_pki_dir: '/opt/ssh_pki'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+fabric_ip: '10.6.1.1/24'
+management_ip: '10.6.0.1/24'
+external_ip: '10.192.4.62/24'
+external_gw: '10.192.4.1'
+external_iface: 'enp4s0f1'
+management_network: 10.6.0.0/24
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.192.4.62/20'
-  external_iface: 'enp4s0f1'
-  external_gw: '10.192.4.1'
-  skipTags:
+deploy_docker_registry: "10.192.4.62:5000"
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+headnode: cord@10.192.4.62
 
-docker:
-  imageVersion: candidate
+# 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"
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+build_targets:
+  - 'setup-automation'
+
+copy_cord_prereqs:
+  - 'config-ssh-key'
+
+skipTags:
+  - 'set_compute_node_password'
+
+# Wait until headnode prepped before building containers, for consistent DNS
+docker_images_prereqs:
+  - 'prep-headnode'
+
+# node topology
+physical_node_list:
+  - name: head1
+    aliases:
+      - head
+
+# Inventory for ansible, used to generate inventory.ini
+inventory_groups:
+  config:
+    localhost:
+      ansible_connection: local
+  build:
+    corddev:
+  head:
+    head1:
+      ansible_host: 10.192.4.62
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
diff --git a/onlab.yml b/onlab.yml
index f9bcf34..23ea894 100644
--- a/onlab.yml
+++ b/onlab.yml
@@ -13,65 +13,65 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.90.0.251'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.90.0.251/24'
+external_gw: '10.90.0.1'
+external_iface: 'eth0'
+management_network: 10.6.0.0/24
 
+deploy_docker_registry: "10.90.0.251:5000"
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+headnode: cord@10.90.0.251
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.90.0.251/16'
-  external_iface: 'eth0'
-  external_gw: '10.90.0.1'
-  skipTags:
+# 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"
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+build_targets:
+  - 'setup-automation'
 
-docker:
-  imageVersion: candidate
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+skipTags:
+  - 'set_compute_node_password'
+
+# Wait until headnode prepped before building containers, for consistent DNS
+docker_images_prereqs:
+  - 'prep-headnode'
+
+# node topology
+physical_node_list:
+  - name: head1
+    aliases:
+      - head
+
+# Inventory for ansible, used to generate inventory.ini
+inventory_groups:
+  config:
+    localhost:
+      ansible_connection: local
+  build:
+    corddev:
+  head:
+    head1:
+      ansible_host: 10.90.0.251
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
diff --git a/qct-pod1.yml b/qct-pod1.yml
index a249255..375f3d3 100644
--- a/qct-pod1.yml
+++ b/qct-pod1.yml
@@ -13,15 +13,11 @@
 # 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'
 
diff --git a/qct-pod2-dpdk.yml b/qct-pod2-dpdk.yml
index 2e07975..09740a5 100644
--- a/qct-pod2-dpdk.yml
+++ b/qct-pod2-dpdk.yml
@@ -13,78 +13,77 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.201.101.21'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.21/24'
+external_gw: '10.201.101.1'
+external_iface: 'eth2'
+management_network: 10.6.0.0/24
 
+deploy_docker_registry: "10.201.101.21:5000"
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+headnode: cord@10.201.101.21
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.201.101.21/24'
-  external_iface: 'eth2'
-  external_gw: '10.201.101.1'
-  skipTags:
-  extraVars:
-    - 'management_ignore_names=eth0'
+# 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"
 
-  # Experimental: DPDK config options
-  enable_dpdk: True
-  vcpu_pin_set: '4-7'
-  kernel_opts: '''isolcpus=2-7 nohz_full=2-7 rcu_nocbs=2-7'''
-  hugepages: '75%' # make sure %hugepages enough for ovs and VMs
-  dpdk_socket_memory: '1024,0' # single numa else 1024,1024 # make sure %hugepages enough for ovs and VMs
-  dpdk_lcore_mask: '0x4' # core2
-  fabric_interfaces: 'eth2' # not sure abt which is the fabric interface
-  pmd_cpu_mask: '0x8' # core3
+build_targets:
+  - 'setup-automation'
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
-docker:
-  imageVersion: candidate
+skipTags:
+  - 'set_compute_node_password'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+# 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.21
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
+
+# Experimental: DPDK config options
+enable_dpdk: True
+vcpu_pin_set: '4-7'
+kernel_opts: '''isolcpus=2-7 nohz_full=2-7 rcu_nocbs=2-7'''
+hugepages: '75%' # make sure %hugepages enough for ovs and VMs
+dpdk_socket_memory: '1024,0' # single numa else 1024,1024 # make sure %hugepages enough for ovs and VMs
+dpdk_lcore_mask: '0x4' # core2
+fabric_interfaces: 'eth2' # not sure abt which is the fabric interface
+pmd_cpu_mask: '0x8' # core3
diff --git a/qct-pod2.yml b/qct-pod2.yml
index 17c2c59..e666c2f 100644
--- a/qct-pod2.yml
+++ b/qct-pod2.yml
@@ -13,68 +13,67 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.201.101.21'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.21/24'
+external_gw: '10.201.101.1'
+external_iface: 'eth2'
+management_network: 10.6.0.0/24
 
+deploy_docker_registry: "10.201.101.21:5000"
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+headnode: cord@10.201.101.21
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.201.101.21/24'
-  external_iface: 'eth2'
-  external_gw: '10.201.101.1'
-  skipTags:
-  extraVars:
-    - 'management_ignore_names=eth0'
+# 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"
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+build_targets:
+  - 'setup-automation'
 
-docker:
-  imageVersion: candidate
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+skipTags:
+  - 'set_compute_node_password'
 
+# 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.21
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
diff --git a/qct-pod3.yml b/qct-pod3.yml
index e48fdad..dd1c7c4 100644
--- a/qct-pod3.yml
+++ b/qct-pod3.yml
@@ -13,67 +13,67 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.201.101.31'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.31/24'
+external_gw: '10.201.101.1'
+external_iface: 'eth2'
+management_network: 10.6.0.0/24
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+deploy_docker_registry: "10.201.101.31:5000"
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.201.101.31/24'
-  external_iface: 'eth2'
-  external_gw: '10.201.101.1'
-  skipTags:
-  extraVars:
-    - 'management_ignore_names=eth0'
+headnode: cord@10.201.101.31
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+# 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"
 
-docker:
-  imageVersion: candidate
+build_targets:
+  - 'setup-automation'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
+skipTags:
+  - 'set_compute_node_password'
+
+# 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.31
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute:
diff --git a/qct-pod4.yml b/qct-pod4.yml
index c093b48..8566451 100644
--- a/qct-pod4.yml
+++ b/qct-pod4.yml
@@ -13,67 +13,67 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
-# Deployment configuration for a physical hardware POD
 ---
 
-# this is used to generate the genconfig/cord-inv file
-headnode:
-  ip: '10.201.101.41'
-  ansible_user: 'cord'
-  ansible_ssh_pass: 'cord'
-  ansible_ssh_port: 22
+cord_scenario: cord
+cord_profile: rcord
 
-common:
+vagrant_vms:
+  - 'corddev'
 
-  # set to the profile of cord you want to install
-  cord_profile: 'rcord'
+# Variables
+credentials_dir: '/opt/credentials'
+pki_dir: '/opt/pki'
+ssh_pki_dir: '/opt/ssh_pki'
 
-  # cord dir is shared to corddev VM, causing permissions issues if these aren't set
-  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.41/24'
+external_gw: '10.201.101.1'
+external_iface: 'eth2'
+management_network: 10.6.0.0/24
 
-  # all of these are written to genconfig/config.yml, and needs a rework
+deploy_docker_registry: "10.201.101.41:5000"
 
-  # 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
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '10.201.101.41/24'
-  external_iface: 'eth2'
-  external_gw: '10.201.101.1'
-  skipTags:
-  extraVars:
-    - 'management_ignore_names=eth0'
+headnode: cord@10.201.101.41
 
-passwords:
-  compute_node: "ubuntu"
-  maas_admin: "admin"
-  maas_user: "cord"
+# 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"
 
-docker:
-  imageVersion: candidate
+build_targets:
+  - 'setup-automation'
 
-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
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253
+copy_cord_prereqs:
+  - 'config-ssh-key'
 
+skipTags:
+  - 'set_compute_node_password'
+
+# 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.41
+      ansible_port: 22
+      ansible_user: cord
+      ansible_ssh_pass: cord
+  compute: