Add template for VMs creating
Change-Id: Ifbf77f794f999340846a9b144cd1444af16adfec
diff --git a/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml b/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
index fb103d7..057ef10 100644
--- a/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
+++ b/tcp_tests/templates/cookied-small-mcp-ironic/environment-context.yaml
@@ -16,11 +16,9 @@
ctl01:
reclass_storage_name: openstack_control_node01
roles:
- - infra_kvm
- openstack_control_leader
- openstack_database_leader
- openstack_message_queue
- - features_lvm_backend_control
- linux_system_codename_xenial
interfaces:
ens3:
@@ -31,11 +29,9 @@
ctl02:
reclass_storage_name: openstack_control_node02
roles:
- - infra_kvm
- openstack_control
- openstack_database
- openstack_message_queue
- - features_lvm_backend_control
- linux_system_codename_xenial
interfaces:
ens3:
@@ -46,11 +42,9 @@
ctl03:
reclass_storage_name: openstack_control_node03
roles:
- - infra_kvm
- openstack_control
- openstack_database
- openstack_message_queue
- - features_lvm_backend_control
- linux_system_codename_xenial
interfaces:
ens3:
@@ -103,3 +97,58 @@
role: single_ctl
ens7:
role: single_baremetal
+
+ kvm01.cookied-cicd-bm-os-contrail40-maas.local:
+ reclass_storage_name: infra_kvm_node01
+ roles:
+ - infra_kvm
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: bond0_ab_ovs_vlan_ctl
+ ens5:
+ role: single_mgm_manual
+
+ kvm02.cookied-cicd-bm-os-contrail40-maas.local:
+ reclass_storage_name: infra_kvm_node02
+ roles:
+ - infra_kvm
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: bond0_ab_ovs_vlan_ctl
+ ens5:
+ role: single_mgm_manual
+
+ kvm03.cookied-cicd-bm-os-contrail40-maas.local:
+ reclass_storage_name: infra_kvm_node03
+ roles:
+ - infra_kvm
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: bond0_ab_ovs_vlan_ctl
+ ens5:
+ role: single_mgm_manual
+
+ cmp<<count>>:
+ reclass_storage_name: openstack_compute_rack01
+ roles:
+ - openstack_compute
+ - features_lvm_backend_volume_vdb
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+ ens5:
+ role: bond0_ab_ovs_vxlan_mesh
+ ens6:
+ role: bond1_ab_ovs_floating
diff --git a/tcp_tests/templates/cookied-small-mcp-ironic/underlay.yaml b/tcp_tests/templates/cookied-small-mcp-ironic/underlay.yaml
index 0311867..4eb1506 100644
--- a/tcp_tests/templates/cookied-small-mcp-ironic/underlay.yaml
+++ b/tcp_tests/templates/cookied-small-mcp-ironic/underlay.yaml
@@ -183,8 +183,8 @@
- name: {{ HOSTNAME_CTL01 }}
role: salt_minion
params:
- vcpu: !os_env SLAVE_NODE_CPU, 2
- memory: !os_env SLAVE_NODE_MEMORY, 12288
+ vcpu: !os_env SLAVE_NODE_CPU, 3
+ memory: !os_env SLAVE_NODE_MEMORY, 16384
boot:
- hd
cloud_init_volume_name: iso
@@ -221,8 +221,8 @@
- name: {{ HOSTNAME_CTL02 }}
role: salt_minion
params:
- vcpu: !os_env SLAVE_NODE_CPU, 2
- memory: !os_env SLAVE_NODE_MEMORY, 12288
+ vcpu: !os_env SLAVE_NODE_CPU, 3
+ memory: !os_env SLAVE_NODE_MEMORY, 16384
boot:
- hd
cloud_init_volume_name: iso
@@ -247,8 +247,8 @@
- name: {{ HOSTNAME_CTL03 }}
role: salt_minion
params:
- vcpu: !os_env SLAVE_NODE_CPU, 2
- memory: !os_env SLAVE_NODE_MEMORY, 12288
+ vcpu: !os_env SLAVE_NODE_CPU, 3
+ memory: !os_env SLAVE_NODE_MEMORY, 16384
boot:
- hd
cloud_init_volume_name: iso
diff --git a/tcp_tests/templates/create-vm-on-host/underlay--meta-data.yaml b/tcp_tests/templates/create-vm-on-host/underlay--meta-data.yaml
new file mode 100644
index 0000000..3699401
--- /dev/null
+++ b/tcp_tests/templates/create-vm-on-host/underlay--meta-data.yaml
@@ -0,0 +1,4 @@
+| # All the data below will be stored as a string object
+ instance-id: iid-local1
+ hostname: {hostname}
+ local-hostname: {hostname}
diff --git a/tcp_tests/templates/create-vm-on-host/underlay--user-data1604-swp.yaml b/tcp_tests/templates/create-vm-on-host/underlay--user-data1604-swp.yaml
new file mode 100644
index 0000000..9b19200
--- /dev/null
+++ b/tcp_tests/templates/create-vm-on-host/underlay--user-data1604-swp.yaml
@@ -0,0 +1,98 @@
+| # All the data below will be stored as a string object
+ #cloud-config, see http://cloudinit.readthedocs.io/en/latest/topics/examples.html
+ ssh_pwauth: True
+ users:
+ - name: root
+ sudo: ALL=(ALL) NOPASSWD:ALL
+ shell: /bin/bash
+ ssh_authorized_keys:
+ {% for key in config.underlay.ssh_keys %}
+ - ssh-rsa {{ key['public'] }}
+ {% endfor %}
+
+ disable_root: false
+ chpasswd:
+ list: |
+ root:r00tme
+ expire: False
+
+ bootcmd:
+ # Enable root access
+ - sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin yes/' /etc/ssh/sshd_config
+ - service sshd restart
+ output:
+ all: '| tee -a /var/log/cloud-init-output.log /dev/tty0'
+
+ runcmd:
+ - if lvs vg0; then pvresize /dev/vda3; fi
+ - if lvs vg0; then /usr/bin/growlvm.py --image-layout-file /usr/share/growlvm/image-layout.yml; fi
+
+ - export TERM=linux
+ - export LANG=C
+ # Configure dhclient
+ - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base
+ - sudo resolvconf -u
+
+ # Enable grub menu using updated config below
+ - update-grub
+
+ # Prepare network connection
+ - sudo ifup ens3
+ #- sudo route add default gw {gateway} {interface_name}
+
+ # Create swap
+ - fallocate -l 16G /swapfile
+ - chmod 600 /swapfile
+ - mkswap /swapfile
+ - swapon /swapfile
+ - echo "/swapfile none swap defaults 0 0" >> /etc/fstab
+ - service salt-minion restart
+ - sleep 2
+ - salt-call saltutil.refresh_pillar
+ - salt-call saltutil.sync_all
+ - salt-call state.sls linux.network
+ - salt-call state.sls linux.system.repo
+ - salt-call state.sls linux,openssh,salt.minion,ntp,rsyslog
+ - salt-call state.sls nova
+ - salt-call state.sls neutron
+ - salt-call state.highstate
+
+ write_files:
+ - path: /etc/default/grub.d/97-enable-grub-menu.cfg
+ content: |
+ GRUB_RECORDFAIL_TIMEOUT=30
+ GRUB_TIMEOUT=3
+ GRUB_TIMEOUT_STYLE=menu
+
+ - path: /etc/salt/minion.d/minion.conf
+ content: |
+ master: ==SALT_MASTER_IP==
+ id: ==HOSTNAME.DOMAIN_NAME==
+
+ - path: /etc/network/interfaces
+ content: |
+ auto ens3
+ iface ens3 inet dhcp
+
+ - path: /usr/share/growlvm/image-layout.yml
+ content: |
+ root:
+ size: '80%VG'
+ home:
+ size: '1%VG'
+ var_log:
+ size: '5%VG'
+ var_log_audit:
+ size: '2%VG'
+ var_tmp:
+ size: '5%VG'
+ tmp:
+ size: '2%VG'
+ owner: root:root
+
+ growpart:
+ mode: auto
+ devices:
+ - '/'
+ - '/dev/vda3'
+ ignore_growroot_disabled: false
diff --git a/tcp_tests/templates/create-vm-on-host/underlay.yaml b/tcp_tests/templates/create-vm-on-host/underlay.yaml
new file mode 100644
index 0000000..ec00536
--- /dev/null
+++ b/tcp_tests/templates/create-vm-on-host/underlay.yaml
@@ -0,0 +1,168 @@
+# Set the repository suite, one of the: 'nightly', 'testing', 'stable', or any other required
+{% set REPOSITORY_SUITE = os_env('REPOSITORY_SUITE', 'testing') %}
+
+{% import 'create-vm-on-host/underlay--meta-data.yaml' as CLOUDINIT_META_DATA with context %}
+{% import 'create-vm-on-host/underlay--user-data1604-swp.yaml' as CLOUDINIT_USER_DATA_1604_SWP with context %}
+
+---
+aliases:
+ - &interface_model {{ os_env('INTERFACE_MODEL', 'virtio') }}
+ - &cloudinit_meta_data {{ CLOUDINIT_META_DATA }}
+ - &cloudinit_user_data_1604_swp {{ CLOUDINIT_USER_DATA_1604_SWP }}
+
+{% set LAB_CONFIG_NAME = os_env('LAB_CONFIG_NAME', 'create-vm-on-host') %}
+{% set DOMAIN_NAME = os_env('DOMAIN_NAME', LAB_CONFIG_NAME) + '.local' %}
+{% set HOSTNAME_CMP = os_env('HOSTNAME_CMP', 'cmp001') %}
+
+template:
+ devops_settings:
+ env_name: {{ os_env('ENV_NAME', 'create-vm-on-host_' + 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_CMP }}: +105
+ ip_ranges:
+ dhcp: [+90, -10]
+
+ admin-pool01:
+ net: {{ os_env('ADMIN_ADDRESS_POOL01', '10.70.0.0/16:24') }}
+ params:
+ ip_reserved:
+ gateway: +1
+ default_l2_network_device: +1
+ default_{{ HOSTNAME_CMP }}: +105
+ ip_ranges:
+ dhcp: [+90, -10]
+
+ tenant-pool01:
+ net: {{ os_env('TENANT_ADDRESS_POOL01', '10.80.0.0/16:24') }}
+ params:
+ ip_reserved:
+ gateway: +1
+ l2_network_device: +1
+ default_{{ HOSTNAME_CMP }}: +105
+ ip_ranges:
+ dhcp: [+10, -10]
+
+ external-pool01:
+ net: {{ os_env('EXTERNAL_ADDRESS_POOL01', '10.90.0.0/16:24') }}
+ params:
+ ip_reserved:
+ gateway: +1
+ l2_network_device: +1
+ default_{{ HOSTNAME_CMP }}: +105
+ ip_ranges:
+ dhcp: [+180, +220]
+
+ groups:
+ - name: default
+ driver:
+ name: devops.driver.libvirt
+ params:
+ connection_string: !os_env CONNECTION_STRING, qemu+ssh://jenkins@cz8115.bud.mirantis.net/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
+ use_hugepages: !os_env DRIVER_USE_HUGEPAGES, false
+
+ network_pools:
+ admin: admin-pool01
+ private: private-pool01
+ tenant: tenant-pool01
+
+ l2_network_devices:
+ private:
+ address_pool: private-pool01
+ parent_iface:
+ phys_dev: !os_env CONTROL_BRIDGE, 'br-control'
+
+ admin:
+ address_pool: admin-pool01
+ parent_iface:
+ phys_dev: !os_env ADMIN_BRIDGE, 'br-admin'
+
+ tenant:
+ address_pool: tenant-pool01
+ parent_iface:
+ phys_dev: !os_env TENANT_BRIDGE, 'br-tenant'
+
+ external:
+ address_pool: external-pool01
+ dhcp: false
+ forward:
+ mode: route
+
+ group_volumes:
+ - name: cloudimage1604 # This name is used for 'backing_store' option for node volumes.
+ source_image: {{ os_env('MCP_IMAGE_PATH1604') }} # http://ci.mcp.mirantis.net:8085/images/ubuntu-16-04-x64-mcpproposed.qcow2
+ format: qcow2
+ - name: mcp_ubuntu_1604_image # Pre-configured image for control plane
+ source_image: !os_env MCP_IMAGE_PATH1604
+ format: qcow2
+
+ nodes:
+ - name: {{ HOSTNAME_CMP }}
+ role: salt_minion
+ params:
+ vcpu: !os_env SLAVE_NODE_CPU, 12
+ memory: !os_env SLAVE_NODE_MEMORY, 32768
+ numa:
+ - cpus: !os_env NUMA0_CPUS, '0,1,2,3,4,5'
+ memory: !os_env NUMA0_MEMORY, 16384
+ - cpus: !os_env NUMA1_CPUS, '6,7,8,9,10,11'
+ memory: !os_env NUMA1_MEMORY, 16384
+ 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: cinder
+ capacity: 100
+ 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: *cloudinit_meta_data
+ cloudinit_user_data: *cloudinit_user_data_1604_swp
+
+ interfaces: &interfaces
+ - label: ens3
+ l2_network_device: admin
+ interface_model: *interface_model
+ - label: ens4
+ l2_network_device: private
+ interface_model: *interface_model
+ - label: ens5
+ l2_network_device: tenant
+ interface_model: *interface_model
+ - label: ens6
+ l2_network_device: external
+ interface_model: *interface_model
+
+ network_config: &network_config
+ ens3:
+ networks:
+ - admin
+ ens4:
+ networks:
+ - private
+ ens5:
+ networks:
+ - tenant
+ ens6:
+ networks:
+ - external