+---
heat_template_version: 2016-04-08
parameters:
job_name:
type: string
description: Name of job running this template
+ silo:
+ type: string
+ default: vm
+ description: |
+ String to identify a Jenkins Master
+
+ Useful in scenarios where multiple Jenkins Masters might be
+ creating VMs in the same cloud to uniquely distinguish them.
+
+ TODO we should move to using tags once OpenStack Ocata which is
+ available to us with support for server tags properties.
ssh_key:
type: string
description: SSH Key name to use (Public key must exist in OpenStack)
index:
type: number
+ group:
+ type: number
+ default: "0"
vm_flavor:
type: string
- default: 1 GB General Purpose v1
+ default: v1-standard-1
description: OpenStack Flavor to use
vm_image:
type: string
description: VM Image to spin up
resources:
+ port:
+ type: "OS::Neutron::Port"
+ properties:
+ allowed_address_pairs:
+ - ip_address: 10.250.0.0/24
+ network: odlci
instance:
type: "OS::Nova::Server"
properties:
- flavor: { get_param: vm_flavor }
- image: { get_param: vm_image }
+ image: {get_param: vm_image}
+ flavor: {get_param: vm_flavor}
name:
str_replace:
- template: JOB_NAME-VM_TYPE-INDEX
+ template: SILO-JOB_NAME-GROUP-VM_TYPE-INDEX
params:
- "JOB_NAME": { get_param: job_name }
+ "SILO": {get_param: silo}
+ "JOB_NAME": {get_param: job_name}
"VM_TYPE":
str_split:
- ' - '
- - { get_param: vm_image }
- - 1
- "INDEX": { get_param: index }
+ - {get_param: vm_image}
+ - 2
+ "GROUP": {get_param: group}
+ "INDEX": {get_param: index}
networks:
- - network: RC-ODL
- key_name: { get_param: ssh_key }
+ - port: {get_resource: port}
+ key_name: {get_param: ssh_key}
user_data: |
#!/bin/bash
- git clone https://git.opendaylight.org/gerrit/releng/builder /builder
- /builder/jenkins-scripts/jenkins-init-script.sh
+ until host devvexx.opendaylight.org &>/dev/null
+ do
+ echo "Waiting until devvexx.opendaylight.org is resolvable..."
+ done
+ git clone --recurse-submodules git://devvexx.opendaylight.org/mirror/releng/builder /opt/ciman
+ /opt/ciman/jjb/global-jjb/jenkins-init-scripts/init.sh
outputs:
ip:
description: IP address of the instance
- value: { get_attr: [instance, networks, RC-ODL, 0] }
+ value: {get_attr: [instance, networks, odlci, 0]}