20f17ec25b
This test currently exercises the following hooks: - script - puppet - cfn-init This requires devstack building a custom image. Since gating doesn't yet have a test image available the test is skipped by default via config value skip_software_config_tests. To run this test locally, build your own custom image and set skip_software_config_tests=false in heat_integrationtests/heat_integrationtests.conf Change-Id: I9d27664638de95e52bc954e1fa00299e6711de90
175 lines
3.8 KiB
YAML
175 lines
3.8 KiB
YAML
heat_template_version: 2014-10-16
|
|
parameters:
|
|
key_name:
|
|
type: string
|
|
flavor:
|
|
type: string
|
|
image:
|
|
type: string
|
|
network:
|
|
type: string
|
|
signal_transport:
|
|
type: string
|
|
default: CFN_SIGNAL
|
|
dep1_foo:
|
|
default: fooooo
|
|
type: string
|
|
dep1_bar:
|
|
default: baaaaa
|
|
type: string
|
|
dep2a_bar:
|
|
type: string
|
|
default: barrr
|
|
dep3_foo:
|
|
default: fo
|
|
type: string
|
|
dep3_bar:
|
|
default: ba
|
|
type: string
|
|
|
|
resources:
|
|
|
|
the_sg:
|
|
type: OS::Neutron::SecurityGroup
|
|
properties:
|
|
name: the_sg
|
|
description: Ping and SSH
|
|
rules:
|
|
- protocol: icmp
|
|
- protocol: tcp
|
|
port_range_min: 22
|
|
port_range_max: 22
|
|
|
|
cfg1:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
inputs:
|
|
- name: foo
|
|
- name: bar
|
|
outputs:
|
|
- name: result
|
|
config: {get_file: cfg1.sh}
|
|
|
|
cfg2a:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: cfn-init
|
|
inputs:
|
|
- name: bar
|
|
config:
|
|
config:
|
|
files:
|
|
/tmp/cfn-init-foo:
|
|
content:
|
|
get_input: bar
|
|
mode: '000644'
|
|
|
|
cfg2b:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
outputs:
|
|
- name: result
|
|
config: |
|
|
#!/bin/sh
|
|
echo -n "The file /tmp/cfn-init-foo contains `cat /tmp/cfn-init-foo` for server $deploy_server_id during $deploy_action" > $heat_outputs_path.result
|
|
|
|
cfg3:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: puppet
|
|
inputs:
|
|
- name: foo
|
|
- name: bar
|
|
outputs:
|
|
- name: result
|
|
config: {get_file: cfg3.pp}
|
|
|
|
dep1:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
config:
|
|
get_resource: cfg1
|
|
server:
|
|
get_resource: server
|
|
input_values:
|
|
foo: {get_param: dep1_foo}
|
|
bar: {get_param: dep1_bar}
|
|
signal_transport: {get_param: signal_transport}
|
|
|
|
dep2a:
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
name: 10_dep2a
|
|
signal_transport: NO_SIGNAL
|
|
config:
|
|
get_resource: cfg2a
|
|
server:
|
|
get_resource: server
|
|
input_values:
|
|
bar: {get_param: dep2a_bar}
|
|
|
|
dep2b:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
name: 20_dep2b
|
|
config:
|
|
get_resource: cfg2b
|
|
server:
|
|
get_resource: server
|
|
signal_transport: {get_param: signal_transport}
|
|
|
|
dep3:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
config:
|
|
get_resource: cfg3
|
|
server:
|
|
get_resource: server
|
|
input_values:
|
|
foo: {get_param: dep3_foo}
|
|
bar: {get_param: dep3_bar}
|
|
signal_transport: {get_param: signal_transport}
|
|
|
|
cfg_user_data:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
config: |
|
|
#!/bin/sh
|
|
echo "user data script"
|
|
|
|
server:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image: {get_param: image}
|
|
flavor: {get_param: flavor}
|
|
key_name: {get_param: key_name}
|
|
security_groups:
|
|
- {get_resource: the_sg}
|
|
networks:
|
|
- network: {get_param: network}
|
|
user_data_format: SOFTWARE_CONFIG
|
|
software_config_transport: POLL_TEMP_URL
|
|
user_data: {get_resource: cfg_user_data}
|
|
|
|
outputs:
|
|
res1:
|
|
value:
|
|
result: {get_attr: [dep1, result]}
|
|
stdout: {get_attr: [dep1, deploy_stdout]}
|
|
stderr: {get_attr: [dep1, deploy_stderr]}
|
|
status_code: {get_attr: [dep1, deploy_status_code]}
|
|
res2:
|
|
value:
|
|
result: {get_attr: [dep2b, result]}
|
|
stdout: {get_attr: [dep2b, deploy_stdout]}
|
|
stderr: {get_attr: [dep2b, deploy_stderr]}
|
|
status_code: {get_attr: [dep2b, deploy_status_code]}
|
|
res3:
|
|
value:
|
|
result: {get_attr: [dep3, result]}
|
|
stdout: {get_attr: [dep3, deploy_stdout]}
|
|
stderr: {get_attr: [dep3, deploy_stderr]}
|
|
status_code: {get_attr: [dep3, deploy_status_code]}
|