Add model bm-k8s-contrail-cicd-maas

Change-Id: Id59ece60510c0739767f63183de1e97e696af1ac
diff --git a/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/lab04-physical-inventory.yaml b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/lab04-physical-inventory.yaml
new file mode 100644
index 0000000..d51f4b6
--- /dev/null
+++ b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/lab04-physical-inventory.yaml
@@ -0,0 +1,96 @@
+nodes:

+    cfg01.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: infra_config_node01

+      roles:

+      - infra_config

+      - linux_system_codename_xenial

+      interfaces:

+        ens3:

+          role: single_static_mgm

+        ens4:

+          role: single_static_ctl

+    # Physical nodes

+

+    kvm01.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: infra_kvm_node01

+      roles:

+      - infra_kvm

+      - linux_system_codename_xenial

+      interfaces:

+        enp9s0f0:

+          role: single_dhcp

+        enp9s0f1:

+          role: single_vlan_ctl

+        ens11f0:

+          role: single_mgm_manual_vlan

+

+    kvm02.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: infra_kvm_node02

+      roles:

+      - infra_kvm

+      - linux_system_codename_xenial

+      interfaces:

+        enp9s0f0:

+          role: single_dhcp

+        enp9s0f1:

+          role: single_vlan_ctl

+        ens11f0:

+          role: single_mgm_manual_vlan

+

+    kvm03.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: infra_kvm_node03

+      roles:

+      - infra_kvm

+      - linux_system_codename_xenial

+      interfaces:

+        enp9s0f0:

+          role: single_dhcp

+        enp9s0f1:

+          role: single_vlan_ctl

+        ens11f0:

+          role: single_mgm_manual_vlan

+

+    ctl01.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: kubernetes_control_node01

+      roles:

+      - kubernetes_control_contrail

+      - linux_system_codename_xenial

+      interfaces:

+        enp2s0f0:

+          role: single_dhcp

+        enp2s0f1:

+          role: single_vlan_ctl

+

+    ctl02.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: kubernetes_control_node02

+      roles:

+      - kubernetes_control_contrail

+      - linux_system_codename_xenial

+      interfaces:

+        enp2s0f0:

+          role: single_dhcp

+        enp2s0f1:

+          role: single_vlan_ctl

+

+    ctl03.cookied-cicd-bm-k8s-contrail40-maas.local:

+      reclass_storage_name: kubernetes_control_node03

+      roles:

+      - kubernetes_control_contrail

+      - linux_system_codename_xenial

+      interfaces:

+        enp2s0f0:

+          role: single_dhcp

+        enp2s0f1:

+          role: single_vlan_ctl

+

+    cmp<<count>>:

+      reclass_storage_name: kubernetes_compute_rack01

+      roles:

+      - kubernetes_compute_contrail

+      - linux_system_codename_xenial

+      - salt_master_host

+      interfaces:

+        enp9s0f0:

+          role: single_dhcp

+        ens11f1:

+          role: k8s_oc40_only_vhost_on_control_vlan

