contrail

[1] https://www.juniper.net/documentation/en_US/vsrx15.1x49-d40/topics/task/configuration/security-vsrx-kvm-bootstrap-config.html

Change-Id: Iec0daea6f82f175b774accbdecf6ed2e62aadefb
Signed-off-by: Sergii Golovatiuk <sgolovatiuk@mirantis.com>
Reviewed-on: https://review.gerrithub.io/362881
Reviewed-by: Tatyanka Leontovich <tleontovich@mirantis.com>
Tested-by: Tatyanka Leontovich <tleontovich@mirantis.com>
diff --git a/tcp_tests/templates/virtual-mcp11-k8s-contrail/underlay.yaml b/tcp_tests/templates/virtual-mcp11-k8s-contrail/underlay.yaml
index 1325108..541b829 100644
--- a/tcp_tests/templates/virtual-mcp11-k8s-contrail/underlay.yaml
+++ b/tcp_tests/templates/virtual-mcp11-k8s-contrail/underlay.yaml
@@ -4,6 +4,7 @@
 {% import 'virtual-mcp11-k8s-contrail/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
 {% import 'virtual-mcp11-k8s-contrail/underlay--user-data-cfg01.yaml' as CLOUDINIT_USER_DATA_CFG01 with context %}
 {% import 'virtual-mcp11-k8s-contrail/underlay--user-data1604.yaml' as CLOUDINIT_USER_DATA_1604 with context %}
+{% import 'virtual-mcp11-k8s-contrail/underlay--user-data1404.yaml' as CLOUDINIT_USER_DATA_1404 with context %}
 
 ---
 aliases:
@@ -11,6 +12,7 @@
  - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
  - &cloudinit_user_data_cfg01 {{ CLOUDINIT_USER_DATA_CFG01 }}
  - &cloudinit_user_data_1604 {{ CLOUDINIT_USER_DATA_1604 }}
+ - &cloudinit_user_data_1404 {{ CLOUDINIT_USER_DATA_1404 }}
 
 {% set DOMAIN_NAME = os_env('LAB_CONFIG_NAME', 'virtual-mcp11-k8s-contrail') + '.local' %}
 {% set HOSTNAME_CFG01 = os_env('HOSTNAME_CFG01', 'cfg01.' + DOMAIN_NAME) %}
@@ -19,6 +21,13 @@
 {% set HOSTNAME_CTL03 = os_env('HOSTNAME_CTL03', 'ctl03.' + DOMAIN_NAME) %}
 {% set HOSTNAME_CMP01 = os_env('HOSTNAME_CMP01', 'cmp01.' + DOMAIN_NAME) %}
 {% set HOSTNAME_CMP02 = os_env('HOSTNAME_CMP02', 'cmp02.' + DOMAIN_NAME) %}
+{% set HOSTNAME_MON01 = os_env('HOSTNAME_MON01', 'mon01.' + DOMAIN_NAME) %}
+{% set HOSTNAME_MON02 = os_env('HOSTNAME_MON02', 'mon02.' + DOMAIN_NAME) %}
+{% set HOSTNAME_MON03 = os_env('HOSTNAME_MON03', 'mon03.' + DOMAIN_NAME) %}
+{% set HOSTNAME_NTW01 = os_env('HOSTNAME_NTW01', 'ntw01.' + DOMAIN_NAME) %}
+{% set HOSTNAME_NTW02 = os_env('HOSTNAME_NTW02', 'ntw02.' + DOMAIN_NAME) %}
+{% set HOSTNAME_NTW03 = os_env('HOSTNAME_NTW03', 'ntw03.' + DOMAIN_NAME) %}
+{% set HOSTNAME_PRX01 = os_env('HOSTNAME_PRX01', 'prx01.' + DOMAIN_NAME) %}
 {% set HOSTNAME_VSRX01 = os_env('HOSTNAME_VSRX01', 'vsrx01' + DOMAIN_NAME) %}
 
 template:
@@ -26,45 +35,75 @@
     env_name: {{ os_env('ENV_NAME', 'virtual-mcp11-k8s-contrail_' + REPOSITORY_SUITE + "_" + os_env('BUILD_NUMBER', '')) }}
 
     address_pools:
-      private-pool01:
-        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '10.60.0.0/16:24') }}
-        params:
-          ip_reserved:
-            gateway: +1
-            l2_network_device: +1
-            default_{{ HOSTNAME_CFG01 }}: +100
-            default_{{ HOSTNAME_CTL01 }}: +107
-            default_{{ HOSTNAME_CTL02 }}: +108
-            default_{{ HOSTNAME_CTL03 }}: +109
-            default_{{ HOSTNAME_CMP01 }}: +105
-            default_{{ HOSTNAME_CMP02 }}: +106
-            default_{{ HOSTNAME_VSRX01 }}: +250
-          ip_ranges:
-            dhcp: [+90, -10]
 
