-
Notifications
You must be signed in to change notification settings - Fork 30
/
blueprint.yaml
64 lines (58 loc) · 2.03 KB
/
blueprint.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
tosca_definitions_version: cloudify_dsl_1_4
description: >
The blueprint describes an OpenStack vm created using Cloudify's OpenStack plugin
and simple web server started using Cloudify's script plugin.
In addition, an OpenStack floating ip and security group are created and associated with the created vm.
imports:
- http://www.getcloudify.org/spec/cloudify/7.1.0.dev1/types.yaml
- plugin:cloudify-openstack-plugin
inputs:
webserver_port:
description: The HTTP web server port
default: 8080
agent_user:
description: User name used when SSH-ing into the started machine
image:
description: Openstack image name or id to use for the new server
flavor:
description: Openstack flavor name or id to use for the new server
node_templates:
virtual_ip:
type: cloudify.openstack.nodes.FloatingIP
security_group:
type: cloudify.openstack.nodes.SecurityGroup
properties:
rules:
- remote_ip_prefix: 0.0.0.0/0
port: { get_property: [ http_web_server, port ] }
vm:
type: cloudify.openstack.nodes.Server
properties:
agent_config:
user: { get_input: agent_user }
image: { get_input: image }
flavor: { get_input: flavor }
relationships:
- type: cloudify.openstack.server_connected_to_floating_ip
target: virtual_ip
- type: cloudify.openstack.server_connected_to_security_group
target: security_group
interfaces:
cloudify.interfaces.validation: {}
http_web_server:
type: cloudify.nodes.WebServer
properties:
port: { get_input: webserver_port }
relationships:
- type: cloudify.relationships.contained_in
target: vm
interfaces:
cloudify.interfaces.lifecycle:
configure: scripts/configure.sh
start: scripts/start.sh
stop: scripts/stop.sh
outputs:
http_endpoint:
description: Web server external endpoint
value: { concat: ['http://', { get_attribute: [virtual_ip, floating_ip_address] },
':', { get_property: [http_web_server, port] }] }