Add BM SRIOV lab
MOSSUST-123
Change-Id: Id8e87640da4ed0c8426da1be32270616ed1058e5
diff --git a/tcp_tests/templates/cookied-model-generator/salt_bm-queens-sriov-ovs.yaml b/tcp_tests/templates/cookied-model-generator/salt_bm-queens-sriov-ovs.yaml
new file mode 100644
index 0000000..07a2c9f
--- /dev/null
+++ b/tcp_tests/templates/cookied-model-generator/salt_bm-queens-sriov-ovs.yaml
@@ -0,0 +1,108 @@
+{% from 'cookied-model-generator/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-model-generator/underlay.yaml' import DOMAIN_NAME with context %}
+
+# Other salt model repository parameters see in shared-salt.yaml
+{% set LAB_CONFIG_NAME = 'bm-queens-sriov-ovs' %}
+# Name of the context file (without extension, that is fixed .yaml) used to render the Environment model
+{% set ENVIRONMENT_MODEL_INVENTORY_NAME = os_env('ENVIRONMENT_MODEL_INVENTORY_NAME','bm-queens-sriov-ovs') %}
+# Path to the context files used to render Cluster and Environment models
+{%- set CLUSTER_CONTEXT_NAME = 'salt-context-cookiecutter-openstack_ovs.yaml' %}
+{%- set ENVIRONMENT_CONTEXT_NAMES = ['salt-context-vcp-environment.yaml', 'salt-context-environment.yaml','salt-context-cookiecutter-openstack_ovs.yaml'] %}
+{%- set CONTROL_VLAN = os_env('CONTROL_VLAN', '2404') %}
+{%- set TENANT_VLAN = os_env('TENANT_VLAN', '2406') %}
+
+{%- set IPMI_USER = os_env('IPMI_USER', 'mcp-qa') %}
+{%- set IPMI_PASS = os_env('IPMI_PASS', 'password') %}
+{%- set CISCO_PASS = os_env('CISCO_PASS', 'cisco_pass') %}
+
+
+{% import 'shared-salt.yaml' as SHARED with context %}
+
+{{ SHARED.MACRO_INSTALL_PACKAGES_ON_NODES(HOSTNAME_CFG01) }}
+
+{{ SHARED.MACRO_INSTALL_FORMULAS_FROM_UPDATE() }}
+
+{{ SHARED.MACRO_INSTALL_FORMULAS('\*') }}
+
+{{ SHARED.MACRO_UPLOAD_AND_IMPORT_GPG_ENCRYPTION_KEY() }}
+
+{{ SHARED.MACRO_GENERATE_COOKIECUTTER_MODEL(CONTROL_VLAN=CONTROL_VLAN, TENANT_VLAN=TENANT_VLAN) }}
+
+{{ SHARED.MACRO_GENERATE_AND_ENABLE_ENVIRONMENT_MODEL() }}
+
+
+- description: Temporary WR for correct bridge name according to envoronment templates
+ cmd: |
+ sed -i 's/br\-ctl/br\_ctl/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
+ sed -i 's/br\-mgm/br\_mgm/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
+ sed -i 's/br\-baremetal/br\_baremetal/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/kvm.yml;
+ sed -i 's/br\-ctl/br\_ctl/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/gateway.yml;
+ salt '*' saltutil.refresh_pillar;
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 10}
+ skip_fail: false
+
+{{ SHARED.MACRO_GENERATE_INVENTORY(RERUN_SALTMASTER_STATE=true) }}
+
+- description: Defining username and password params for IPMI access
+ cmd: |
+ sed -i 's/==IPMI_USER==/${_param:power_user}/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/maas_machines.yml;
+ sed -i 's/==IPMI_PASS==/${_param:power_password}/g' /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/maas_machines.yml;
+ sed -i 's/==IPMI_USER==/${_param:power_user}/g' /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/baremetal_nodes.yml;
+ sed -i 's/==IPMI_PASS==/${_param:power_password}/g' /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/baremetal_nodes.yml;
+ sed -i 's/==IPMI_USER==/${_param:power_user}/g' /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/switch.yml;
+ sed -i 's/==CISCO_PASS==/${_param:cisco_password}/g' /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/switch.yml;
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 10}
+ skip_fail: false
+
+- description: "Add user/password for IPMI access"
+ cmd: |
+ set -e;
+ set -x;
+ . /root/venv-reclass-tools/bin/activate;
+ reclass-tools add-key parameters._param.power_user {{ IPMI_USER }} /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/maas_machines.yml;
+ reclass-tools add-key parameters._param.power_password {{ IPMI_PASS }} /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/maas_machines.yml;
+ reclass-tools add-key parameters._param.power_user {{ IPMI_USER }} /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/baremetal_nodes.yml;
+ reclass-tools add-key parameters._param.power_password {{ IPMI_PASS }} /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/baremetal_nodes.yml;
+ reclass-tools add-key parameters._param.power_user {{ IPMI_USER }} /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/switch.yml;
+ reclass-tools add-key parameters._param.cisco_password {{ CISCO_PASS }} /srv/salt/reclass/classes/environment/{{ LAB_CONFIG_NAME }}/features/ironic/switch.yml;
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 5}
+ skip_fail: false
+
+- description: "Maas disk_erase_with_secure_erase set false"
+ cmd: |
+ set -e;
+ set -x;
+ . /root/venv-reclass-tools/bin/activate;
+ reclass-tools add-bool-key parameters.maas.region.maas_config.disk_erase_with_secure_erase false /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/infra/maas.yml;
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 5}
+ skip_fail: false
+
+- description: "SR-IOV configuration"
+ cmd: |
+ set -e;
+ set -x;
+ . /root/venv-reclass-tools/bin/activate;
+ reclass-tools add-key --merge classes system.neutron.compute.nfv.sriov /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters._param.sriov_nic01_device_name ten2 /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters._param.sriov_nic01_numvfs 16 /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters._param.sriov_nic01_physical_network physnet1 /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-bool-key parameters._param.sriov_unsafe_interrupts True /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters.nova.compute.sriov.sriov_nic01.physical_network '${_param:sriov_nic01_physical_network}' /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters.nova.compute.sriov.sriov_nic01.devname '${_param:sriov_nic01_device_name}' /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters.linux.system.kernel.boot_options "['intel_iommu=on']" /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-bool-key parameters.linux.system.kernel.sriov True /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-bool-key parameters.linux.system.kernel.unsafe_interrupts True /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key parameters.linux.network.interface.ten2.pre_up_cmds "['echo \${_param:sriov_nic01_numvfs} > /sys/class/net/\${_param:sriov_nic01_device_name}/device/sriov_numvfs']" /srv/salt/reclass/classes/cluster/*/openstack/compute/init.yml
+ reclass-tools add-key --merge classes system.neutron.control.openvswitch.sriov /srv/salt/reclass/classes/cluster/*/openstack/control.yml
+ reclass-tools add-key parameters.nova.controller.pci.alias.alias.name intelvf /srv/salt/reclass/classes/cluster/*/openstack/control.yml
+ reclass-tools add-key parameters.nova.controller.pci.alias.alias.product_id 10ed /srv/salt/reclass/classes/cluster/*/openstack/control.yml
+ reclass-tools add-key parameters.nova.controller.pci.alias.alias.device_type type-VF /srv/salt/reclass/classes/cluster/*/openstack/control.yml
+ reclass-tools add-key --str parameters.nova.controller.pci.alias.alias.vendor_id "8086" /srv/salt/reclass/classes/cluster/*/openstack/control.yml
+
+ node_name: {{ HOSTNAME_CFG01 }}
+ retry: {count: 1, delay: 5}
+ skip_fail: false