Make LaunchConfiguration resources mergeable
[apex-tripleo-heat-templates.git] / undercloud-vm.yaml
1 Description: All-in-one baremetal OpenStack and all dependencies.
2 HeatTemplateFormatVersion: '2012-12-12'
3 Parameters:
4   AdminPassword:
5     Default: unset
6     Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
7     Type: String
8     NoEcho: true
9   AdminToken:
10     Default: unset
11     Description: The keystone auth secret.
12     Type: String
13     NoEcho: true
14   BaremetalArch:
15     Default: i386
16     Description: The architecture to use in Nova-BM - i386 or amd64.
17     Type: String
18   Flavor:
19     Default: baremetal
20     Description: Flavor to request when deploying.
21     Type: String
22   GlancePassword:
23     Default: unset
24     Description: The password for the glance service account, used by the glance services.
25     Type: String
26     NoEcho: true
27   KeyName:
28     Default: default
29     Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
30     Type: String
31   HeatPassword:
32     Default: unset
33     Description: The password for the Heat service account, used by the Heat services.
34     Type: String
35     NoEcho: true
36   Image:
37     Default: undercloud
38     Type: String
39   NeutronPassword:
40     Default: unset
41     Description: The password for the neutron service account, used by neutron agents.
42     Type: String
43     NoEcho: true
44   NeutronNativePXE:
45     Default: ''
46     Type: String
47     Description: Set truthy to enable Neutron native PXE.
48   NeutronPublicInterface:
49     Default: eth0
50     Description: What interface to bridge onto br-ex for network nodes.
51     Type: String
52   NovaPassword:
53     Default: unset
54     Description: The password for the nova service account, used by nova-api.
55     Type: String
56     NoEcho: true
57   PowerManager:
58     Default: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
59     Description: Bare metal power manager driver.
60     Type: String
61   PowerUserName:
62     Default: stack
63     Description: What username to ssh to the virtual power host with.
64     Type: String
65 Resources:
66   AccessPolicy:
67     Properties:
68       AllowedResources:
69       - notcomputeConfig
70     Type: OS::Heat::AccessPolicy
71   Key:
72     Properties:
73       UserName:
74         Ref: User
75     Type: AWS::IAM::AccessKey
76   User:
77     Properties:
78       Policies:
79       - Ref: AccessPolicy
80     Type: AWS::IAM::User
81   notcomputeConfig:
82     Type: AWS::AutoScaling::LaunchConfiguration
83     Properties:
84       ImageId: '0'
85       InstanceType: foo
86     Metadata:
87       OpenStack::Heat::Stack: {}
88       Openstack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ]
89       admin-password:
90         Ref: AdminPassword
91       admin-token: 
92         Ref: AdminToken
93       controller-address:
94         Fn::Select:
95           - 0
96           - Fn::Select:
97             - "ctlplane"
98             - Fn::GetAtt:
99               - notcompute
100               - networks
101       cinder:
102         db: mysql://cinder:unset@localhost/cinder
103         volume_size_mb: '5000'
104       db-password: unset
105       glance:
106         db: mysql://glance:unset@localhost/glance
107         host: 127.0.0.1
108         service-password:
109           Ref: GlancePassword
110       heat:
111         admin_password:
112           Ref: HeatPassword
113         admin_tenant_name: service
114         admin_user: heat
115         auth_encryption_key: unset___________
116         db: mysql://heat:unset@localhost/heat
117         heat_watch_server_url:
118           Fn::Join:
119             - ''
120             - - http://
121               - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
122               - ":8003"
123         metadata_server_url:
124           Fn::Join:
125             - ''
126             - - http://
127               - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
128               - ":8000"
129         waitcondition_server_url:
130           Fn::Join:
131             - ''
132             - - http://
133               - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
134               - ":8000/v1/waitcondition"
135       os-collect-config:
136         cfn:
137           access_key_id:
138             Ref: Key
139           path: notcomputeConfig.Metadata
140           secret_access_key:
141             Fn::GetAtt:
142             - Key
143             - SecretAccessKey
144           stack_name:
145             Ref: AWS::StackName
146       keystone:
147         db: mysql://keystone:unset@localhost/keystone
148         host: 127.0.0.1
149       nova:
150         compute_hostname: undercloud
151         compute_driver: baremetal.driver.BareMetalDriver
152         db: mysql://nova:unset@localhost/nova
153         host: 127.0.0.1
154         metadata-proxy: false
155         tuning:
156           ram_allocation_ratio: 1.0
157           reserved_host_memory_mb: 0
158         baremetal:
159           arch:
160             Ref: BaremetalArch
161           db: mysql://nova:unset@localhost/nova_bm
162           power_manager:
163             Ref: PowerManager
164           pxe_deploy_timeout: 2400
165           virtual_power:
166             user:
167               Ref: PowerUserName
168             key: /opt/stack/boot-stack/virtual-power-key
169             ssh_host: 192.168.122.1
170             type: virsh
171         service-password:
172           Ref: NovaPassword
173       neutron:
174         host: 127.0.0.1
175         native_pxe:
176           Ref: NeutronNativePXE
177         ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
178         ovs:
179           dnsmasq_range: [192.0.2.25, 192.0.2.44]
180           public_interface:
181             Ref: NeutronPublicInterface
182           physical_bridge: br-ctlplane
183           physical_network: ctlplane
184           network_vlan_ranges: ctlplane
185           bridge_mappings: ctlplane:br-ctlplane
186           tenant_network_type: vlan
187           enable_tunneling: 'False'
188         service-password:
189           Ref: NeutronPassword
190       rabbit:
191         host: 127.0.0.1
192         password: guest
193   notcompute:
194     Type: OS::Nova::Server
195     Properties:
196       image:
197         Ref: Image
198       flavor:
199         Ref: Flavor
200       key_name:
201         Ref: KeyName
202     Metadata:
203       os-collect-config:
204         cfn:
205           access_key_id:
206             Ref: Key
207           path: notcomputeConfig.Metadata
208           secret_access_key:
209             Fn::GetAtt:
210             - Key
211             - SecretAccessKey
212           stack_name:
213             Ref: AWS::StackName