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