46c4ce3717
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
157 lines
4.3 KiB
YAML
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
|