From 70ae6aa8eb2acd1db106a6df2d76e848bbce57e5 Mon Sep 17 00:00:00 2001 From: Jamo Luhrsen Date: Wed, 9 Aug 2017 11:17:10 -0700 Subject: [PATCH 1/1] Add 4 node stack type for hwvtep suites hwvtep suites need an odl node type, 1 larger openstack node (control) type, 2 smaller openstack node (compute) and 1 more node type for mininet systems Change-Id: Ib8f255a23148b3d1ca15c5e29e6a49c998199d49 Signed-off-by: Jamo Luhrsen --- jjb/integration/integration-macros.yaml | 33 ++++++ jjb/integration/integration-templates.yaml | 12 ++- openstack-hot/csit-4-instance-type.yaml | 118 +++++++++++++++++++++ 3 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 openstack-hot/csit-4-instance-type.yaml diff --git a/jjb/integration/integration-macros.yaml b/jjb/integration/integration-macros.yaml index 69c978061..8ee7f0b50 100644 --- a/jjb/integration/integration-macros.yaml +++ b/jjb/integration/integration-macros.yaml @@ -271,6 +271,39 @@ - opendaylight-infra-stack: stack-template: 'csit-3-instance-type.yaml' +# Macro: integration-infra-stack-4-type +# Operation: Sets environment and then calls opendaylight-infra-stack to spin +# up csit lab using openstack-heat. +# Used by: {project}-csit-* job templates + +- builder: + name: integration-infra-stack-4-type + builders: + - integration-cleanup-workspace + - shell: | + #!/bin/bash + # Setup openstack envirnoment file for use by + # the opendaylight-infra-stack macro + cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF + parameters: + vm_0_count: {vm_0_count} + vm_0_flavor: {vm_0_flavor} + vm_0_image: {vm_0_image} + vm_1_count: {vm_1_count} + vm_1_flavor: {vm_1_flavor} + vm_1_image: {vm_1_image} + vm_2_count: {vm_2_count} + vm_2_flavor: {vm_2_flavor} + vm_2_image: {vm_2_image} + vm_3_count: {vm_3_count} + vm_3_flavor: {vm_3_flavor} + vm_3_image: {vm_3_image} + EOF + echo "Contents of opendaylight-infra-environment.yaml ..." + cat $WORKSPACE/opendaylight-infra-environment.yaml + - opendaylight-infra-stack: + stack-template: 'csit-4-instance-type.yaml' + # Macro: integration-get-slave-addresses # Operation: this macro gets the IP addresses of the dynamic vms # Used by: {project}-csit-* job templates diff --git a/jjb/integration/integration-templates.yaml b/jjb/integration/integration-templates.yaml index b62b09ccf..89e41122f 100644 --- a/jjb/integration/integration-templates.yaml +++ b/jjb/integration/integration-templates.yaml @@ -1129,16 +1129,20 @@ - timed: '{schedule}' builders: - - integration-infra-stack-3-type: + - integration-infra-stack-4-type: + stack-template: '{stack-template}' vm_0_count: '{odl_system_count}' vm_0_flavor: '{odl_system_flavor}' vm_0_image: '{odl_system_image}' vm_1_count: '{openstack_system_count}' vm_1_flavor: '{openstack_system_flavor}' vm_1_image: '{openstack_system_image}' - vm_2_count: '{tools_system_count}' - vm_2_flavor: '{tools_system_flavor}' - vm_2_image: '{tools_system_image}' + vm_2_count: '{openstack_system2_count}' + vm_2_flavor: '{openstack_system2_flavor}' + vm_2_image: '{openstack_system2_image}' + vm_3_count: '{tools_system_count}' + vm_3_flavor: '{tools_system_flavor}' + vm_3_image: '{tools_system_image}' - integration-install-robotframework - inject: properties-file: 'env.properties' diff --git a/openstack-hot/csit-4-instance-type.yaml b/openstack-hot/csit-4-instance-type.yaml new file mode 100644 index 000000000..79de0db5a --- /dev/null +++ b/openstack-hot/csit-4-instance-type.yaml @@ -0,0 +1,118 @@ +--- +heat_template_version: 2016-04-08 + +parameters: + job_name: + type: string + description: Name of job running this template + silo: + type: string + description: Jenkins Silo job is running in (typically releng|sandbox) + vm_0_count: + type: number + description: Number of VMs for 1st VM type + vm_0_flavor: + type: string + default: 1 GB General Purpose v1 + description: Flavor to run instance on for 1st VM type + vm_0_image: + type: string + description: Image to run instance on for 1st VM type + vm_1_count: + type: number + description: Number of VMs for 2nd VM type + vm_1_flavor: + type: string + default: 1 GB General Purpose v1 + description: Flavor to run instance on for 2nd VM type + vm_1_image: + type: string + description: Image to run instance on for 2nd VM type + vm_2_count: + type: number + description: Number of VMs for 3rd VM type + vm_2_flavor: + type: string + default: 1 GB General Purpose v1 + description: Flavor to run instance on for 3rd VM type + vm_2_image: + type: string + vm_3_count: + type: number + description: Number of VMs for 3rd VM type + vm_3_flavor: + type: string + default: 1 GB General Purpose v1 + description: Flavor to run instance on for 3rd VM type + vm_3_image: + type: string + +resources: + vm_0_group: + type: "OS::Heat::ResourceGroup" + properties: + count: {get_param: vm_0_count} + resource_def: + type: generic-server.yaml + properties: + job_name: {get_param: job_name} + silo: {get_param: silo} + ssh_key: {get_param: silo} + index: "%index%" + vm_flavor: {get_param: vm_0_flavor} + vm_image: {get_param: vm_0_image} + + vm_1_group: + type: "OS::Heat::ResourceGroup" + properties: + count: {get_param: vm_1_count} + resource_def: + type: generic-server.yaml + properties: + job_name: {get_param: job_name} + silo: {get_param: silo} + ssh_key: {get_param: silo} + index: "%index%" + vm_flavor: {get_param: vm_1_flavor} + vm_image: {get_param: vm_1_image} + + vm_2_group: + type: "OS::Heat::ResourceGroup" + properties: + count: {get_param: vm_2_count} + resource_def: + type: generic-server.yaml + properties: + job_name: {get_param: job_name} + silo: {get_param: silo} + ssh_key: {get_param: silo} + index: "%index%" + vm_flavor: {get_param: vm_2_flavor} + vm_image: {get_param: vm_2_image} + vm_3_group: + type: "OS::Heat::ResourceGroup" + properties: + count: {get_param: vm_3_count} + resource_def: + type: generic-server.yaml + properties: + job_name: {get_param: job_name} + silo: {get_param: silo} + ssh_key: {get_param: silo} + index: "%index%" + vm_flavor: {get_param: vm_3_flavor} + vm_image: {get_param: vm_3_image} + +outputs: + vm_0_ips: + description: IP addresses of the 1st vm types + value: {get_attr: [vm_0_group, ip]} + vm_1_ips: + description: IP addresses of the 2nd vm types + value: {get_attr: [vm_1_group, ip]} + vm_2_ips: + description: IP addresses of the 3rd vm types + value: {get_attr: [vm_2_group, ip]} + vm_3_ips: + description: IP addresses of the 4th vm types + value: {get_attr: [vm_3_group, ip]} -- 2.36.6