Add golden configuration sizing and placement classes

Add classes for VCP VM sizes for golden configuration
and a mapping for placement to KVM nodes.

Change-Id: Icfc62a922182ffb03713db40d8bce4fbada98ab6
Closes-bug: PROD-26795
diff --git a/salt/control/placement/ceph/golden.yml b/salt/control/placement/ceph/golden.yml
new file mode 100644
index 0000000..3ae4860
--- /dev/null
+++ b/salt/control/placement/ceph/golden.yml
@@ -0,0 +1,74 @@
+parameters:
+  _param:
+    infra_kvm01_hostname: kvm01
+    infra_kvm02_hostname: kvm02
+    infra_kvm03_hostname: kvm03
+    ceph_mon_node01_hostname: cmn01
+    ceph_mon_node02_hostname: cmn02
+    ceph_mon_node03_hostname: cmn03
+    ceph_rgw_node01_hostname: rgw01
+    ceph_rgw_node02_hostname: rgw02
+    ceph_rgw_node03_hostname: rgw03
+    ceph_mon_backend_image: ${_param:salt_control_xenial_image_backend}
+    ceph_rgw_backend_image: ${_param:salt_control_xenial_image_backend}
+    salt_control_cluster_node_cloud_init_ceph_mon:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:ceph.mon:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_ceph_rgw:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:ceph.rgw:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+  salt:
+    control:
+      cluster:
+        internal:
+          node:
+            cmn01:
+              name: ${_param:ceph_mon_node01_hostname}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_mon_backend_image}
+              size: ceph.mon
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_mon}
+            cmn02:
+              name: ${_param:ceph_mon_node02_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_mon_backend_image}
+              size: ceph.mon
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_mon}
+            cmn03:
+              name: ${_param:ceph_mon_node03_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_mon_backend_image}
+              size: ceph.mon
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_mon}
+            rgw01:
+              name: ${_param:ceph_rgw_node01_hostname}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_rgw_backend_image}
+              size: ceph.rgw
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_rgw}
+            rgw02:
+              name: ${_param:ceph_rgw_node02_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_rgw_backend_image}
+              size: ceph.rgw
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_rgw}
+            rgw03:
+              name: ${_param:ceph_rgw_node03_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:ceph_rgw_backend_image}
+              size: ceph.rgw
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_ceph_rgw}
diff --git a/salt/control/placement/cicd/golden.yml b/salt/control/placement/cicd/golden.yml
new file mode 100644
index 0000000..0ee7d63
--- /dev/null
+++ b/salt/control/placement/cicd/golden.yml
@@ -0,0 +1,42 @@
+parameters:
+  _param:
+    infra_kvm01_hostname: kvm01
+    infra_kvm02_hostname: kvm02
+    infra_kvm03_hostname: kvm03
+    cicd_control_node01_hostname: cid01
+    cicd_control_node02_hostname: cid02
+    cicd_control_node03_hostname: cid03
+    cicd_control_backend_image: ${_param:salt_control_xenial_image_backend}
+    salt_control_cluster_node_cloud_init_cicd_control:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:cicd.control:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+  salt:
+    control:
+      cluster:
+        internal:
+          node:
+            cid01:
+              name: ${_param:cicd_control_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:cicd_control_backend_image}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              size: cicd.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_cicd_control}
+            cid02:
+              name: ${_param:cicd_control_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:cicd_control_backend_image}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              size: cicd.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_cicd_control}
+            cid03:
+              name: ${_param:cicd_control_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:cicd_control_backend_image}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              size: cicd.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_cicd_control}
diff --git a/salt/control/placement/openstack/golden.yml b/salt/control/placement/openstack/golden.yml
new file mode 100644
index 0000000..03abda5
--- /dev/null
+++ b/salt/control/placement/openstack/golden.yml
@@ -0,0 +1,214 @@
+parameters:
+  _param:
+    infra_kvm01_hostname: kvm01
+    infra_kvm02_hostname: kvm02
+    infra_kvm03_hostname: kvm03
+    infra_kvm04_hostname: kvm04
+    infra_kvm05_hostname: kvm05
+    infra_kvm06_hostname: kvm06
+    openstack_control_node01_hostname: ctl01
+    openstack_control_node02_hostname: ctl02
+    openstack_control_node03_hostname: ctl03
+    openstack_database_node01_hostname: dbs01
+    openstack_database_node02_hostname: dbs02
+    openstack_database_node03_hostname: dbs03
+    openstack_message_queue_node01_hostname: msg01
+    openstack_message_queue_node02_hostname: msg02
+    openstack_message_queue_node03_hostname: msg03
+    openstack_proxy_node01_hostname: prx01
+    openstack_proxy_node02_hostname: prx02
+    openstack_barbican_node01_hostname: kmn01
+    openstack_barbican_node02_hostname: kmn02
+    openstack_barbican_node03_hostname: kmn03
+    openstack_dns_node01_hostname: dns01
+    openstack_dns_node02_hostname: dns02
+    openstack_telemetry_node01_hostname: mdb01
+    openstack_telemetry_node02_hostname: mdb02
+    openstack_telemetry_node03_hostname: mdb03
+    openstack_control_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_database_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_message_queue_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_proxy_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_barbican_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_dns_backend_image: ${_param:salt_control_xenial_image_backend}
+    openstack_telemetry_backend_image: ${_param:salt_control_trusty_image_backend}
+    salt_control_cluster_node_cloud_init_openstack_control:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.control:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_openstack_database:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.database:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_openstack_message_queue:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.message_queue:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_openstack_proxy:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.proxy:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_openstack_barbican:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.barbican:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_openstack_dns:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:openstack.dns:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+  salt:
+    control:
+      cluster:
+        internal:
+          node:
+            ctl01:
+              name: ${_param:openstack_control_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_control_backend_image}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              size: openstack.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_control}
+            ctl02:
+              name: ${_param:openstack_control_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_control_backend_image}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              size: openstack.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_control}
+            ctl03:
+              name: ${_param:openstack_control_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_control_backend_image}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              size: openstack.control
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_control}
+            dbs01:
+              name: ${_param:openstack_database_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_database_backend_image}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              size: openstack.database
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_database}
+            dbs02:
+              name: ${_param:openstack_database_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_database_backend_image}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              size: openstack.database
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_database}
+            dbs03:
+              name: ${_param:openstack_database_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_database_backend_image}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              size: openstack.database
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_database}
+            msg01:
+              name: ${_param:openstack_message_queue_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_message_queue_backend_image}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              size: openstack.message_queue
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_message_queue}
+            msg02:
+              name: ${_param:openstack_message_queue_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_message_queue_backend_image}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              size: openstack.message_queue
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_message_queue}
+            msg03:
+              name: ${_param:openstack_message_queue_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_message_queue_backend_image}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              size: openstack.message_queue
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_message_queue}
+            prx01:
+              name: ${_param:openstack_proxy_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_proxy_backend_image}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              size: openstack.proxy
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_proxy}
+            prx02:
+              name: ${_param:openstack_proxy_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_proxy_backend_image}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              size: openstack.proxy
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_proxy}
+            kmn01:
+              name: ${_param:openstack_barbican_node01_hostname}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_barbican_backend_image}
+              size: openstack.barbican
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_barbican}
+            kmn02:
+              name: ${_param:openstack_barbican_node02_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_barbican_backend_image}
+              size: openstack.barbican
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_barbican}
+            kmn03:
+              name: ${_param:openstack_barbican_node03_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_barbican_backend_image}
+              size: openstack.barbican
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_barbican}
+            dns01:
+              name: ${_param:openstack_dns_node01_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_dns_backend_image}
+              size: openstack.dns
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_dns}
+            dns02:
+              name: ${_param:openstack_dns_node02_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:openstack_dns_backend_image}
+              size: openstack.dns
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_dns}
+            mdb01:
+              name: ${_param:openstack_telemetry_node01_hostname}
+              provider: ${_param:infra_kvm_node04_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              backend: ${_param:openstack_telemetry_backend_image}
+              size: openstack.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_telemetry}
+            mdb02:
+              name: ${_param:openstack_telemetry_node02_hostname}
+              provider: ${_param:infra_kvm_node05_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              backend: ${_param:openstack_telemetry_backend_image}
+              size: openstack.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_telemetry}
+            mdb03:
+              name: ${_param:openstack_telemetry_node03_hostname}
+              provider: ${_param:infra_kvm_node06_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              backend: ${_param:openstack_telemetry_backend_image}
+              size: openstack.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_openstack_telemetry}
diff --git a/salt/control/placement/stacklight/golden.yml b/salt/control/placement/stacklight/golden.yml
new file mode 100644
index 0000000..4bfd44c
--- /dev/null
+++ b/salt/control/placement/stacklight/golden.yml
@@ -0,0 +1,106 @@
+parameters:
+  _param:
+    infra_kvm04_hostname: kvm04
+    infra_kvm05_hostname: kvm05
+    infra_kvm06_hostname: kvm06
+    stacklight_log_node01_hostname: log01
+    stacklight_log_node02_hostname: log02
+    stacklight_log_node03_hostname: log03
+    stacklight_monitor_node01_hostname: mon01
+    stacklight_monitor_node02_hostname: mon02
+    stacklight_monitor_node03_hostname: mon03
+    stacklight_telemetry_node01_hostname: mtr01
+    stacklight_telemetry_node02_hostname: mtr02
+    stacklight_telemetry_node03_hostname: mtr03
+    stacklight_log_backend_image: ${_param:salt_control_xenial_image_backend}
+    stacklight_monitor_backend_image: ${_param:salt_control_xenial_image_backend}
+    stacklight_telemetry_backend_image: ${_param:salt_control_xenial_image_backend}
+    salt_control_cluster_node_cloud_init_stacklight_log:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:stacklight.log:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_stacklight_server:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:stacklight.server:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+    salt_control_cluster_node_cloud_init_stacklight_telemetry:
+      user_data:
+        write_files:
+        - content: |
+            ${salt:control:size:stacklight.telemetry:image_layout}
+          owner: root:root
+          path: /usr/share/growlvm/image-layout.yml
+  salt:
+    control:
+      cluster:
+        internal:
+          node:
+            mtr01:
+              name: ${_param:stacklight_telemetry_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_telemetry_backend_image}
+              provider: ${_param:infra_kvm_node04_hostname}.${_param:cluster_domain}
+              size: stacklight.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_telemetry}
+            mtr02:
+              name: ${_param:stacklight_telemetry_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_telemetry_backend_image}
+              provider: ${_param:infra_kvm_node05_hostname}.${_param:cluster_domain}
+              size: stacklight.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_telemetry}
+            mtr03:
+              name: ${_param:stacklight_telemetry_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_telemetry_backend_image}
+              provider: ${_param:infra_kvm_node06_hostname}.${_param:cluster_domain}
+              size: stacklight.telemetry
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_telemetry}
+            log01:
+              name: ${_param:stacklight_log_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_log_backend_image}
+              provider: ${_param:infra_kvm_node04_hostname}.${_param:cluster_domain}
+              size: stacklight.log
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_log}
+            log02:
+              name: ${_param:stacklight_log_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_log_backend_image}
+              provider: ${_param:infra_kvm_node05_hostname}.${_param:cluster_domain}
+              size: stacklight.log
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_log}
+            log03:
+              name: ${_param:stacklight_log_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_log_backend_image}
+              provider: ${_param:infra_kvm_node06_hostname}.${_param:cluster_domain}
+              size: stacklight.log
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_log}
+            mon01:
+              name: ${_param:stacklight_monitor_node01_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_monitor_backend_image}
+              provider: ${_param:infra_kvm_node04_hostname}.${_param:cluster_domain}
+              size: stacklight.server
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_server}
+            mon02:
+              name: ${_param:stacklight_monitor_node02_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_monitor_backend_image}
+              provider: ${_param:infra_kvm_node05_hostname}.${_param:cluster_domain}
+              size: stacklight.server
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_server}
+            mon03:
+              name: ${_param:stacklight_monitor_node03_hostname}
+              image: ${_param:salt_control_xenial_image}
+              backend: ${_param:stacklight_monitor_backend_image}
+              provider: ${_param:infra_kvm_node06_hostname}.${_param:cluster_domain}
+              size: stacklight.server
+              cloud_init: ${_param:salt_control_cluster_node_cloud_init_stacklight_server}
diff --git a/salt/control/sizes/ceph/golden.yml b/salt/control/sizes/ceph/golden.yml
new file mode 100644
index 0000000..6249056
--- /dev/null
+++ b/salt/control/sizes/ceph/golden.yml
@@ -0,0 +1,25 @@
+parameters:
+  _param:
+    salt_control_size_cpu_ceph_mon: 4
+    salt_control_size_ram_ceph_mon: 8192
+    salt_control_size_disk_profile_ceph_mon: large
+    salt_control_size_net_profile_ceph_mon: default
+    salt_control_size_cpu_ceph_rgw: 4
+    salt_control_size_ram_ceph_rgw: 16384
+    salt_control_size_disk_profile_ceph_rgw: small
+    salt_control_size_net_profile_ceph_rgw: default
+  salt:
+    control:
+      size:
+        ceph.mon:
+          cpu: ${_param:salt_control_size_cpu_ceph_mon}
+          ram: ${_param:salt_control_size_ram_ceph_mon}
+          disk_profile: ${_param:salt_control_size_disk_profile_ceph_mon}
+          net_profile: ${_param:salt_control_size_net_profile_ceph_mon}
+          image_layout: ${_param:salt_control_size_image_layout_ceph_mon}
+        ceph.rgw:
+          cpu: ${_param:salt_control_size_cpu_ceph_rgw}
+          ram: ${_param:salt_control_size_ram_ceph_rgw}
+          disk_profile: ${_param:salt_control_size_disk_profile_ceph_rgw}
+          net_profile: ${_param:salt_control_size_net_profile_ceph_rgw}
+          image_layout: ${_param:salt_control_size_image_layout_ceph_rgw}
diff --git a/salt/control/sizes/cicd/golden.yml b/salt/control/sizes/cicd/golden.yml
new file mode 100644
index 0000000..60e7bc4
--- /dev/null
+++ b/salt/control/sizes/cicd/golden.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 16384
+    salt_control_size_disk_profile_cicd_control: small
+    salt_control_size_net_profile_cicd_control: default
+  salt:
+    control:
+      size:
+        cicd.control:
+          cpu: ${_param:salt_control_size_cpu_cicd_control}
+          ram: ${_param:salt_control_size_ram_cicd_control}
+          disk_profile: ${_param:salt_control_size_disk_profile_cicd_control}
+          net_profile: ${_param:salt_control_size_net_profile_cicd_control}
+          image_layout: ${_param:salt_control_size_image_layout_cicd_control}
diff --git a/salt/control/sizes/openstack/golden.yml b/salt/control/sizes/openstack/golden.yml
new file mode 100644
index 0000000..47a35e4
--- /dev/null
+++ b/salt/control/sizes/openstack/golden.yml
@@ -0,0 +1,105 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 16
+    salt_control_size_ram_openstack_control: 65536
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 32786
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 16
+    salt_control_size_ram_openstack_message_queue: 65536
+    salt_control_size_disk_profile_openstack_message_queue: large
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 16384
+    salt_control_size_disk_profile_openstack_proxy: xxlarge
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
+    salt_control_size_cpu_openstack_share: 4
+    salt_control_size_ram_openstack_share: 4096
+    salt_control_size_disk_profile_openstack_share: large
+    salt_control_size_net_profile_openstack_share: default
+    salt_control_size_cpu_openstack_dns: 2
+    salt_control_size_ram_openstack_dns: 4096
+    salt_control_size_disk_profile_openstack_dns: small
+    salt_control_size_net_profile_openstack_dns: default
+    salt_control_size_cpu_openstack_telemetry: 8
+    salt_control_size_ram_openstack_telemetry: 32786
+    salt_control_size_disk_profile_openstack_telemetry: xxxlarge
+    salt_control_size_net_profile_openstack_telemetry: default
+    salt_control_size_cpu_openstack_barbican: 4
+    salt_control_size_ram_openstack_barbican: 8192
+    salt_control_size_disk_profile_openstack_barbican: small
+    salt_control_size_net_profile_openstack_barbican: default
+    salt_control_size_cpu_openstack_baremetal: 4
+    salt_control_size_ram_openstack_baremetal: 4096
+    salt_control_size_disk_profile_openstack_baremetal: small
+    salt_control_size_net_profile_openstack_baremetal: default
+  salt:
+    control:
+      size:
+        openstack.control:
+          cpu: ${_param:salt_control_size_cpu_openstack_control}
+          ram: ${_param:salt_control_size_ram_openstack_control}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_control}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_control}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_control}
+        openstack.database:
+          cpu: ${_param:salt_control_size_cpu_openstack_database}
+          ram: ${_param:salt_control_size_ram_openstack_database}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_database}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_database}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_database}
+        openstack.message_queue:
+          cpu: ${_param:salt_control_size_cpu_openstack_message_queue}
+          ram: ${_param:salt_control_size_ram_openstack_message_queue}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_message_queue}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_message_queue}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_message_queue}
+        openstack.proxy:
+          cpu: ${_param:salt_control_size_cpu_openstack_proxy}
+          ram: ${_param:salt_control_size_ram_openstack_proxy}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_proxy}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_proxy}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_proxy}
+        openstack.upgrade:
+          cpu: ${_param:salt_control_size_cpu_openstack_upgrade}
+          ram: ${_param:salt_control_size_ram_openstack_upgrade}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_upgrade}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_upgrade}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_upgrade}
+        openstack.share:
+          cpu: ${_param:salt_control_size_cpu_openstack_share}
+          ram: ${_param:salt_control_size_ram_openstack_share}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_share}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_share}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_share}
+        openstack.dns:
+          cpu: ${_param:salt_control_size_cpu_openstack_dns}
+          ram: ${_param:salt_control_size_ram_openstack_dns}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_dns}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_dns}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_dns}
+        openstack.telemetry:
+          cpu: ${_param:salt_control_size_cpu_openstack_telemetry}
+          ram: ${_param:salt_control_size_ram_openstack_telemetry}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_telemetry}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_telemetry}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_telemetry}
+        openstack.barbican:
+          cpu: ${_param:salt_control_size_cpu_openstack_barbican}
+          ram: ${_param:salt_control_size_ram_openstack_barbican}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_barbican}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_barbican}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_barbican}
+        openstack.baremetal:
+          cpu: ${_param:salt_control_size_cpu_openstack_baremetal}
+          ram: ${_param:salt_control_size_ram_openstack_baremetal}
+          disk_profile: ${_param:salt_control_size_disk_profile_openstack_baremetal}
+          net_profile: ${_param:salt_control_size_net_profile_openstack_baremetal}
+          image_layout: ${_param:salt_control_size_image_layout_openstack_baremetal}
diff --git a/salt/control/sizes/stacklight/golden.yml b/salt/control/sizes/stacklight/golden.yml
new file mode 100644
index 0000000..35e87e9
--- /dev/null
+++ b/salt/control/sizes/stacklight/golden.yml
@@ -0,0 +1,35 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 16
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xxhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 12
+    salt_control_size_ram_stacklight_server: 65536
+    salt_control_size_disk_profile_stacklight_server: huge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 12
+    salt_control_size_ram_stacklight_telemetry: 98304
+    salt_control_size_disk_profile_stacklight_telemetry: xhuge
+    salt_control_size_net_profile_stacklight_telemetry: default
+  salt:
+    control:
+      size:
+        stacklight.log:
+          cpu: ${_param:salt_control_size_cpu_stacklight_log}
+          ram: ${_param:salt_control_size_ram_stacklight_log}
+          disk_profile: ${_param:salt_control_size_disk_profile_stacklight_log}
+          net_profile: ${_param:salt_control_size_net_profile_stacklight_log}
+          image_layout: ${_param:salt_control_size_image_layout_stacklight_log}
+        stacklight.server:
+          cpu: ${_param:salt_control_size_cpu_stacklight_server}
+          ram: ${_param:salt_control_size_ram_stacklight_server}
+          disk_profile: ${_param:salt_control_size_disk_profile_stacklight_server}
+          net_profile: ${_param:salt_control_size_net_profile_stacklight_server}
+          image_layout: ${_param:salt_control_size_image_layout_stacklight_server}
+        stacklight.telemetry:
+          cpu: ${_param:salt_control_size_cpu_stacklight_telemetry}
+          ram: ${_param:salt_control_size_ram_stacklight_telemetry}
+          disk_profile: ${_param:salt_control_size_disk_profile_stacklight_telemetry}
+          net_profile: ${_param:salt_control_size_net_profile_stacklight_telemetry}
+          image_layout: ${_param:salt_control_size_image_layout_stacklight_telemetry}