diff --git a/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-cookiecutter-k8s-contrail.yaml b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-cookiecutter-k8s-contrail.yaml
new file mode 100644
index 0000000..e2bbdb7
--- /dev/null
+++ b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-cookiecutter-k8s-contrail.yaml
@@ -0,0 +1,360 @@
+#https://docs.mirantis.com/mcp/master/mcp-ref-arch/opencontrail-plan/contrail-overview/contrail-4.html#
+default_context:
+  backup_private_key: |-
+    -----BEGIN RSA PRIVATE KEY-----
+    MIIEowIBAAKCAQEAskZyhTySYWvGrp+dlv+q2La8oiM8Sv1JfQog8+UW28hGUbCq
+    PnWa7bzVqENEY+g+qbQYh2Pvb2xURyY9+02TWLmCYzq7+orO1eG2SDt384YzDc6B
+    nQohUbGwaSH2YsT/QA8KV1fvUW9P0gVEHmJWR8Jo3vdRyw+tEUszYkiTYkcVc9zt
+    O5eYT9a6gSjLhl+tmJXu38jdWTcE8zJP+OGpJRDJpV2EAYwv+LXde9REv4KCGMqN
+    lvli9IA+zarfMsAzSTPpL5ooslB20akKM1h5li3LG47OpKMG9sMVFGEEo7+lqTGa
+    zUJEUPbJU95PqLfxoIOjYF/MhWKU5VALLraVwwIDAQABAoIBAHUAj0CqlFej6G3L
+    DB6CBZrds8el4HhG6+hIsX/gprPwKVaL3+/GN7w35vHb1BLN5fJy5HZXPFmge1+G
+    1b8NFttwRQbjEWRJnZ352Sxm+z60oOU61w4+C8gWGnWleJMyP2PHez3/1G1Z5MUt
+    95sJZx8JlNJg9ymSTD/BXyPuBezFKf8jUSgPbhBv8B2yy82YGzqc9u7sK6BN90P1
+    3ZcynQ4cfieZLoim56dF9YEixr8plGmGpOspPZFlVCGIc1y2BC4ZUyDatcCa7/gQ
+    3aDdt9lkEfoCHezAFOmaZDCOZ70spkwCqXYk42BXpDjKF6djCXyx3WKVF+IhEOYT
+    /S1I8KECgYEA1tzUZgW43/Z7Sm+QnoK3R9hG2oZZOoiTDdHyC+f5dk6maNbJbivM
+    FAPIpzHtCyvBEiSgGmlqpUrwR2NbYnOHjOX72Yq7/e0Vl1XWmplKCsTDNFGXx5Fs
+    9AQbWjOF+drgfZ5p3dNyE9689nJZg5EhTxL8dfwnZat/l+/OKFO2tM0CgYEA1GhW
+    4FMsXe3/g7M0dj5FnbS8xjz93pei5YZanID9mY/RUcKbegdtfvtwsfkZe5trbI39
+    jv96QyJeAnf48UDFwCV6SSZF/8Ez0pYHZanwkwKsli5uZdvSz7rUyVwE6tyO24WA
+    Trgpmbb8uxhJHBNuD+bC/iGd1H0IUuJ65ChD9M8CgYEAxfp2z4boQZ2ZHw5LoHLr
+    tIyJROPUJgYgEfToZaYbC7MOzL1Un2pFwg92fPCY7dkkLraGu690r9esLOtVEhNH
+    zEFB3cJi1Gf3pBlZA9zJB8Ej6Pphs2bBkNqT5XpiMcZHYhhsjhQ+Iibz0NWuu3cn
+    zPe+nmx4VMtAZ1x0hl4UlOUCgYBh8NaWS2O60AIwrRI0r5QUGwGsevUojU0Mfr4L
+    SiMlir4e8BgW1ZP0qGYXel/4sfp/rJ1NMZojmJY2lzFPtOk6J03SqvY97s1BffJd
+    O1X1w5bnDPPUvd7f8CsryeVuklLBADbglWSBP3IbpyAW9RKb/HDPE5seHqUW6t11
+    lOd42wKBgBW0tTV6+aqao6o4ZBU0SVoNg9/PwgOubAzeSDW2+ArXn1sMmroSfXVw
+    fbUTJI5TF/1pd7A5AKoR1FfTqlssoYlMGEPI6HJ4n9/4SqLpwd99HFW0ISt+EUMh
+    Tqt9mDfKzwHxG2QTuOwyrslO8iTwRoN5OYgm4dsL471Obr4DILTz
+    -----END RSA PRIVATE KEY-----
+  backup_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyRnKFPJJha8aun52W/6rYtryiIzxK/Ul9CiDz5RbbyEZRsKo+dZrtvNWoQ0Rj6D6ptBiHY+9vbFRHJj37TZNYuYJjOrv6is7V4bZIO3fzhjMNzoGdCiFRsbBpIfZixP9ADwpXV+9Rb0/SBUQeYlZHwmje91HLD60RSzNiSJNiRxVz3O07l5hP1rqBKMuGX62Yle7fyN1ZNwTzMk/44aklEMmlXYQBjC/4td171ES/goIYyo2W+WL0gD7Nqt8ywDNJM+kvmiiyUHbRqQozWHmWLcsbjs6kowb2wxUUYQSjv6WpMZrNQkRQ9slT3k+ot/Ggg6NgX8yFYpTlUAsutpXD
+  bmk_enabled: 'False'
+  ceph_enabled: 'False'
+  auditd_enabled: 'False'
+  cicd_control_node01_address: 10.167.13.91
+  cicd_control_node01_hostname: cid01
+  cicd_control_node02_address: 10.167.13.92
+  cicd_control_node02_hostname: cid02
+  cicd_control_node03_address: 10.167.13.93
+  cicd_control_node03_hostname: cid03
+  cicd_control_vip_address: 10.167.13.90
+  cicd_control_vip_hostname: cid
+  cicd_enabled: 'True'
+  cicd_private_key: |-
+    -----BEGIN RSA PRIVATE KEY-----
+    MIIEpgIBAAKCAQEAxLQy4F7sNBloj0fFvklCq9+IX/BV5OBs6OtSBf6A+ztTs68i
+    ib5W6Tz/knh7wt2URB6uKJJBRBK+Oqj91ZNJxISewP2f5gX10WpjOAti+Fghkemt
+    kvyA8aUxX1wuAz7Y2v1uv1IkfWa5ubL8oJXNjeT9yeCNJWBxvd46XT9UiCs5CnDL
+    lBjRg+AP2+u5OabUFtH7GSzVqcMzhi0qLilP+cRhKmar2tQXFEI5wnwADh0REAF/
+    OxUZPaPEPD9TW7fGxjfrMtyUKqTEbi+EPsIvldkR0IhYrKXjwcFFu3FKISuy8PVM
+    EKUM5aZaLMI/WiMs1zmx+bAOrkCsUAf+sVmocQIDAQABAoIBAQCRnSAojrxmmQSZ
+    RLVy9wK+/zwSYXUEeMrG5iUTQOM0mCePVa/IrjnicYB0anKbv7IZd2jPqe1cuk9O
+    V3mJGH68Vry6+0XaX0EpJIuMmolKdNttC8Ktk/TUbciN4kxBpM2d14ybXvCaUGhe
+    usxfCGZhi0oAnxV9vNaWiqNEEjS+k4u9XTnj3+GxstEwch+l7xJwz83WEsx7G1Zz
+    3Yxg7mh2uRPVCOZGVdClciym+9WHHrcdYw/OJCsSFsT7+qgzptsvXBVxa6EuGaVY
+    Pba+UfOnYIKlBtka4i3zXGaCQF6t2FHw5WyUEmYm3iBYmrGBbEf+3665Kh4NQs0a
+    PV4eHlLdAoGBAO8nDgkTA4gi1gyFy2YBUFP2BignkKCZGHkD8qvBnOt1Rxm6USlZ
+    7GzAtU3nSd8ODzgOBI7+zd82yRqv2hEwP7xARhr0Nx1XvyaQtRlQ6tQnBgvqLDCG
+    n0qvWoBM+Yl6sTRGYavAMCaR7PuULUcZFNWk7m0fv4vqddGijgRsje37AoGBANKP
+    nN72BujsQIhdzAYS+u5/Hxu56Tvgupe6kWkhQuV8MQcM+79I6cgJxxH6zQDP/hGt
+    3vXapgWUgi025LuEUWfkxAtTUfT4cRP2x529CH/XLQMYVqWxkoben9r+eFav+Kgw
+    C0dR3vSOlEMzYoIF+p/km0mIV1ZKZvrWymtXSdODAoGBAL4feUwDfqpKr4pzD1l/
+    r+Gf1BM2KQdTzp3eYpzjJiIWMTkl4wIRyCBJL5nIRvT6E2VH153qubY7srLxnFZP
+    2kuJeXJSNkKwkHlTT3XZ22Zfw7HTL+BAFgDk2PjouPTvwlLBpUJKXr07A4CZs0kz
+    ilmybg340GmmMpY/OdIQjuDjAoGBAMcd5hP2hqxHlfMe+CwaUM+uySU4FvZ32xxW
+    4uGPAarwWZC4V20Zr3JqxKUdDjYhersPOFQ4c129hajqSz2EsFLWRAoNvegx9QUT
+    Dsv9EgeK3Vca8f14wf7mkjbPA8++UyABZvkH1BZiqpQuCI66xrnjvnG4DBde/qlg
+    60S84+SvAoGBAKH1feNtJaNhDxF0OqRuVmSFyL3pkMDoYr/mgpT4T1ToRBW5AtEt
+    Io4egi68ph8IChAt/TGFvikW7tbEgK9ACD/RAfl+LiuhxqJJFtC1LfGfHI7ntuRj
+    DjQrUy59ULoflh3iWBPtpw2ooRlSrAwaIgGt9odMECXp3BK8WLsUG9H1
+    -----END RSA PRIVATE KEY-----
+  cicd_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEtDLgXuw0GWiPR8W+SUKr34hf8FXk4Gzo61IF/oD7O1OzryKJvlbpPP+SeHvC3ZREHq4okkFEEr46qP3Vk0nEhJ7A/Z/mBfXRamM4C2L4WCGR6a2S/IDxpTFfXC4DPtja/W6/UiR9Zrm5svyglc2N5P3J4I0lYHG93jpdP1SIKzkKcMuUGNGD4A/b67k5ptQW0fsZLNWpwzOGLSouKU/5xGEqZqva1BcUQjnCfAAOHREQAX87FRk9o8Q8P1Nbt8bGN+sy3JQqpMRuL4Q+wi+V2RHQiFispePBwUW7cUohK7Lw9UwQpQzlploswj9aIyzXObH5sA6uQKxQB/6xWahx
+  cluster_domain: bm-mcp-k8s-contrail.local
+  cluster_name: bm-mcp-k8s-contrail
+  # compute_bond_mode: active-backup
+  compute_padding_with_zeros: 'True'
+  compute_primary_first_nic: eth1
+  compute_primary_second_nic: eth2
+  context_seed: GAZbu3hguubkeYMg15AQ1J6UuY60TAh8h0EVpNUrHWhjRS2SxRYBuxxLvVURv82m
+  control_network_netmask: 255.255.255.0
+  control_network_subnet: 10.167.13.0/24
+  control_vlan: '2410'
+  backend_vlan: '2402'
+  cookiecutter_template_branch: ''
+  cookiecutter_template_credentials: gerrit
+  cookiecutter_template_url: https://gerrit.mcp.mirantis.com/mk/cookiecutter-templates.git
+  deploy_network_gateway: 172.17.41.2
+  deploy_network_netmask: 255.255.255.192
+  deploy_network_subnet: 172.17.41.0/26
+  deployment_type: physical
+  dns_server01: 172.18.208.44
+  dns_server02: 172.18.176.6
+  email_address: dtyzhnenko@mirantis.com
+  etcd_ssl: 'True'
+  infra_bond_mode: active-backup
+  infra_deploy_nic: eth0
+  infra_kvm01_control_address: 10.167.13.241
+  infra_kvm01_deploy_address: 172.17.41.4
+  infra_kvm01_hostname: kvm01
+  infra_kvm02_control_address: 10.167.13.242
+  infra_kvm02_deploy_address: 172.17.41.5
+  infra_kvm02_hostname: kvm02
+  infra_kvm03_control_address: 10.167.13.243
+  infra_kvm03_deploy_address: 172.17.41.6
+  infra_kvm03_hostname: kvm03
+  infra_kvm_vip_address: 10.167.13.240
+  infra_primary_first_nic: eth1
+  infra_primary_second_nic: eth2
+  kubernetes_enabled: 'True'
+  kubernetes_compute_count: 2
+  kubernetes_compute_rack01_hostname: cmp
+  kubernetes_compute_single_address_ranges: 10.167.13.103-10.167.13.104
+  kubernetes_compute_tenant_address_ranges: 10.167.13.103-10.167.13.104
+  kubernetes_network_opencontrail_enabled: 'True'
+  kubernetes_keepalived_vip_interface: br_ctl
+  kubernetes_metallb_enabled: 'False'  # Not used with opencontrail
+  metallb_addresses: 172.17.41.160-172.17.41.180
+  kubernetes_ingressnginx_enabled: 'True'
+  kubernetes_ingressnginx_controller_replicas: 2
+  local_repositories: 'False'
+  maas_enabled: 'True'
+  maas_deploy_address: 172.17.41.3
+  maas_deploy_cidr: 172.17.41.0/26
+  maas_deploy_gateway: 172.17.41.2
+  maas_deploy_range_end: 172.17.41.60
+  maas_deploy_range_start: 172.17.41.13
+  maas_deploy_vlan: '0'
+  maas_dhcp_enabled: 'True'
+  maas_fabric_name: fabric-0
+  maas_hostname: cfg01
+  maas_manage_deploy_network: 'True'
+  maas_machines: |
+        kvm01: # cz7784-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          # pxe_interface_mac:
+          pxe_interface_mac: "0c:c4:7a:6c:88:fe"
+          interfaces:
+            enp9s0f0:
+              mac: "0c:c4:7a:6c:88:fe"
+              mode: "static"
+              ip: "172.17.41.4"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "5.43.225.115"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        kvm02: # #cz7785-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:34:53:8e"
+          interfaces:
+            enp9s0f0:
+              mac: "0c:c4:7a:34:53:8e"
+              mode: "static"
+              ip: "172.17.41.5"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "5.43.225.121"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        kvm03: # #cz7744-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:34:55:2c"
+          interfaces:
+            enp9s0f0:
+              mac: "0c:c4:7a:34:55:2c"
+              mode: "static"
+              ip: "172.17.41.6"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "5.43.225.126"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        ctl01: # #cz7609.bud.mirantis.net
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:54:a2:9c"
+          interfaces:
+            enp2s0f0:
+              mac: "0c:c4:7a:54:a2:9c"
+              mode: "static"
+              ip: "172.17.41.9"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "185.8.59.239"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        ctl02: # #cz7631-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:54:a0:56"
+          interfaces:
+            enp2s0f0:
+              mac: "0c:c4:7a:54:a0:56"
+              mode: "static"
+              ip: "172.17.41.10"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "185.8.59.237"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        ctl03: # #cz7632-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:54:a0:08"
+          interfaces:
+            enp2s0f0:
+              mac: "0c:c4:7a:54:a0:08"
+              mode: "static"
+              ip: "172.17.41.11"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "185.8.59.236"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        cmp001: # #cz7781-kvm.host-telecom.com
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:6c:58:06"
+          interfaces:
+            enp9s0f0:
+              mac: "0c:c4:7a:6c:58:06"
+              mode: "static"
+              ip: "172.17.41.7"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "5.43.225.120"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+        cmp002: # cz7674.bud.mirantis.net
+          distro_series: "xenial"
+          # hwe_kernel: "hwe-16.04"
+          pxe_interface_mac: "0c:c4:7a:33:27:22"
+          interfaces:
+            enp9s0f0:
+              mac: "0c:c4:7a:33:27:22"
+              mode: "static"
+              ip: "172.17.41.8"
+              subnet: ${maas:region:subnets:deploy_network:cidr} # create it manually... in UI
+              gateway: ${_param:deploy_network_gateway}
+          power_parameters:
+            power_address: "176.74.217.166"
+            power_pass: ==IPMI_PASS==
+            power_type: ipmi
+            power_user: ==IPMI_USER==
+
+  mcp_common_scripts_branch: ''
+  mcp_version: proposed
+  offline_deployment: 'False'
+  kubernetes_control_address: 10.167.13.236
+  kubernetes_control_node01_deploy_address: 172.17.41.9
+  kubernetes_control_node01_address: 10.167.13.239
+  kubernetes_control_node01_hostname: ctl01
+  kubernetes_control_node02_deploy_address: 172.17.41.10
+  kubernetes_control_node02_address: 10.167.13.238
+  kubernetes_control_node02_hostname: ctl02
+  kubernetes_control_node02_deploy_address: 172.17.41.11
+  kubernetes_control_node03_address: 10.167.13.237
+  kubernetes_control_node03_hostname: ctl03
+  linux_repo_contrail_component: oc40
+  opencontrail_analytics_hostname: ctl
+  opencontrail_analytics_node01_hostname: ctl01
+  opencontrail_analytics_node02_hostname: ctl02
+  opencontrail_analytics_node03_hostname: ctl03
+  opencontrail_analytics_address: ${_param:opencontrail_control_address}
+  opencontrail_analytics_node01_address: ${_param:opencontrail_control_node01_address}
+  opencontrail_analytics_node02_address: ${_param:opencontrail_control_node02_address}
+  opencontrail_analytics_node03_address: ${_param:opencontrail_control_node03_address}
+  opencontrail_compute_iface_mask: '24'
+  opencontrail_compute_iface: ten2
+  opencontrail_control_address: 10.167.13.236
+  opencontrail_control_hostname: ctl
+  opencontrail_control_node01_address: 10.167.13.239
+  opencontrail_control_node01_hostname: ctl01
+  opencontrail_control_node02_address: 10.167.13.238
+  opencontrail_control_node02_hostname: ctl02
+  opencontrail_control_node03_address: 10.167.13.237
+  opencontrail_control_node03_hostname: ctl03
+  opencontrail_enabled: 'True'
+  opencontrail_router01_address: 10.167.13.100
+  opencontrail_router01_hostname: rtr01
+  opencontrail_router02_address: 10.167.13.101
+  opencontrail_router02_hostname: rtr02
+  opencontrail_public_ip_range: 172.17.41.128/26
+  opencontrail_version: '4.0'
+  openstack_enabled: 'False'
+  openssh_groups: ''
+  openstack_version: pike
+  openldap_domain: ${_param:cluster_name}.local
+  openldap_enabled: 'True'
+  openldap_organisation: ${_param:cluster_name}
+  oss_enabled: 'False'
+  oss_node03_address: ${_param:stacklight_monitor_node03_address}
+  oss_notification_smtp_use_tls: 'False'
+  oss_pushkin_email_sender_password: password
+  oss_pushkin_smtp_host: 127.0.0.1
+  oss_pushkin_smtp_port: '587'
+  oss_webhook_app_id: '24'
+  oss_webhook_login_id: '13'
+  platform: kubernetes_enabled
+  public_host: ${_param:infra_config_address}
+  publication_method: email
+  reclass_repository: https://github.com/Mirantis/mk-lab-salt-model.git
+  salt_api_password: frJMLJsfGkFXCk4qTTEttKla518Akvdp
+  salt_api_password_hash: $6$ixefPtcd$vasKuySO6L2JM0FKaB/udsQvH4upI2dWoJZaR9XTqeAx4UMvkHsNNSwsALVqTTLbXIngkFqYNXpbNm1o4iMGS.
+  salt_master_address: 10.167.13.15
+  salt_master_hostname: cfg01
+  salt_master_management_address: 172.17.41.3
+  shared_reclass_branch: ''
+  shared_reclass_url: https://gerrit.mcp.mirantis.com/salt-models/reclass-system.git
+  stacklight_enabled: 'True'
+  stacklight_log_address: 10.167.13.60
+  stacklight_log_hostname: log
+  stacklight_log_node01_address: 10.167.13.61
+  stacklight_log_node01_hostname: log01
+  stacklight_log_node02_address: 10.167.13.62
+  stacklight_log_node02_hostname: log02
+  stacklight_log_node03_address: 10.167.13.63
+  stacklight_log_node03_hostname: log03
+  stacklight_monitor_address: 10.167.13.70
+  stacklight_monitor_hostname: mon
+  stacklight_monitor_node01_address: 10.167.13.71
+  stacklight_monitor_node01_hostname: mon01
+  stacklight_monitor_node02_address: 10.167.13.72
+  stacklight_monitor_node02_hostname: mon02
+  stacklight_monitor_node03_address: 10.167.13.73
+  stacklight_monitor_node03_hostname: mon03
+  stacklight_telemetry_address: 10.167.13.85
+  stacklight_telemetry_hostname: mtr
+  stacklight_telemetry_node01_address: 10.167.13.86
+  stacklight_telemetry_node01_hostname: mtr01
+  stacklight_telemetry_node02_address: 10.167.13.87
+  stacklight_telemetry_node02_hostname: mtr02
+  stacklight_telemetry_node03_address: 10.167.13.88
+  stacklight_telemetry_node03_hostname: mtr03
+  stacklight_version: '2'
+  static_ips_on_deploy_network_enabled: 'False'
+  tenant_network_gateway: 10.167.13.1
+  tenant_network_netmask: 255.255.255.0
+  tenant_network_subnet: 10.167.13.0/24
+  tenant_vlan: '2410'
+  upstream_proxy_enabled: 'False'
+  use_default_network_scheme: 'True'
+  vnf_onboarding_enabled: 'False'
diff --git a/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-environment.yaml b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-environment.yaml
new file mode 100644
index 0000000..5ef4e1b
--- /dev/null
+++ b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt-context-environment.yaml
@@ -0,0 +1,132 @@
+nodes:

