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
+ 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.
+ 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: v1-standard-1
- description: OpenStack Flavor to use
- vm_image:
- type: string
- description: VM Image to spin up
+ 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: v1-standard-1
+ description: OpenStack Flavor to use
+ vm_image:
+ type: string
+ description: VM Image to spin up
resources:
- instance:
- type: "OS::Nova::Server"
- properties:
- flavor: {get_param: vm_flavor}
- block_device_mapping_v2:
- - image: {get_param: vm_image}
- delete_on_termination: true
- volume_size: 40
- name:
- str_replace:
- template: SILO-JOB_NAME-GROUP-VM_TYPE-INDEX
- params:
- "SILO": {get_param: silo}
- "JOB_NAME": {get_param: job_name}
- "VM_TYPE":
- str_split:
- - ' - '
- - {get_param: vm_image}
- - 2
- "GROUP": {get_param: group}
- "INDEX": {get_param: index}
- networks:
- - network: odlci
- key_name: {get_param: ssh_key}
- user_data: |
- #!/bin/bash
- until host git.opendaylight.org &>/dev/null
- do
- echo "Waiting until git.opendaylight.org is resolvable..."
- done
- git clone https://git.opendaylight.org/gerrit/releng/builder /builder
- /builder/jenkins-scripts/jenkins-init-script.sh
+ port:
+ type: "OS::Neutron::Port"
+ properties:
+ allowed_address_pairs:
+ - ip_address: 10.250.0.0/24
+ network: odlci
+ instance:
+ type: "OS::Nova::Server"
+ properties:
+ image: { get_param: vm_image }
+ flavor: { get_param: vm_flavor }
+ name:
+ str_replace:
+ template: SILO-JOB_NAME-GROUP-VM_TYPE-INDEX
+ params:
+ "SILO": { get_param: silo }
+ "JOB_NAME": { get_param: job_name }
+ "VM_TYPE":
+ str_split:
+ - " - "
+ - { get_param: vm_image }
+ - 2
+ "GROUP": { get_param: group }
+ "INDEX": { get_param: index }
+ networks:
+ - port: { get_resource: port }
+ key_name: { get_param: ssh_key }
+ user_data: |
+ #!/bin/bash
+ 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, odlci, 0]}
+ ip:
+ description: IP address of the instance
+ value: { get_attr: [instance, networks, odlci, 0] }