-      admin-pool01:
-        net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
+      private-pool01:
+        net: {{ os_env('PRIVATE_ADDRESS_POOL01', '172.16.10.0/24:24') }}
         params:
           ip_reserved:
             gateway: +1
             l2_network_device: +1
             default_{{ HOSTNAME_CFG01 }}: +100
-            default_{{ HOSTNAME_CTL01 }}: +107
-            default_{{ HOSTNAME_CTL02 }}: +108
-            default_{{ HOSTNAME_CTL03 }}: +109
+            default_{{ HOSTNAME_CTL01 }}: +101
+            default_{{ HOSTNAME_CTL02 }}: +102
+            default_{{ HOSTNAME_CTL03 }}: +103
             default_{{ HOSTNAME_CMP01 }}: +105
             default_{{ HOSTNAME_CMP02 }}: +106
-            default_{{ HOSTNAME_VSRX01 }}: +250
+            default_{{ HOSTNAME_MON01 }}: +107
+            default_{{ HOSTNAME_MON02 }}: +108
+            default_{{ HOSTNAME_MON03 }}: +109
+            default_{{ HOSTNAME_NTW01 }}: +110
+            default_{{ HOSTNAME_NTW02 }}: +111
+            default_{{ HOSTNAME_NTW03 }}: +112
+            default_{{ HOSTNAME_PRX01 }}: +121
+            default_{{ HOSTNAME_VSRX01 }}: +90
           ip_ranges:
             dhcp: [+90, -10]
 
       public-pool01:
-        net: {{ os_env('PUBLIC_ADDRESS_POOL01', '10.80.0.0/16:24') }}
+        net: {{ os_env('PUBLIC_ADDRESS_POOL01', '192.168.10.0/24:24') }}
         params:
           ip_reserved:
             gateway: +1
             l2_network_device: +1
-            default_{{ HOSTNAME_VSRX01 }}: +250
+            default_{{ HOSTNAME_CFG01 }}: +100
+            default_{{ HOSTNAME_CTL01 }}: +101
+            default_{{ HOSTNAME_CTL02 }}: +102
+            default_{{ HOSTNAME_CTL03 }}: +103
+            default_{{ HOSTNAME_CMP01 }}: +105
+            default_{{ HOSTNAME_CMP02 }}: +106
+            default_{{ HOSTNAME_MON01 }}: +107
+            default_{{ HOSTNAME_MON02 }}: +108
+            default_{{ HOSTNAME_MON03 }}: +109
+            default_{{ HOSTNAME_NTW01 }}: +110
+            default_{{ HOSTNAME_NTW02 }}: +111
+            default_{{ HOSTNAME_NTW03 }}: +112
+            default_{{ HOSTNAME_PRX01 }}: +121
+            default_{{ HOSTNAME_VSRX01 }}: +90
+          ip_ranges:
+            dhcp: [+90, -10]
+
+      admin-pool01:
+        net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/24:24') }}
+        params:
+          ip_reserved:
+            gateway: +1
+            l2_network_device: +1
+            default_{{ HOSTNAME_CFG01 }}: +100
+            default_{{ HOSTNAME_CTL01 }}: +101
+            default_{{ HOSTNAME_CTL02 }}: +102
+            default_{{ HOSTNAME_CTL03 }}: +103
+            default_{{ HOSTNAME_CMP01 }}: +105
+            default_{{ HOSTNAME_CMP02 }}: +106
+            default_{{ HOSTNAME_MON01 }}: +107
+            default_{{ HOSTNAME_MON02 }}: +108
+            default_{{ HOSTNAME_MON03 }}: +109
+            default_{{ HOSTNAME_NTW01 }}: +110
+            default_{{ HOSTNAME_NTW02 }}: +111
+            default_{{ HOSTNAME_NTW03 }}: +112
+            default_{{ HOSTNAME_PRX01 }}: +121
+            default_{{ HOSTNAME_VSRX01 }}: +90
+          ip_ranges:
+            dhcp: [+90, -10]
 
     groups:
       - name: default
@@ -73,35 +112,38 @@
           params:
             connection_string: !os_env CONNECTION_STRING, qemu:///system
             storage_pool_name: !os_env STORAGE_POOL_NAME, default
-            stp: False
+            stp: True
             hpet: False
             enable_acpi: true
             use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
 
         network_pools:
-          admin: admin-pool01
           private: private-pool01
+          public: public-pool01
+          admin: admin-pool01
 
         l2_network_devices:
           private:
             address_pool: private-pool01
             dhcp: true
 
-          admin:
-            address_pool: admin-pool01
+          public:
+            address_pool: public-pool01
             dhcp: true
             forward:
               mode: nat
 
