Use merge.py for the undercloud templates.

This will require some changes to our devtest scripts
and TOCI to ensure we build the overcloud-vm template
before attempting to use it.

Change-Id: I14b5e4a0ccf5f18429bfc33e527bdb4760b8d1a3
This commit is contained in:
Dan Prince 2013-11-22 12:49:42 -05:00
parent 5e23ab27f0
commit e6afddb3ca
6 changed files with 89 additions and 239 deletions

4
.gitignore vendored
View File

@ -1,5 +1,9 @@
# Built via Makefile
overcloud.yaml
undercloud-bm.yaml
undercloud-vm.yaml
undercloud-vm-tuskar.yaml
undercloud-vm-ironic.yaml
*.py[cod]

View File

@ -4,11 +4,19 @@ overcloud.yaml: overcloud-source.yaml nova-compute-instance.yaml swift-source.ya
python merge.py overcloud-source.yaml swift-source.yaml > $@.tmp
mv $@.tmp $@
undercloud-vm-tuskar.yaml: undercloud-vm.yaml tuskar-source.yaml
undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-source.yaml
python merge.py $^ > $@.tmp
mv $@.tmp $@
undercloud-vm-ironic.yaml: undercloud-vm.yaml ironic-source.yaml
undercloud-bm.yaml: undercloud-source.yaml undercloud-bm-source.yaml
python merge.py $^ > $@.tmp
mv $@.tmp $@
undercloud-vm-tuskar.yaml: undercloud-source.yaml undercloud-vm-source.yaml tuskar-source.yaml
python merge.py $^ > $@.tmp
mv $@.tmp $@
undercloud-vm-ironic.yaml: undercloud-source.yaml undercloud-vm-source.yaml ironic-source.yaml
python merge.py $^ > $@.tmp
mv $@.tmp $@

32
undercloud-bm-source.yaml Normal file
View File

@ -0,0 +1,32 @@
Parameters:
NeutronPublicInterface:
Default: eth2
Description: What interface to bridge onto br-ex for network nodes.
Type: String
PowerManager:
Default: nova.virt.baremetal.ipmi.IPMI
Description: Bare metal power manager driver.
Type: String
Resources:
notcomputeConfig:
Type: AWS::AutoScaling::LaunchConfiguration
Metadata:
nova:
compute_hostname: undercloud
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:
use_file_injection: "False"
arch:
Ref: BaremetalArch
db: mysql://nova:unset@localhost/nova_bm
power_manager:
Ref: PowerManager
pxe_deploy_timeout: 2400
service-password:
Ref: NovaPassword

View File

@ -41,19 +41,11 @@ Parameters:
Description: The password for the neutron service account, used by neutron agents.
Type: String
NoEcho: true
NeutronPublicInterface:
Default: eth2
Description: What interface to bridge onto br-ex for network nodes.
Type: String
NovaPassword:
Default: unset
Description: The password for the nova service account, used by nova-api.
Type: String
NoEcho: true
PowerManager:
Default: nova.virt.baremetal.ipmi.IPMI
Description: Bare metal power manager driver.
Type: String
Resources:
AccessPolicy:
Properties:
@ -76,6 +68,7 @@ Resources:
ImageId: '0'
InstanceType: foo
Metadata:
OpenStack::Role: notcomputeConfig
OpenStack::Heat::Stack: {}
Openstack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ]
admin-password:
@ -139,25 +132,6 @@ Resources:
keystone:
db: mysql://keystone:unset@localhost/keystone
host: 127.0.0.1
nova:
compute_hostname: undercloud
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:
use_file_injection: "False"
arch:
Ref: BaremetalArch
db: mysql://nova:unset@localhost/nova_bm
power_manager:
Ref: PowerManager
pxe_deploy_timeout: 2400
service-password:
Ref: NovaPassword
neutron:
host: 127.0.0.1
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8

42
undercloud-vm-source.yaml Normal file
View File

