aboutsummaryrefslogtreecommitdiffstats
path: root/undercloud-vm.yaml
diff options
context:
space:
mode:
authorClint Byrum <clint@fewbar.com>2013-07-31 14:13:36 -0700
committerClint Byrum <clint@fewbar.com>2013-08-14 20:27:58 -0700
commit46c4ce37173e23a1a5bc68f9f5b0921e6f83be8b (patch)
treeb47dae5d58787e90a9807c9522989014f614b18a /undercloud-vm.yaml
parent99a1e7525015f4e710e3de6e041cffcd264153cf (diff)
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
Diffstat (limited to 'undercloud-vm.yaml')
-rw-r--r--undercloud-vm.yaml50
1 files changed, 43 insertions, 7 deletions
diff --git a/undercloud-vm.yaml b/undercloud-vm.yaml
index b68c0e57..5fbe51f8 100644
--- a/undercloud-vm.yaml
+++ b/undercloud-vm.yaml
@@ -20,7 +20,7 @@ Resources:
AccessPolicy:
Properties:
AllowedResources:
- - notcompute
+ - notcomputeConfig
Type: OS::Heat::AccessPolicy
Key:
Properties:
@@ -32,13 +32,20 @@ Resources:
Policies:
- Ref: AccessPolicy
Type: AWS::IAM::User
- notcompute:
+ 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: 0.0.0.0
+ controller-address:
+ Fn::GetAtt:
+ - notcompute
+ - PrivateIp
cinder:
db: mysql://cinder:unset@localhost/cinder
volume_size_mb: '5000'
@@ -52,14 +59,29 @@ Resources:
admin_user: heat
auth_encryption_key: unset___________
db: mysql://heat:unset@localhost/heat
- heat_watch_server_url: http://0.0.0.0:8003
- metadata_server_url: http://0.0.0.0:8000
- waitcondition_server_url: http://0.0.0.0:8000/v1/waitcondition
+ 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: Resources.notcompute
+ path: notcomputeConfig.Metadata
secret_access_key:
Fn::GetAtt:
- Key
@@ -110,6 +132,8 @@ Resources:
store_user: unset
store_key: unset
service-password: unset
+ notcompute:
+ Type: AWS::EC2::Instance
Properties:
ImageId:
Ref: Image
@@ -118,3 +142,15 @@ Resources:
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