-          public:
-            address_pool: public-pool01
-            forward:
-              mode: nat
+          admin:
+            address_pool: admin-pool01
+            dhcp: true
 
         group_volumes:
          - name: cloudimage1604    # This name is used for 'backing_store' option for node volumes.
            source_image: !os_env IMAGE_PATH1604  # https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img or
-                                             # http://apt.tcpcloud.eu/images/ubuntu-16-04-x64-201608231004.qcow2
+           format: qcow2
+
+         - name: cloudimage1404
+           source_image: !os_env IMAGE_PATH1404
            format: qcow2
 
          - name: vsrx_image
@@ -134,18 +176,25 @@
 
               interfaces:
                 - label: ens3
-                  l2_network_device: admin
+                  l2_network_device: public
                   interface_model: *interface_model
                 - label: ens4
                   l2_network_device: private
                   interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: admin
+                  interface_model: *interface_model
+
               network_config:
                 ens3:
                   networks:
-                    - admin
+                    - public
                 ens4:
                   networks:
                     - private
+                ens5:
+                  networks:
+                    - admin
 
           - name: {{ HOSTNAME_CTL01 }}
             role: salt_minion
@@ -175,18 +224,24 @@
 
               interfaces: &interfaces
                 - label: ens3
-                  l2_network_device: admin
+                  l2_network_device: public
                   interface_model: *interface_model
                 - label: ens4
                   l2_network_device: private
                   interface_model: *interface_model
+                - label: ens5
+                  l2_network_device: admin
+                  interface_model: *interface_model
               network_config: &network_config
                 ens3:
                   networks:
-                    - admin
+                    - public
                 ens4:
                   networks:
                     - private
+                ens5:
+                  networks:
+                    - admin
 
           - name: {{ HOSTNAME_CTL02 }}
             role: salt_minion
@@ -269,21 +324,8 @@
                   cloudinit_meta_data: !include underlay--meta-data.yaml
                   cloudinit_user_data: !include underlay--user-data1604.yaml
 
-
-              interfaces: &all_interfaces
-                - label: ens3
-                  l2_network_device: admin
-                  interface_model: *interface_model
-                - label: ens4
-                  l2_network_device: private
-                  interface_model: *interface_model
-              network_config: &all_network_config
-                ens3:
-                  networks:
-                    - admin
-                ens4:
-                  networks:
-                    - private
+              interfaces: *interfaces
+              network_config: *network_config
 
           - name: {{ HOSTNAME_CMP02 }}
             role: salt_minion
@@ -308,8 +350,190 @@
                   cloudinit_meta_data: !include underlay--meta-data.yaml
                   cloudinit_user_data: !include underlay--user-data1604.yaml
 
-              interfaces: *all_interfaces
-              network_config: *all_network_config
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_MON01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1604
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1604.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_MON02 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1604
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1604.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_MON03 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1604
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1604.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_NTW01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1404
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1404.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_NTW02 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1404
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1404.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_NTW03 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1404
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1404.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
+
+          - name: {{ HOSTNAME_PRX01 }}
+            role: salt_minion
+            params:
+              vcpu: !os_env SLAVE_NODE_CPU, 4
+              memory: !os_env SLAVE_NODE_MEMORY, 1024
+              boot:
+                - hd
+              cloud_init_volume_name: iso
+              cloud_init_iface_up: ens3
+              volumes:
+                - name: system
+                  capacity: !os_env NODE_VOLUME_SIZE, 150
+                  backing_store: cloudimage1604
+                  format: qcow2
+                - name: iso  # Volume with name 'iso' will be used
+                             # for store image with cloud-init metadata.
+                  capacity: 1
+                  format: raw
+                  device: cdrom
+                  bus: ide
+                  cloudinit_meta_data: !include underlay--meta-data.yaml
+                  cloudinit_user_data: !include underlay--user-data1604.yaml
+
+              interfaces: *interfaces
+              network_config: *network_config
 
           - name: {{ HOSTNAME_VSRX01 }}
             role: vsrx
@@ -323,13 +547,23 @@
                   capacity: !os_env NODE_VOLUME_SIZE, 150
                   backing_store: vsrx_image
                   format: qcow2
+                  #- name: iso
+                  #- capacity: 1
+                  #- format: raw
+                  #- device: cdrom
+                  #- bus: ide
+                  #- cloudinit_user_data: !include juniper.conf
+
               interfaces:
-                - label: eth0
-                  l2_network_device: public
+                - label: ge-0/0/0
+                  l2_network_device: private
                   interface_model: virtio
                   mac_address: 52:54:00:4e:b4:36
-                - label: eth1
-                  l2_network_device: admin
+                - label: ge-0/0/1
+                  l2_network_device: public
                   interface_model: virtio
                   mac_address: 52:54:00:e1:44:9d
-
+                - label: ge-0/0/2
+                  l2_network_device: admin
+                  interface_model: virtio
+                  mac_address: 52:54:00:72:08:77