Merge "Open up firewall for the control-ports in the bundles"
[apex-tripleo-heat-templates.git] / deployed-server / deployed-server.yaml
1 heat_template_version: pike
2 parameters:
3   image:
4     type: string
5     default: unused
6   flavor:
7     type: string
8     default: unused
9   key_name:
10     type: string
11     default: unused
12   security_groups:
13     type: json
14     default: []
15   # Require this so we can validate the parent passes the
16   # correct value
17   user_data_format:
18     type: string
19   user_data:
20     type: string
21     default: ''
22   name:
23     type: string
24     default: 'deployed-server'
25   image_update_policy:
26     type: string
27     default: ''
28   networks:
29     type: comma_delimited_list
30     default: ''
31   metadata:
32     type: json
33     default: {}
34   software_config_transport:
35     default: POLL_SERVER_CFN
36     type: string
37   scheduler_hints:
38     type: json
39     description: Optional scheduler hints to pass to nova
40     default: {}
41   UpgradeInitCommand:
42     type: string
43     description: |
44       Command or script snippet to run on all overcloud nodes to
45       initialize the upgrade process. E.g. a repository switch.
46     default: ''
47   deployment_swift_data:
48     type: json
49     default: {}
50
51 resources:
52   deployed-server:
53     type: OS::Heat::DeployedServer
54     properties:
55       name: {get_param: name}
56       software_config_transport: {get_param: software_config_transport}
57       deployment_swift_data: {get_param: deployment_swift_data}
58
59   UpgradeInitConfig:
60     type: OS::Heat::SoftwareConfig
61     properties:
62       group: script
63       config:
64         list_join:
65         - ''
66         - - "#!/bin/bash\n\n"
67           - "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
68           - get_param: UpgradeInitCommand
69
70   UpgradeInitDeployment:
71     type: OS::Heat::SoftwareDeployment
72     properties:
73       name: UpgradeInitDeployment
74       server: {get_resource: deployed-server}
75       config: {get_resource: UpgradeInitConfig}
76
77
78   InstanceIdConfig:
79     type: OS::Heat::StructuredConfig
80     properties:
81       group: apply-config
82       config:
83         instance-id: {get_resource: deployed-server}
84
85   InstanceIdDeployment:
86     type: OS::Heat::StructuredDeployment
87     properties:
88       name: InstanceIdDeployment
89       config: {get_resource: InstanceIdConfig}
90       server: {get_resource: deployed-server}
91     depends_on: UpgradeInitDeployment
92
93   HostsEntryConfig:
94     type: OS::Heat::SoftwareConfig
95     properties:
96       group: script
97       config: |
98           #!/bin/bash
99           set -eux
100           mkdir -p $heat_outputs_path
101           host=$(hostname -s)
102           echo -n $host > $heat_outputs_path.hostname
103           cat $heat_outputs_path.hostname
104       outputs:
105         - name: hostname
106           description: hostname
107
108   HostsEntryDeployment:
109     type: OS::Heat::SoftwareDeployment
110     properties:
111       name: HostsEntryDeployment
112       config: {get_resource: HostsEntryConfig}
113       server: {get_resource: deployed-server}
114
115   DeployedServerBootstrapConfig:
116     type: OS::TripleO::DeployedServer::Bootstrap
117     properties:
118       server: {get_resource: deployed-server}
119
120   ControlPlanePort:
121     type: OS::TripleO::DeployedServer::ControlPlanePort
122     properties:
123       network: ctlplane
124       name:
125         list_join:
126           - '-'
127           - - {get_attr: [HostsEntryDeployment, hostname]}
128             - ctlplane
129       replacement_policy: AUTO
130
131 outputs:
132   OS::stack_id:
133     value: {get_resource: deployed-server}
134   networks:
135     value:
136       ctlplane:
137         - {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
138   name:
139     value: {get_attr: [HostsEntryDeployment, hostname]}
140   os_collect_config:
141     value: {get_attr: [deployed-server, os_collect_config]}