@ -0,0 +1,42 @@
Parameters:
NeutronPublicInterface:
Default: eth0
Description: What interface to bridge onto br-ex for network nodes.
Type: String
PowerManager:
Default: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
Description: Bare metal power manager driver.
Type: String
PowerUserName:
Default: stack
Description: What username to ssh to the virtual power host with.
Type: String
Resources:
notcomputeConfig:
Type: AWS::AutoScaling::LaunchConfiguration
Metadata:
nova:
compute_hostname: undercloud
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:
use_file_injection: "False"
arch:
Ref: BaremetalArch
db: mysql://nova:unset@localhost/nova_bm
power_manager:
Ref: PowerManager
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
service-password:
Ref: NovaPassword

View File

@ -1,210 +0,0 @@
Description: All-in-one baremetal OpenStack and all dependencies.
HeatTemplateFormatVersion: '2012-12-12'
Parameters:
AdminPassword:
Default: unset
Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
Type: String
NoEcho: true
AdminToken:
Default: unset
Description: The keystone auth secret.
Type: String
NoEcho: true
BaremetalArch:
Default: i386
Description: The architecture to use in Nova-BM - i386 or amd64.
Type: String
Flavor:
Default: baremetal
Description: Flavor to request when deploying.
Type: String
GlancePassword:
Default: unset
Description: The password for the glance service account, used by the glance services.
Type: String
NoEcho: true
KeyName:
Default: default
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: String
HeatPassword:
Default: unset
Description: The password for the Heat service account, used by the Heat services.
Type: String
NoEcho: true
Image:
Default: undercloud
Type: String
NeutronPassword:
Default: unset
Description: The password for the neutron service account, used by neutron agents.
Type: String
NoEcho: true
NeutronPublicInterface:
Default: eth0
Description: What interface to bridge onto br-ex for network nodes.
Type: String
NovaPassword:
Default: unset
Description: The password for the nova service account, used by nova-api.
Type: String
NoEcho: true
PowerManager:
Default: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
Description: Bare metal power manager driver.
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::Role: notcomputeConfig
OpenStack::Heat::Stack: {}
Openstack::ImageBuilder::Elements: [ boot-stack, heat-cfntools, neutron-network-node ]
admin-password:
Ref: AdminPassword
admin-token:
Ref: AdminToken
controller-address:
Fn::Select:
- 0
- Fn::Select:
- "ctlplane"
- Fn::GetAtt:
- notcompute
- networks
cinder:
db: mysql://cinder:unset@localhost/cinder
volume_size_mb: '5000'
db-password: unset
glance:
backend: file
db: mysql://glance:unset@localhost/glance
host: 127.0.0.1
service-password:
Ref: GlancePassword
heat:
admin_password:
Ref: HeatPassword
admin_tenant_name: service
admin_user: heat
auth_encryption_key: unset___________
db: mysql://heat:unset@localhost/heat
watch_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
- ":8003"
metadata_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
- ":8000"
waitcondition_server_url:
Fn::Join:
- ''
- - http://
- {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [ notcompute, networks ]} ]}]}
- ":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
keystone:
db: mysql://keystone:unset@localhost/keystone
host: 127.0.0.1
nova:
compute_hostname: undercloud
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:
use_file_injection: "False"
arch:
Ref: BaremetalArch
db: mysql://nova:unset@localhost/nova_bm
power_manager:
Ref: PowerManager
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
service-password:
Ref: NovaPassword
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:
Ref: NeutronPublicInterface
physical_bridge: br-ctlplane
physical_network: ctlplane
network_vlan_ranges: ctlplane
bridge_mappings: ctlplane:br-ctlplane
tenant_network_type: vlan
enable_tunneling: 'False'
service-password:
Ref: NeutronPassword
rabbit:
host: 127.0.0.1
password: guest
notcompute:
Type: OS::Nova::Server
Properties:
image:
Ref: Image
flavor:
Ref: Flavor
key_name:
Ref: KeyName
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