+    mon01.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_server_node01

+      roles:

+      - stacklightv2_server_leader

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    mon02.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_server_node02

+      roles:

+      - stacklightv2_server

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    mon03.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_server_node03

+      roles:

+      - stacklightv2_server

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    mtr01.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_telemetry_node01

+      roles:

+      - stacklight_telemetry

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    mtr02.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_telemetry_node02

+      roles:

+      - stacklight_telemetry

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    mtr03.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_telemetry_node03

+      roles:

+      - stacklight_telemetry

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    log01.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_log_node01

+      roles:

+      - stacklight_log_leader_v2

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    log02.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_log_node02

+      roles:

+      - stacklight_log

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    log03.bm-k8s-contrail.local:

+      reclass_storage_name: stacklight_log_node03

+      roles:

+      - stacklight_log

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    cid01.bm-k8s-contrail.local:

+      reclass_storage_name: cicd_control_node01

+      roles:

+      - cicd_control_leader

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    cid02.bm-k8s-contrail.local:

+      reclass_storage_name: cicd_control_node02

+      roles:

+      - cicd_control_manager

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

+

+    cid03.bm-k8s-contrail.local:

+      reclass_storage_name: cicd_control_node03

+      roles:

+      - cicd_control_manager

+      - linux_system_codename_xenial

