tripleo-heat-templates/undercloud-vm.yaml
Clint Byrum 46c4ce3717 Load local IP using separate post-boot Metadata.
Previously we could not feed the IP of an instance into its own
Metadata because of circular dependency problems. 0.0.0.0 was used
with the heat-localip element to work around this problem. This
caused problems though, as heat-localip would edit the source local
heat metadata, which would make cfn-hup and/or os-collect-config think
that the Metadata had changed, causing it to restart everything every
time we query the Metadata, which was about every five minutes.

Now we can just query this inert LaunchConfiguration resource to get
its' Metadata once it is ready. This resource will only change when
legitimate things are changed in the stack, and so we won't restart
everything every five minutes anymore. Note that when the native Heat
DSL lands, the OS::Heat::SoftwareConfig resource is meant for exactly
this purpose.

After this is merged we no longer need the heat-localip element.

Fixes bug #1202322

Change-Id: Id06323ba43203570eeebfa5b3d03fa56c16c0c10
2013-08-14 20:27:58 -07:00

157 lines
4.3 KiB
YAML

escription: All-in-one baremetal OpenStack and all dependencies.
HeatTemplateFormatVersion: '2012-12-12'
Parameters:
InstanceType:
Default: baremetal
Description: Flavor to request when deploying.
Type: String
KeyName:
Default: default
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: String
Image:
Default: undercloud
Type: String
PowerUserName:
Default: stack
Description: What username to ssh to the virtual power host with.
Type: String
Resources:
AccessPolicy:
Properties:
AllowedResources:
- notcomputeConfig
Type: OS::Heat::AccessPolicy
Key:
Properties:
UserName:
Ref: User
Type: AWS::IAM::AccessKey
User:
Properties:
Policies:
- Ref: AccessPolicy
Type: AWS::IAM::User
notcomputeConfig:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: '0'
InstanceType: foo
Metadata:
OpenStack::Heat::Stack: {}
Openstack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ]
admin-password: unset
admin-token: unset
controller-address:
Fn::GetAtt:
- notcompute
- PrivateIp
cinder:
db: mysql://cinder:unset@localhost/cinder
volume_size_mb: '5000'
db-password: unset
glance:
db: mysql://glance:unset@localhost/glance
host: 127.0.0.1
heat:
admin_password: unset
admin_tenant_name: service
admin_user: heat
auth_encryption_key: unset___________
db: mysql://heat:unset@localhost/heat
heat_watch_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::GetAtt": [ notcompute, PrivateIp ]}
- ":8003"
metadata_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::GetAtt": [ notcompute, PrivateIp ]}
- ":8000"
waitcondition_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::GetAtt": [ notcompute, PrivateIp ]}
- ":8000/v1/waitcondition"
os-collect-config:
cfn:
access_key_id:
Ref: Key
path: notcomputeConfig.Metadata
secret_access_key:
Fn::GetAtt:
- Key
- SecretAccessKey
stack_name:
Ref: AWS::StackName
interfaces:
control: eth2
keystone:
db: mysql://keystone:unset@localhost/keystone
host: 127.0.0.1
nova:
compute_hostname: ubuntu
compute_driver: baremetal.driver.BareMetalDriver
db: mysql://nova:unset@localhost/nova
host: 127.0.0.1
metadata-proxy: false
tuning:
ram_allocation_ratio: 1.0
reserved_host_memory_mb: 0
baremetal:
arch: i386
db: mysql://nova:unset@localhost/nova_bm
power_manager: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
pxe_deploy_timeout: 2400
virtual_power:
user:
Ref: PowerUserName
key: /opt/stack/boot-stack/virtual-power-key
ssh_host: 192.168.122.1
type: virsh
neutron:
host: 127.0.0.1
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
ovs:
dnsmasq_range: [192.0.2.25, 192.0.2.44]
public_interface: eth0
physical_bridge: br-ctlplane
physical_network: ctlplane
network_vlan_ranges: ctlplane
bridge_mappings: ctlplane:br-ctlplane
tenant_network_type: vlan
enable_tunneling: 'False'
rabbit:
host: 127.0.0.1
password: guest
swift:
store_user: unset
store_key: unset
service-password: unset
notcompute:
Type: AWS::EC2::Instance
Properties:
ImageId:
Ref: Image
InstanceType:
Ref: InstanceType
KeyName:
Ref: KeyName
Type: AWS::EC2::Instance
Metadata:
os-collect-config:
cfn:
access_key_id:
Ref: Key
path: notcomputeConfig.Metadata
secret_access_key:
Fn::GetAtt:
- Key
- SecretAccessKey
stack_name:
Ref: AWS::StackName