+      interfaces:

+        ens2:

+          role: single_dhcp

+        ens3:

+          role: single_ctl

diff --git a/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt.yaml b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt.yaml
new file mode 100644
index 0000000..4fe952a
--- /dev/null
+++ b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/salt.yaml
@@ -0,0 +1,82 @@
+{% from 'cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml' import HOSTNAME_CFG01 with context %}
+{% from 'cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml' import LAB_CONFIG_NAME with context %}
+{% from 'cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml' import DOMAIN_NAME with context %}
+
+# Other salt model repository parameters see in shared-salt.yaml
+
+{% import 'shared-salt.yaml' as SHARED with context %}
+
+- description: Wait for salt-master is ready after configdrive user-data
+  cmd: |
+    timeout 120 salt-call test.ping
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
+
+{{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}
+
+{{SHARED.MACRO_CHECK_SALT_VERSION_SERVICES_ON_CFG()}}
+
+{{SHARED.MACRO_CHECK_SALT_VERSION_ON_NODES()}}
+
+- description: Prepare maas
+  cmd: |
+    salt-call state.sls maas.cluster;
+    salt-call state.sls maas.region;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 2, delay: 5}
+  skip_fail: false
+
+- description: Generate a public key for machines in MAAS
+  cmd: |
+    ssh-keygen -y -f ~root/.ssh/id_rsa > ~root/.ssh/id_rsa.pub
+    maas mirantis sshkeys create key="$(cat ~root/.ssh/id_rsa.pub)"
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Run comissioning of BM nodes
+  cmd: |
+    salt-call maas.process_machines
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Wait for machines ready
+  cmd: |
+    salt-call maas.machines_status && timeout 120 salt-call state.sls maas.machines.wait_for_ready
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 7, delay: 5}
+  skip_fail: false
+
+- description: Enforce the interfaces configuration defined in the model for servers
+  cmd: |
+    salt-call state.sls maas.machines.assign_ip;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: Remove all the salt-minions and re-register the cfg01 minion
+  cmd: |
+    salt-key -y -D;
+    salt-call test.ping
+    sleep 5
+    # Check that the cfg01 is registered
+    salt-key | grep cfg01
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 1, delay: 5}
+  skip_fail: false
+
+- description: provision the automatically commissioned physical nodes through MAAS
+  cmd: |
+    salt-call maas.deploy_machines;
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 3, delay: 5}
+  skip_fail: false
+
+- description: Wait for machines deployed
+  cmd: |
+    salt-call maas.machines_status && timeout 300 salt-call state.sls maas.machines.wait_for_deployed
+  node_name: {{ HOSTNAME_CFG01 }}
+  retry: {count: 6, delay: 5}
+  skip_fail: false
diff --git a/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml
new file mode 100644
index 0000000..e40b708
--- /dev/null
+++ b/tcp_tests/templates/cookied-cicd-bm-k8s-contrail40-maas/underlay.yaml
@@ -0,0 +1,129 @@
+# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
+{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'proposed') %}
+
+#{% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'physical_mcp11_ovs_dpdk') + '.local' %}
+{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'cookied-cicd-bm-k8s-contrail40-maas') %}
+{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME + '.local') %}
+{% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01') %}
+
+{% set ETH1_IP_ADDRESS_CFG01 = os_env('ETH1_IP_ADDRESS_CFG01', '172.17.41.3') %}
+
+---
+aliases:
+ - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
+ - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
+ - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
+
+
+template:
+  devops_settings:
+    env_name: {{ os_env('ENV_NAME', 'cookied-cicd-bm-k8s-contrail40-maas_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}
+
+    address_pools:
+      admin-pool01:
+        net: {{ os_env('ADMIN_ADDRESS_POOL01', '172.17.41.0/26:26') }}
+        params:
+          ip_reserved:
+            gateway: '172.17.41.2'
+            l2_network_device: +61
+            default_{{ HOSTNAME_CFG01 }}: {{ ETH1_IP_ADDRESS_CFG01 }}
+          ip_ranges:
+            dhcp: [+2, -3]
+      private-pool01:
+        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.167.13.0/24:24') }}
+        params:
+          ip_reserved:
+            gateway: +1
+            l2_network_device: +1
+          ip_ranges:
+            dhcp: [+2, -3]
+
+      tenant-pool01:
+        net: {{ os_env('TENANT_ADDRESS_POOL01', '10.167.14.0/24:24') }}
+        params:
+          ip_reserved:
+            gateway: +1
+            l2_network_device: +1
+          ip_ranges:
+            dhcp: [+2, -3]
+
+      external-pool01:
+        net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '172.17.41.128/26:26') }}
+        params:
+          ip_reserved:
+            gateway: +1
+            l2_network_device: -2
+          ip_ranges:
+            dhcp: [+2, -3]
+
+    groups:
+
+      - name: default
+        driver:
+          name: devops.driver.libvirt
+          params:
+            connection_string: !os_env CONNECTION_STRING, qemu:///system
+            storage_pool_name: !os_env STORAGE_POOL_NAME, default
+            stp: False
+            hpet: False
+            enable_acpi: true
+            use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
+
+        network_pools:
+          admin: admin-pool01
+
+        l2_network_devices:
+          admin:
+            address_pool: admin-pool01
+            dhcp: false
+            forward:
+              mode: bridge
+            parent_iface:
+              phys_dev: !os_env LAB_MANAGEMENT_IFACE
+          private:
+            address_pool: private-pool01
+            dhcp: false
+            forward:
+              mode: bridge
+            parent_iface:
+              phys_dev: !os_env LAB_CONTROL_IFACE
+
+        group_volumes:
+         - name: cfg01_day01_image               # Pre-configured day01 image
+           source_image: {{ os_env('IMAGE_PATH_CFG01_DAY01') }} # http://images.mirantis.com/cfg01-day01.qcow2 or fallback to IMAGE_PATH1604
+           format: qcow2
+
+        nodes:
+          - name: {{ HOSTNAME_CFG01 }}
+            role: salt_master
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 16384
+              boot:
+                - hd
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cfg01_day01_image
+                  format: qcow2
+                - name: config
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+
+              interfaces:
+                - label: ens3
+                  l2_network_device: admin
+                  interface_model: *interface_model
+                - label: ens4
+                  l2_network_device: private
+                  interface_model: *interface_model
+
+              network_config:
+                ens3:
+                  networks:
+                    - admin
+                ens4:
+                  networks:
+                    - private